From f9f2406d19571e4cb3dc40adc6b9440b643575cb Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Mon, 3 Dec 2012 22:43:01 +0100 Subject: [PATCH] Add a banner build with random item (but not centered yet) --- cards/templatetags/image_tags.py | 3 ++ cards/templatetags/inclusion_tags.py | 6 +++- cards/views.py | 2 +- static/js/jquery.tagcanvas.min.js | 21 ++++++++++++++ templates/base.html | 4 +-- templates/cards/index.html | 43 ++++++++++++++++++++++------ templates/random_pics.html | 10 +++++++ 7 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 static/js/jquery.tagcanvas.min.js create mode 100644 templates/random_pics.html diff --git a/cards/templatetags/image_tags.py b/cards/templatetags/image_tags.py index 0e67ab1..74ddb1e 100644 --- a/cards/templatetags/image_tags.py +++ b/cards/templatetags/image_tags.py @@ -116,6 +116,9 @@ def crop(card_item): """ return scale(card_item, 'crop') +def tiny(card_item): + return scale(card_item, 'tiny') register.filter('scale', scale) register.filter('crop', crop) +register.filter('tiny', tiny) diff --git a/cards/templatetags/inclusion_tags.py b/cards/templatetags/inclusion_tags.py index 531eff6..68e6ce1 100644 --- a/cards/templatetags/inclusion_tags.py +++ b/cards/templatetags/inclusion_tags.py @@ -1,6 +1,6 @@ from django import template from django.conf import settings -from cards.models import Country, Category +from cards.models import Country, Category, Card register = template.Library() @@ -10,6 +10,10 @@ def nav_menu(): def cards_list_partial(cardslist): return { 'cards_list': cardslist } + +def random_pics(): + return { 'random_pics': Card.objects.order_by('?')[:15] } register.inclusion_tag('nav_menu.html')(nav_menu) register.inclusion_tag('cards_list.html')(cards_list_partial) +register.inclusion_tag('random_pics.html')(random_pics) diff --git a/cards/views.py b/cards/views.py index 6e7b5fe..43bb974 100644 --- a/cards/views.py +++ b/cards/views.py @@ -17,7 +17,7 @@ def index(request): nbr_of_cards = Card.objects.count() - tags_list = Tag.objects.order_by('?').annotate(occurences=Count('tags'))[:15] + tags_list = Tag.objects.order_by('?').annotate(occurences=Count('tags'))[:25] cards_list = Card.objects.order_by('-created_at')[:25] diff --git a/static/js/jquery.tagcanvas.min.js b/static/js/jquery.tagcanvas.min.js new file mode 100644 index 0000000..6491b60 --- /dev/null +++ b/static/js/jquery.tagcanvas.min.js @@ -0,0 +1,21 @@ +/** + * Copyright (C) 2010-2012 Graham Breach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ +/** + * jQuery.tagcanvas 1.19.1 + * For more information, please contact + */ +(function(T){var ac,ab,Q=Math.abs,t=Math.sin,l=Math.cos,E=Math.max,ag=Math.min,G={},I={},L={0:"0,",1:"17,",2:"34,",3:"51,",4:"68,",5:"85,",6:"102,",7:"119,",8:"136,",9:"153,",a:"170,",A:"170,",b:"187,",B:"187,",c:"204,",C:"204,",d:"221,",D:"221,",e:"238,",E:"238,",f:"255,",F:"255,"},f,U,e,n=document,D,d={};for(ac=0;ac<256;++ac){ab=ac.toString(16);if(ac<16){ab="0"+ab}I[ab]=I[ab.toUpperCase()]=ac.toString()+","}function Y(i){return typeof(i)!="undefined"}function b(i,j,ai){return isNaN(i)?ai:ag(ai,E(j,i))}function O(){return false}function S(j){var aj=j.length-1,ai,ak;while(aj){ak=~~(Math.random()*aj);ai=j[aj];j[aj]=j[ak];j[ak]=ai;--aj}}function q(aj,al,aq,an){var am,ap,j,ao,ar=[],ak=Math.PI*(3-Math.sqrt(5)),ai=2/aj;for(am=0;am0)}function ah(ap,j){var ai=1024,al=ap.weightGradient,ak,an,aj,ao,am;if(ap.gCanvas){an=ap.gCanvas.getContext("2d")}else{ap.gCanvas=ak=k(ai,1);if(!ak){return null}an=ak.getContext("2d");ao=an.createLinearGradient(0,0,ai,0);for(aj in al){ao.addColorStop(1-aj,al[aj])}an.fillStyle=ao;an.fillRect(0,0,ai,1)}am=an.getImageData(~~((ai-1)*j),0,1,1).data;return"rgba("+am[0]+","+am[1]+","+am[2]+","+(am[3]/255)+")"}function x(al,ak,ai,ao,am,an,j){var aj=(an||0)+(j&&j[0]<0?Q(j[0]):0),i=(an||0)+(j&&j[1]<0?Q(j[1]):0);al.font=ak;al.textBaseline="top";al.fillStyle=ai;am&&(al.shadowColor=am);an&&(al.shadowBlur=an);j&&(al.shadowOffsetX=j[0],al.shadowOffsetY=j[1]);al.fillText(ao,aj,i)}function p(av,am,aq,at,al,ai,ao,ap,j,au,ar){var aj=at+Q(j[0])+ap+ap,i=al+Q(j[1])+ap+ap,ak,an;ak=k(aj+au,i+ar);if(!ak){return null}an=ak.getContext("2d");x(an,am,ai,av,ao,ap,j);return ak}function aa(an,aq,ar,aj){var at=Q(aj[0]),ao=Q(aj[1]),ak=an.width+(at>ar?at+ar:ar*2),j=an.height+(ao>ar?ao+ar:ar*2),am=(ar||0)+(aj[0]<0?at:0),ai=(ar||0)+(aj[1]<0?ao:0),al,ap;al=k(ak,j);if(!al){return null}ap=al.getContext("2d");aq&&(ap.shadowColor=aq);ar&&(ap.shadowBlur=ar);aj&&(ap.shadowOffsetX=aj[0],ap.shadowOffsetY=aj[1]);ap.drawImage(an,am,ai,an.width,an.height);return al}function V(av,am,at){var au=parseInt(av.length*at),al=parseInt(at*2),aj=k(au,al),ap,j,ak,ao,ar,aq,ai,an;if(!aj){return null}ap=aj.getContext("2d");ap.fillStyle="#000";ap.fillRect(0,0,au,al);x(ap,at+"px "+am,"#fff",av);j=ap.getImageData(0,0,au,al);ak=j.width;ao=j.height;an={min:{x:ak,y:ao},max:{x:-1,y:-1}};for(aq=0;aq0){if(aran.max.x){an.max.x=ar}if(aqan.max.y){an.max.y=aq}}}}if(ak!=au){an.min.x*=(au/ak);an.max.x*=(au/ak)}if(ao!=al){an.min.y*=(au/ao);an.max.y*=(au/ao)}aj=null;return an}function v(i){return"'"+i.replace(/(\'|\")/g,"").replace(/\s*,\s*/g,"', '")+"'"}function C(i,j,ai){ai=ai||n;if(ai.addEventListener){ai.addEventListener(i,j,false)}else{ai.attachEvent("on"+i,j)}}function Z(al,an,ak,ai){var aj=ai.taglist,am=ai.imageScale,j;if(am&&!(an.width&&an.height)){C("load",function(){Z(al,an,ak,ai)},window);return}if(!al.complete){C("load",function(){Z(al,an,ak,ai)},al);return}an.width=an.width;an.height=an.height;if(am){al.width=an.width*am;al.height=an.height*am}ak.w=al.width;ak.h=al.height;if(ai.txtOpt&&ai.shadow){j=aa(al,ai.shadow,ai.shadowBlur,ai.shadowOffset);if(j){ak.image=j;ak.w=j.width;ak.h=j.height}}aj.push(ak)}function X(aj,ai){var j=n.defaultView,i=ai.replace(/\-([a-z])/g,function(ak){return ak.charAt(1).toUpperCase()});return(j&&j.getComputedStyle&&j.getComputedStyle(aj,null).getPropertyValue(ai))||(aj.currentStyle&&aj.currentStyle[i])}function B(ai,j){var i=1,aj;if(ai.weightFrom){i=1*(j.getAttribute(ai.weightFrom)||ai.textHeight)}else{if(aj=X(j,"font-size")){i=(aj.indexOf("px")>-1&&aj.replace("px","")*1)||(aj.indexOf("pt")>-1&&aj.replace("pt","")*1.25)||aj*3.3}else{ai.weight=false}}return i}function w(i){return i.target&&Y(i.target.id)?i.target.id:i.srcElement.parentNode.id}function H(j,ai){if(Y(j.offsetX)){return{x:j.offsetX,y:j.offsetY}}else{var i=T("#"+ai).offset();if(Y(j.changedTouches)){j=j.changedTouches[0]}if(j.pageX){return{x:j.pageX-i.left,y:j.pageY-i.top}}}return null}function m(ai){var j=ai.target||ai.fromElement.parentNode,i=u.tc[j.id];if(i){i.mx=i.my=-1;i.UnFreeze();i.EndDrag()}}function W(am){var aj,ai=u,j,al,ak=w(am);for(aj in ai.tc){j=ai.tc[aj];if(j.tttimer){clearTimeout(j.tttimer);j.tttimer=null}}if(ak&&ai.tc[ak]){j=ai.tc[ak];if(al=H(am,ak)){j.mx=al.x;j.my=al.y;j.Drag(am,al)}j.drawn=0}}function P(aj){var j=u,i=n.addEventListener?0:1,ai=w(aj);if(ai&&aj.button==i&&j.tc[ai]){j.tc[ai].BeginDrag(aj)}}function h(ak){var ai=u,j=n.addEventListener?0:1,aj=w(ak),i;if(aj&&ak.button==j&&ai.tc[aj]){i=ai.tc[aj];W(ak);if(!i.EndDrag()&&!i.touched){i.Clicked(ak)}}}function F(ai){var i=u,j=w(ai);if(j&&ai.changedTouches&&i.tc[j]){i.tc[j].touched=1;i.tc[j].BeginDrag(ai)}}function o(ai){var i=u,j=w(ai);if(j&&ai.changedTouches&&i.tc[j]){R(ai);if(!i.tc[j].EndDrag()){i.tc[j].Draw();i.tc[j].Clicked(ai)}}}function R(am){var aj,ai=u,j,al,ak=w(am);for(aj in ai.tc){j=ai.tc[aj];if(j.tttimer){clearTimeout(j.tttimer);j.tttimer=null}}if(ak&&ai.tc[ak]&&am.changedTouches){j=ai.tc[ak];if(al=H(am,ak)){j.mx=al.x;j.my=al.y;j.Drag(am,al)}j.drawn=0}}function ae(ai){var i=u,j=w(ai);if(j&&i.tc[j]){ai.cancelBubble=true;ai.returnValue=false;ai.preventDefault&&ai.preventDefault();i.tc[j].Wheel((ai.wheelDelta||ai.detail)>0)}}function r(){var ai=u.tc,j;for(j in ai){ai[j].Draw()}}function c(ai,i){var j=t(i),aj=l(i);return{x:ai.x,y:(ai.y*aj)+(ai.z*j),z:(ai.y*-j)+(ai.z*aj)}}function a(ai,i){var j=t(i),aj=l(i);return{x:(ai.x*aj)+(ai.z*-j),y:ai.y,z:(ai.x*j)+(ai.z*aj)}}function ad(ai,ap,ao,ak,an,al){var i,aj,am,j=ai.z1/(ai.z1+ai.z2+ap.z);i=ap.y*j*al;aj=ap.x*j*an;am=ai.z2+ap.z;return{x:aj,y:i,z:am}}function g(i){this.ts=new Date().valueOf();this.tc=i;this.x=this.y=this.w=this.h=this.sc=1;this.z=0;this.Draw=i.pulsateTo<1&&i.outlineMethod!="colour"?this.DrawPulsate:this.DrawSimple;this.SetMethod(i.outlineMethod)}f=g.prototype;f.SetMethod=function(ai){var j={block:["PreDraw","DrawBlock"],colour:["PreDraw","DrawColour"],outline:["PostDraw","DrawOutline"],classic:["LastDraw","DrawOutline"],none:["LastDraw"]},i=j[ai]||j.outline;if(ai=="none"){this.Draw=function(){return 1}}else{this.drawFunc=this[i[1]]}this[i[0]]=this.Draw};f.Update=function(ao,an,ap,al,am,j,ak,i){var ai=this.tc.outlineOffset,aj=2*ai;this.x=am*ao+ak-ai;this.y=am*an+i-ai;this.w=am*ap+aj;this.h=am*al+aj;this.sc=am;this.z=j.z};f.DrawOutline=function(al,i,ak,j,ai,aj){al.strokeStyle=aj;al.strokeRect(i,ak,j,ai)};f.DrawColour=function(aj,am,ak,an,ai,i,ao,j,al){return this[ao.image?"DrawColourImage":"DrawColourText"](aj,am,ak,an,ai,i,ao,j,al)};f.DrawColourText=function(ak,an,al,ao,ai,i,ap,j,am){var aj=ap.colour;ap.colour=i;ap.alpha=1;ap.Draw(ak,j,am);ap.colour=aj;return 1};f.DrawColourImage=function(an,aq,ao,ar,am,i,av,j,ap){var at=an.canvas,ak=~~E(aq,0),aj=~~E(ao,0),al=ag(at.width-ak,ar)+0.5|0,au=ag(at.height-aj,am)+0.5|0,ai;if(D){D.width=al,D.height=au}else{D=k(al,au)}if(!D){return this.SetMethod("outline")}ai=D.getContext("2d");ai.drawImage(at,ak,aj,al,au,0,0,al,au);an.clearRect(ak,aj,al,au);av.alpha=1;av.Draw(an,j,ap);an.setTransform(1,0,0,1,0,0);an.save();an.beginPath();an.rect(ak,aj,al,au);an.clip();an.globalCompositeOperation="source-in";an.fillStyle=i;an.fillRect(ak,aj,al,au);an.restore();an.globalCompositeOperation="destination-over";an.drawImage(D,0,0,al,au,ak,aj,al,au);an.globalCompositeOperation="source-over";return 1};f.DrawBlock=function(al,i,ak,j,ai,aj){al.fillStyle=aj;al.fillRect(i,ak,j,ai)};f.DrawSimple=function(ak,i,j,aj){var ai=this.tc;ak.setTransform(1,0,0,1,0,0);ak.strokeStyle=ai.outlineColour;ak.lineWidth=ai.outlineThickness;ak.shadowBlur=ak.shadowOffsetX=ak.shadowOffsetY=0;ak.globalAlpha=1;return this.drawFunc(ak,this.x,this.y,this.w,this.h,ai.outlineColour,i,j,aj)};f.DrawPulsate=function(al,i,j,aj){var ak=new Date().valueOf()-this.ts,ai=this.tc;al.setTransform(1,0,0,1,0,0);al.strokeStyle=ai.outlineColour;al.lineWidth=ai.outlineThickness;al.shadowBlur=al.shadowOffsetX=al.shadowOffsetY=0;al.globalAlpha=ai.pulsateTo+((1-ai.pulsateTo)*(0.5+(l(2*Math.PI*ak/(1000*ai.pulsateTime))/2)));return this.drawFunc(al,this.x,this.y,this.w,this.h,ai.outlineColour,i,j,aj)};f.Active=function(ai,i,j){return(i>=this.x&&j>=this.y&&i<=this.x+this.w&&j<=this.y+this.h)};f.PreDraw=f.PostDraw=f.LastDraw=O;function M(aj,i,am,ao,an,ak,j,ai){var al=aj.ctxt;this.tc=aj;this.image=i.src?i:null;this.name=i.src?"":i;this.title=am.title||null;this.a=am;this.p3d={x:ao[0]*aj.radius,y:ao[1]*aj.radius,z:ao[2]*aj.radius};this.x=this.y=0;this.w=an;this.h=ak;this.colour=j||aj.textColour;this.textFont=ai||aj.textFont;this.weight=this.sc=this.alpha=1;this.weighted=!aj.weight;this.outline=new g(aj);if(!this.image){this.textHeight=aj.textHeight;this.extents=V(this.name,this.textFont,this.textHeight);this.Measure(al,aj)}this.SetShadowColour=aj.shadowAlpha?this.SetShadowColourAlpha:this.SetShadowColourFixed;this.SetDraw(aj)}U=M.prototype;U.SetDraw=function(i){this.Draw=this.image?(i.ie>7?this.DrawImageIE:this.DrawImage):this.DrawText;i.noSelect&&(this.CheckActive=O)};U.Measure=function(am,j){this.h=this.extents?this.extents.max.y+this.extents.min.y:this.textHeight;am.font=this.font=this.textHeight+"px "+this.textFont;this.w=am.measureText(this.name).width;if(j.txtOpt){var aj=j.txtScale,ak=aj*this.textHeight,al=ak+"px "+this.textFont,ai=[aj*j.shadowOffset[0],aj*j.shadowOffset[1]],i;am.font=al;i=am.measureText(this.name).width;this.image=p(this.name,al,ak,i,aj*this.h,this.colour,j.shadow,aj*j.shadowBlur,ai,aj,aj);if(this.image){this.w=this.image.width/aj;this.h=this.image.height/aj}this.SetDraw(j);j.txtOpt=this.image}};U.SetWeight=function(i){if(!this.name.length){return}this.weight=i;this.Weight(this.tc.ctxt,this.tc);this.Measure(this.tc.ctxt,this.tc)};U.Weight=function(aj,ai){var j=this.weight,i=ai.weightMode;this.weighted=true;if(i=="colour"||i=="both"){this.colour=ah(ai,(j-ai.min_weight)/(ai.max_weight-ai.min_weight))}if(i=="size"||i=="both"){if(ai.weightSizeMin>0&&ai.weightSizeMax>ai.weightSizeMin){this.textHeight=ai.weightSize*(ai.weightSizeMin+(ai.weightSizeMax-ai.weightSizeMin)*(j-ai.min_weight)/(ai.max_weight-ai.min_weight))}else{this.textHeight=j*ai.weightSize}}this.extents=V(this.name,this.textFont,this.textHeight)};U.SetShadowColourFixed=function(ai,j,i){ai.shadowColor=j};U.SetShadowColourAlpha=function(ai,j,i){ai.shadowColor=s(j,i)};U.DrawText=function(am,j,ak){var ai=this.tc,i=this.x,al=this.y,aj=this.sc;am.globalAlpha=this.alpha;am.fillStyle=this.colour;ai.shadow&&this.SetShadowColour(am,ai.shadow,this.alpha);am.font=this.font;i+=(j/aj)-(this.w/2);al+=(ak/aj)-(this.h/2);am.setTransform(aj,0,0,aj,aj*i,aj*al);am.fillText(this.name,0,0)};U.DrawImage=function(ak,aq,aj){var an=this.x,al=this.y,ar=this.sc,j=this.image,ao=this.w,ai=this.h,am=this.alpha,ap=this.shadow;ak.globalAlpha=am;ak.fillStyle=this.colour;ap&&this.SetShadowColour(ak,ap,am);an+=(aq/ar)-(ao/2);al+=(aj/ar)-(ai/2);ak.setTransform(ar,0,0,ar,ar*an,ar*al);ak.drawImage(j,0,0,ao,ai)};U.DrawImageIE=function(ak,ao,aj){var j=this.image,ap=this.sc,an=j.width=this.w*ap,ai=j.height=this.h*ap,am=(this.x*ap)+ao-(an/2),al=(this.y*ap)+aj-(ai/2);ak.setTransform(1,0,0,1,0,0);ak.globalAlpha=this.alpha;ak.drawImage(j,am,al)};U.Calc=function(am,al){var i=a(this.p3d,am),aj=this.tc,ai=aj.minBrightness,j=aj.maxBrightness,ak=aj.max_radius;this.p3d=c(i,al);i=ad(aj,this.p3d,this.w,this.h,aj.stretchX,aj.stretchY);this.x=i.x;this.y=i.y;this.sc=(aj.z1+aj.z2-i.z)/aj.z2;this.alpha=b(ai+(j-ai)*(ak-this.p3d.z)/(2*ak),0,1)};U.CheckActive=function(aj,an,ai){var ao=this.tc,i=this.outline,am=this.w,j=this.h,al=this.x-am/2,ak=this.y-j/2;i.Update(al,ak,am,j,this.sc,this.p3d,an,ai);return i.Active(aj,ao.mx,ao.my)?i:null};U.Clicked=function(al){var j=this.a,ai=j.target,aj=j.href,i;if(ai!=""&&ai!="_self"){if(self.frames[ai]){self.frames[ai].document.location=aj}else{try{if(top.frames[ai]){top.frames[ai].document.location=aj;return}}catch(ak){}window.open(aj,ai)}return}if(n.createEvent){i=n.createEvent("MouseEvents");i.initMouseEvent("click",1,1,window,0,0,0,0,0,0,0,0,0,0,null);if(!j.dispatchEvent(i)){return}}else{if(j.fireEvent){if(!j.fireEvent("onclick")){return}}}n.location=aj};function u(){var j,ai={mx:-1,my:-1,z1:20000,z2:20000,z0:0.0002,freezeActive:false,freezeDecel:false,activeCursor:"pointer",pulsateTo:1,pulsateTime:3,reverse:false,depth:0.5,maxSpeed:0.05,minSpeed:0,decel:0.95,interval:20,initial:null,hideTags:true,minBrightness:0.1,maxBrightness:1,outlineColour:"#ffff99",outlineThickness:2,outlineOffset:5,outlineMethod:"outline",textColour:"#ff99ff",textHeight:15,textFont:"Helvetica, Arial, sans-serif",shadow:"#000",shadowBlur:0,shadowOffset:[0,0],zoom:1,weight:false,weightMode:"size",weightFrom:null,weightSize:1,weightSizeMin:null,weightSizeMax:null,weightGradient:{0:"#f00",0.33:"#ff0",0.66:"#0f0",1:"#00f"},txtOpt:true,txtScale:2,frontSelect:false,wheelZoom:true,zoomMin:0.3,zoomMax:3,zoomStep:0.05,shape:"sphere",lock:null,tooltip:null,tooltipDelay:300,tooltipClass:"tctooltip",radiusX:1,radiusY:1,radiusZ:1,stretchX:1,stretchY:1,offsetX:0,offsetY:0,shuffleTags:false,noSelect:false,noMouse:false,imageScale:1,paused:false,dragControl:false,dragThreshold:4,centreFunc:O};for(j in ai){this[j]=ai[j]}this.max_weight=0;this.min_weight=200}e=u.prototype;e.Draw=function(){if(this.paused){return}var al=this.canvas,aj=al.width,ar=al.height,au=0,ap=this.yaw,an=this.pitch,aq=aj/2+this.offsetX,ao=ar/2+this.offsetY,ay=this.ctxt,am,az,aw,ai=-1,ak=this.taglist,av=ak.length,j=this.frontSelect,at=(this.centreFunc==O);if(this.frozen&&this.drawn){return this.Animate(aj,ar)}ay.setTransform(1,0,0,1,0,0);this.active=null;for(aw=0;aw=0&&this.my>=0&&ak[aw].CheckActive(ay,aq,ao);if(az&&az.sc>au&&(!j||az.z<=0)){am=az;am.index=ai=aw;au=az.sc}}this.active=am;if(!this.txtOpt&&this.shadow){ay.shadowBlur=this.shadowBlur;ay.shadowOffsetX=this.shadowOffset[0];ay.shadowOffsetY=this.shadowOffset[1]}ay.clearRect(0,0,aj,ar);for(aw=0;aw=0&&am>=0&&iai){i.yaw=aj>i.z0?i.yaw*i.decel:0}if(!i.ly&&j>ai){i.pitch=j>i.z0?i.pitch*i.decel:0}};e.Zoom=function(i){this.z2=this.z1*(1/i);this.drawn=0};e.Clicked=function(aj){var ai=this.taglist,i=this.active;try{if(i&&ai[i.index]){ai[i.index].Clicked(aj)}}catch(j){}};e.Wheel=function(j){var ai=this.zoom+this.zoomStep*(j?1:-1);this.zoom=ag(this.zoomMax,E(this.zoomMin,ai));this.Zoom(this.zoom)};e.BeginDrag=function(i){this.down=H(i,this.canvas.id);i.cancelBubble=true;i.returnValue=false;i.preventDefault&&i.preventDefault()};e.Drag=function(ak,aj){if(this.dragControl&&this.down){var ai=this.dragThreshold*this.dragThreshold,j=aj.x-this.down.x,i=aj.y-this.down.y;if(this.dragging||j*j+i*i>ai){this.dx=j;this.dy=i;this.dragging=1;this.down=aj}}};e.EndDrag=function(j){var i=this.dragging;this.dragging=this.down=null;return i};e.Resume=function(){this.paused=false};e.Pause=function(){this.paused=true};u.tc={};u.Start=function(aj,ai,j){var i,ak=j?jQuery("#"+j):aj;if(n.all&&!j){return false}i=ak.find("a");if(Y(window.G_vmlCanvasManager)){aj.each(function(){T(aj)[0]=window.G_vmlCanvasManager.initElement(T(aj)[0])});ai.ie=parseFloat(navigator.appVersion.split("MSIE")[1])}if(!i.length||!aj[0].getContext||!aj[0].getContext("2d").fillText){return false}aj.each(function(){var ao,al,ar,av,aw,aq,au,at=[],ap,am,an={sphere:q,vcylinder:A,hcylinder:N,vring:y,hring:J};j||(i=T(this).find("a"));aq=new u;for(ao in ai){aq[ao]=ai[ao]}aq.z1=(19800/(Math.exp(aq.depth)*(1-1/Math.E)))+20000-19800/(1-1/Math.E);aq.z2=aq.z1/aq.zoom;aq.radius=ag(this.height,this.width)*0.37*(aq.z2+aq.z1)/aq.z1;aq.max_radius=aq.radius*E(aq.radiusX,E(aq.radiusY,aq.radiusZ));aq.yaw=aq.initial?aq.initial[0]*aq.maxSpeed:0;aq.pitch=aq.initial?aq.initial[1]*aq.maxSpeed:0;aq.canvas=T(this)[0];aq.ctxt=aq.canvas.getContext("2d");aq.textFont=aq.textFont&&v(aq.textFont);aq.textHeight*=1;aq.pulsateTo=b(aq.pulsateTo,0,1);aq.minBrightness=b(aq.minBrightness,0,1);aq.maxBrightness=b(aq.maxBrightness,aq.minBrightness,1);aq.ctxt.textBaseline="top";aq.lx=(aq.lock+"").indexOf("x")+1;aq.ly=(aq.lock+"").indexOf("y")+1;aq.frozen=0;aq.dx=aq.dy=0;aq.touched=0;aq.Animate=aq.dragControl?aq.AnimateDrag:aq.AnimatePosition;if(aq.shadowBlur||aq.shadowOffset[0]||aq.shadowOffset[1]){aq.ctxt.shadowColor=aq.shadow;aq.shadow=aq.ctxt.shadowColor;aq.shadowAlpha=z()}else{delete aq.shadow}aq.taglist=[];am=aq.shape.toString().split(/[(),]/);ap=am.shift();aq.shape=an[ap]||an.sphere;am=[i.length,aq.radiusX,aq.radiusY,aq.radiusZ].concat(am);al=aq.shape.apply(aq,am);aq.shuffleTags&&S(al);aq.listLength=i.length;for(ao=0;aoaq.max_weight){aq.max_weight=au}if(auaq.min_weight)){for(ao=0;ao
-
- +
+ {% random_pics %}
diff --git a/templates/random_pics.html b/templates/random_pics.html new file mode 100644 index 0000000..ac76517 --- /dev/null +++ b/templates/random_pics.html @@ -0,0 +1,10 @@ +{% load image_tags %} + + +
+{% for card in random_pics %} +{% if card.image %} + +{% endif %} +{% endfor %} +