Adnane Belmadiaf has proposed merging lp:~adnane002/loco-directory/fix.579833 
into lp:loco-directory.

Requested reviews:
  loco-directory-dev (loco-directory-dev)
Related bugs:
  #579833 On team profile page, add flickr stream
  https://bugs.launchpad.net/bugs/579833

-- 
https://code.launchpad.net/~adnane002/loco-directory/fix.579833/+merge/33701
Your team loco-directory-dev is requested to review the proposed merge of 
lp:~adnane002/loco-directory/fix.579833 into lp:loco-directory.
=== added file 'loco_directory/media/css/jquery.lightbox-0.5.css'
--- loco_directory/media/css/jquery.lightbox-0.5.css	1970-01-01 00:00:00 +0000
+++ loco_directory/media/css/jquery.lightbox-0.5.css	2010-08-25 21:57:44 +0000
@@ -0,0 +1,101 @@
+/**
+ * jQuery lightBox plugin
+ * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
+ * and adapted to me for use like a plugin from jQuery.
+ * @name jquery-lightbox-0.5.css
+ * @author Leandro Vieira Pinho - http://leandrovieira.com
+ * @version 0.5
+ * @date April 11, 2008
+ * @category jQuery plugin
+ * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
+ * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
+ * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
+ */
+#jquery-overlay {
+	position: absolute;
+	top: 0;
+	left: 0;
+	z-index: 90;
+	width: 100%;
+        opacity:.5;
+}
+#jquery-lightbox {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	z-index: 100;
+	text-align: center;
+	line-height: 0;
+}
+#jquery-lightbox a img { border: none; }
+#lightbox-container-image-box {
+	position: relative;
+	background-color: #fff;
+	width: 250px;
+	height: 250px;
+	margin: 0 auto;
+}
+#lightbox-container-image { padding: 10px; }
+#lightbox-loading {
+	position: absolute;
+	top: 40%;
+	left: 0%;
+	height: 25%;
+	width: 100%;
+	text-align: center;
+	line-height: 0;
+}
+#lightbox-nav {
+	position: absolute;
+	top: 0;
+	left: 0;
+	height: 100%;
+	width: 100%;
+	z-index: 10;
+}
+#lightbox-container-image-box > #lightbox-nav { left: 0; }
+#lightbox-nav a { outline: none;}
+#lightbox-nav-btnPrev, #lightbox-nav-btnNext {
+	width: 49%;
+	height: 100%;
+	zoom: 1;
+	display: block;
+}
+#lightbox-nav-btnPrev { 
+	left: 0; 
+	float: left;
+}
+#lightbox-nav-btnNext { 
+	right: 0; 
+	float: right;
+}
+#lightbox-container-image-data-box {
+	font: 10px Verdana, Helvetica, sans-serif;
+	background-color: #fff;
+	margin: 0 auto;
+	line-height: 1.4em;
+	overflow: auto;
+	width: 100%;
+	padding: 0 10px 0;
+}
+#lightbox-container-image-data {
+	padding: 0 10px; 
+	color: #666; 
+}
+#lightbox-container-image-data #lightbox-image-details { 
+	width: 70%; 
+	float: left; 
+	text-align: left; 
+}	
+#lightbox-image-details-caption { font-weight: bold; }
+#lightbox-image-details-currentNumber {
+	display: block; 
+	clear: left; 
+	padding-bottom: 1.0em;	
+}			
+#lightbox-secNav-btnClose {
+	width: 66px; 
+	float: right;
+	padding-bottom: 0.7em;	
+}

=== added file 'loco_directory/media/img/lightbox-blank.gif'
Binary files loco_directory/media/img/lightbox-blank.gif	1970-01-01 00:00:00 +0000 and loco_directory/media/img/lightbox-blank.gif	2010-08-25 21:57:44 +0000 differ
=== added file 'loco_directory/media/img/lightbox-btn-close.gif'
Binary files loco_directory/media/img/lightbox-btn-close.gif	1970-01-01 00:00:00 +0000 and loco_directory/media/img/lightbox-btn-close.gif	2010-08-25 21:57:44 +0000 differ
=== added file 'loco_directory/media/img/lightbox-btn-next.gif'
Binary files loco_directory/media/img/lightbox-btn-next.gif	1970-01-01 00:00:00 +0000 and loco_directory/media/img/lightbox-btn-next.gif	2010-08-25 21:57:44 +0000 differ
=== added file 'loco_directory/media/img/lightbox-btn-prev.gif'
Binary files loco_directory/media/img/lightbox-btn-prev.gif	1970-01-01 00:00:00 +0000 and loco_directory/media/img/lightbox-btn-prev.gif	2010-08-25 21:57:44 +0000 differ
=== added file 'loco_directory/media/img/lightbox-ico-loading.gif'
Binary files loco_directory/media/img/lightbox-ico-loading.gif	1970-01-01 00:00:00 +0000 and loco_directory/media/img/lightbox-ico-loading.gif	2010-08-25 21:57:44 +0000 differ
=== added file 'loco_directory/media/js/jquery.lightbox-0.5.min.js'
--- loco_directory/media/js/jquery.lightbox-0.5.min.js	1970-01-01 00:00:00 +0000
+++ loco_directory/media/js/jquery.lightbox-0.5.min.js	2010-08-25 21:57:44 +0000
@@ -0,0 +1,42 @@
+/**
+ * jQuery lightBox plugin
+ * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
+ * and adapted to me for use like a plugin from jQuery.
+ * @name jquery-lightbox-0.5.js
+ * @author Leandro Vieira Pinho - http://leandrovieira.com
+ * @version 0.5
+ * @date April 11, 2008
+ * @category jQuery plugin
+ * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
+ * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
+ * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
+ */
+(function($){$.fn.lightBox=function(settings){settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigation:false,imageLoading:'/media/img/lightbox-ico-loading.gif',imageBtnPrev:'/media/img/lightbox-btn-prev.gif',imageBtnNext:'/media/img/lightbox-btn-next.gif',imageBtnClose:'/media/img/lightbox-btn-close.gif',imageBlank:'/media/img/lightbox-blank.gif',containerBorderSize:10,containerResizeSpeed:400,txtImage:'Image',txtOf:'of',keyToClose:'c',keyToPrev:'p',keyToNext:'n',imageArray:[],activeImage:0},settings);var jQueryMatchedObj=this;function _initialize(){_start(this,jQueryMatchedObj);return false;}
+function _start(objClicked,jQueryMatchedObj){$('embed, object, select').css({'visibility':'hidden'});_set_interface();settings.imageArray.length=0;settings.activeImage=0;if(jQueryMatchedObj.length==1){settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));}else{for(var i=0;i<jQueryMatchedObj.length;i++){settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));}}
+while(settings.imageArray[settings.activeImage][0]!=objClicked.getAttribute('href')){settings.activeImage++;}
+_set_image_to_view();}
+function _set_interface(){$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+settings.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="'+settings.imageBtnClose+'"></a></div></div></div></div>');var arrPageSizes=___getPageSize();$('#jquery-overlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayOpacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]}).show();$('#jquery-overlay,#jquery-lightbox').click(function(){_finish();});$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function(){_finish();return false;});$(window).resize(function(){var arrPageSizes=___getPageSize();$('#jquery-overlay').css({width:arrPageSizes[0],height:arrPageSizes[1]});var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]});});}
+function _set_image_to_view(){$('#lightbox-loading').show();if(settings.fixedNavigation){$('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}else{$('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}
+var objImagePreloader=new Image();objImagePreloader.onload=function(){$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);objImagePreloader.onload=function(){};};objImagePreloader.src=settings.imageArray[settings.activeImage][0];};function _resize_container_image_box(intImageWidth,intImageHeight){var intCurrentWidth=$('#lightbox-container-image-box').width();var intCurrentHeight=$('#lightbox-container-image-box').height();var intWidth=(intImageWidth+(settings.containerBorderSize*2));var intHeight=(intImageHeight+(settings.containerBorderSize*2));var intDiffW=intCurrentWidth-intWidth;var intDiffH=intCurrentHeight-intHeight;$('#lightbox-container-image-box').animate({width:intWidth,height:intHeight},settings.containerResizeSpeed,function(){_show_image();});if((intDiffW==0)&&(intDiffH==0)){if($.browser.msie){___pause(250);}else{___pause(100);}}
+$('#lightbox-container-image-data-box').css({width:intImageWidth});$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({height:intImageHeight+(settings.containerBorderSize*2)});};function _show_image(){$('#lightbox-loading').hide();$('#lightbox-image').fadeIn(function(){_show_image_data();_set_navigation();});_preload_neighbor_images();};function _show_image_data(){$('#lightbox-container-image-data-box').slideDown('fast');$('#lightbox-image-details-caption').hide();if(settings.imageArray[settings.activeImage][1]){$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();}
+if(settings.imageArray.length>1){$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();}}
+function _set_navigation(){$('#lightbox-nav').show();$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({'background':'transparent url('+settings.imageBlank+') no-repeat'});if(settings.activeImage!=0){if(settings.fixedNavigation){$('#lightbox-nav-btnPrev').css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnPrev').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}}
+if(settings.activeImage!=(settings.imageArray.length-1)){if(settings.fixedNavigation){$('#lightbox-nav-btnNext').css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnNext').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}}
+_enable_keyboard_navigation();}
+function _enable_keyboard_navigation(){$(document).keydown(function(objEvent){_keyboard_action(objEvent);});}
+function _disable_keyboard_navigation(){$(document).unbind();}
+function _keyboard_action(objEvent){if(objEvent==null){keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escapeKey=objEvent.DOM_VK_ESCAPE;}
+key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){_finish();}
+if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0){settings.activeImage=settings.activeImage-1;_set_image_to_view();_disable_keyboard_navigation();}}
+if((key==settings.keyToNext)||(keycode==39)){if(settings.activeImage!=(settings.imageArray.length-1)){settings.activeImage=settings.activeImage+1;_set_image_to_view();_disable_keyboard_navigation();}}}
+function _preload_neighbor_images(){if((settings.imageArray.length-1)>settings.activeImage){objNext=new Image();objNext.src=settings.imageArray[settings.activeImage+1][0];}
+if(settings.activeImage>0){objPrev=new Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}}
+function _finish(){$('#jquery-lightbox').remove();$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object, select').css({'visibility':'visible'});}
+function ___getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
+var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
+windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
+if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
+if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
+arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;};function ___getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
+arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll;};function ___pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
+while(curDate-date<ms);};return this.unbind('click').click(_initialize);};})(jQuery);

=== modified file 'loco_directory/teams/migrations/0001_initial.py'
--- loco_directory/teams/migrations/0001_initial.py	2010-02-04 00:39:29 +0000
+++ loco_directory/teams/migrations/0001_initial.py	2010-08-25 21:57:44 +0000
@@ -26,6 +26,7 @@
             ('approved_date', orm['teams.Team:approved_date']),
             ('expires_date', orm['teams.Team:expires_date']),
             ('owner', orm['teams.Team:owner']),
+            ('flickr_id', orm['teams.Team:flickr_id']),
         ))
         db.send_create_signal('teams', ['Team'])
         
@@ -78,7 +79,8 @@
             'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
             'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
             'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
-            'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+            'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'})
         },
         'teams.teamadministrator': {
             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),

=== modified file 'loco_directory/teams/models.py'
--- loco_directory/teams/models.py	2010-07-30 20:55:49 +0000
+++ loco_directory/teams/models.py	2010-08-25 21:57:44 +0000
@@ -88,6 +88,8 @@
     admins = models.ManyToManyField(TeamAdministrator)
     mugshot_url = models.URLField(_("URL of mugshot"), verify_exists=False, null=True, blank=True)
     languages = models.ManyToManyField(Language)
+    flickr_id = models.CharField(_("Flickr User ID"), max_length=20, null=True, blank=True,
+                                help_text=_("To get your Flickr user id go to http://idgettr.com. Ex. 47353...@n03"))
     
     objects = TeamManager()
     

=== modified file 'loco_directory/templates/teams/team_detail.html'
--- loco_directory/templates/teams/team_detail.html	2010-08-23 08:18:37 +0000
+++ loco_directory/templates/teams/team_detail.html	2010-08-25 21:57:44 +0000
@@ -13,11 +13,53 @@
 {% block search %}{% endblock %}
 
 {% block extrahead %}
+{% if team.flickr_id %}
+<script type="text/javascript" src="{{MEDIA_URL}}jquery/jquery.js"></script>
+<script type="text/javascript" src="{{MEDIA_URL}}js/jquery.lightbox-0.5.min.js"></script>
+<link rel="stylesheet" href="{{MEDIA_URL}}css/jquery.lightbox-0.5.css" type="text/css" media="screen" /> 
+<script type="text/javascript"> 
+$(function() {
+    var apiKey = '8c969a1e8a49629bb89b411930ab1cc8';
+    var userId = '{{ team.flickr_id }}';
+    var tag = '';
+    var perPage = '25';
+    
+    $.getJSON('http://api.flickr.com/services/rest/?format=json&method='+
+        'flickr.photos.search&api_key=' + apiKey + '&user_id=' + userId + 
+        '&tags=' + tag + '&per_page=' + perPage + '&jsoncallback=?', 
+    function(data){
+        $.each(data.photos.photo, function(i, rPhoto){
+            var basePhotoURL = 'http://farm' + rPhoto.farm + '.static.flickr.com/'
+                + rPhoto.server + '/' + rPhoto.id + '_' + rPhoto.secret;
+            
+            var thumbPhotoURL = basePhotoURL + '_s.jpg';
+            var mediumPhotoURL = basePhotoURL + '.jpg';
+            
+            var photoStringStart = '<a class="lightbox" ';
+            var photoStringEnd = 'title="' + rPhoto.title + '" href="'+ 
+                mediumPhotoURL +'"><img src="' + thumbPhotoURL + '" alt="' + 
+                rPhoto.title + '"/></a>;';
+            var photoString = photoStringStart +  photoStringEnd   
+
+            $(photoString).appendTo("#flickr");
+        });
+        $("a.lightbox").lightBox();
+    });
+});
+</script> 
+<style type="text/css"> 
+div#flickr a.lightbox img {
+	border: 5px solid #b3aaa4;
+	margin-left: 5px;
+	margin-right: 5px;
+}
+</style> 
+{% endif %}
 <link type="application/rss+xml" rel="alternate" title="{% trans "Team Events (RSS)" %}" href="{% url team-events-rss team.lp_name %}" />
 {% endblock %}
 
 {% block content %}
-<article class="minor-content alone">
+<article class="minor-content alone"  style="overflow:auto;">
 <h2>{{ team.name }}</a></h2>
 
  <table>
@@ -125,4 +167,13 @@
 <img id="locobranding" src="{{ team.mugshot_url }}" alt="" title="{{ team.name }}"/>
 </article>
 
+{% if team.flickr_id %} 
+<article class="minor-content alone" style="width:95%;">
+<h2>Flickr Photos</a></h2>
+<div style="width:100%;" id="flickr"> </div> 
+</article>
+{% endif %}
+
+
+
 {% endblock %}

_______________________________________________
Mailing list: https://launchpad.net/~loco-directory-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~loco-directory-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to