Adnane Belmadiaf has proposed merging lp:~adnane002/loco-directory/fix.634074
into lp:loco-directory.
Requested reviews:
loco-directory-dev (loco-directory-dev)
Related bugs:
#634074 Add Picasa and Pix.ie feeds to teams
https://bugs.launchpad.net/bugs/634074
--
https://code.launchpad.net/~adnane002/loco-directory/fix.634074/+merge/35677
Your team loco-directory-dev is requested to review the proposed merge of
lp:~adnane002/loco-directory/fix.634074 into lp:loco-directory.
=== added file 'loco_directory/teams/migrations/0010_add_photos_feed_fields.py'
--- loco_directory/teams/migrations/0010_add_photos_feed_fields.py 1970-01-01 00:00:00 +0000
+++ loco_directory/teams/migrations/0010_add_photos_feed_fields.py 2010-09-16 15:19:45 +0000
@@ -0,0 +1,121 @@
+
+from south.db import db
+from django.db import models
+from teams.models import *
+
+class Migration:
+
+ def forwards(self, orm):
+
+ # Adding field 'Team.picasa_id'
+ db.add_column('teams', 'picasa_id', orm['teams.team:picasa_id'])
+
+ # Adding field 'Team.pixie_id'
+ db.add_column('teams', 'pixie_id', orm['teams.team:pixie_id'])
+
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'Team.picasa_id'
+ db.delete_column('teams', 'picasa_id')
+
+ # Deleting field 'Team.pixie_id'
+ db.delete_column('teams', 'pixie_id')
+
+
+
+ models = {
+ 'auth.group': {
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'teams.continent': {
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'})
+ },
+ 'teams.country': {
+ 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'})
+ },
+ 'teams.language': {
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'})
+ },
+ 'teams.team': {
+ 'Meta': {'db_table': "'teams'"},
+ 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['userprofiles.UserProfile']"}),
+ 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['userprofiles.UserProfile']"}),
+ 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']"}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}),
+ 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']"}),
+ 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}),
+ 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True'}),
+ 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}),
+ 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ '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'})
+ },
+ 'userprofiles.userprofile': {
+ 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}),
+ 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}),
+ 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}),
+ 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['teams']
=== modified file 'loco_directory/teams/models.py'
--- loco_directory/teams/models.py 2010-09-13 17:08:59 +0000
+++ loco_directory/teams/models.py 2010-09-16 15:19:45 +0000
@@ -87,6 +87,10 @@
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"))
+ picasa_id = models.CharField(_("Picasa User ID"), max_length=20, null=True, blank=True,
+ help_text=_("Ex. [email protected], so your Picasa id is : toto"))
+ pixie_id = models.CharField(_("Pix.ie User ID"), max_length=20, null=True, blank=True,
+ help_text=_("Your Pix.ie Username"))
objects = TeamManager()
=== modified file 'loco_directory/templates/teams/team_detail.html'
--- loco_directory/templates/teams/team_detail.html 2010-09-13 19:07:26 +0000
+++ loco_directory/templates/teams/team_detail.html 2010-09-16 15:19:45 +0000
@@ -18,15 +18,20 @@
<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 = '{{ flickr_api_key }}';
- var userId = '{{ team.flickr_id }}';
- var tag = '';
var perPage = '27';
-
+ var flickr_userId = '{{ team.flickr_id }}';
+ var picasa_userId = '{{ team.picasa_id }}';
+ var pixie_userId = '{{ team.pixie_id }}';
+
+
$.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=?',
+ 'flickr.photos.search&api_key=' + apiKey + '&user_id=' + flickr_userId +
+ '&per_page=' + perPage + '&jsoncallback=?',
function(data){
$.each(data.photos.photo, function(i, rPhoto){
var basePhotoURL = 'http://farm' + rPhoto.farm + '.static.flickr.com/'
@@ -45,7 +50,43 @@
});
$("a.lightbox").lightBox();
});
+ $.getJSON('http://picasaweb.google.com/data/feed/base/user/'+ picasa_userId +'?alt=json&kind=photo'+
+ '&access=public&thumbsize=72&max-results=' + perPage + '&hl=en_US&callback=?',
+ function(data) {
+ $.each(data.feed.entry, function(i,item) {
+ var altLink = "#";
+ if(item.media$group.media$content[0].url) {
+ altLink = item.media$group.media$content[0].url;
+ }
+ var title = "Untitled";
+ if(item.media$group.media$description.$t) {
+ title = item.media$group.media$description.$t;
+ }
+ $("<img/>").attr("src",item.media$group.media$thumbnail[0].url).attr("width",75).attr("height",75).attr("title", title)
+ .appendTo("#picasa")
+ .wrap("<a class='lightbox' href='"+item.media$group.media$content[0].url+"'</a>");
+ });
+ $("a.lightbox").lightBox();
+ });
+
+ $.getJSON('http://api.pix.ie/v0.81/account/'+ pixie_userId +'/photos.json?oauth_consumer_key=1dcc8233-a6da-46b0-acb0-4e29aa612b30&page=1&perpage=' + perPage
+ + '&sortby=recent&extras=items_item_owner,items_item_Description,items_item_sizes_all&jsonp=?',
+ function(data){
+ $.each(data.items, function(i, Photo){
+ var photoStringStart = '<a class="lightbox" ';
+ var photoStringEnd = 'title="' + Photo.title + '" href="'+
+ Photo.sizes[4].url +'"><img width="75" height="75" src="' + Photo.sizes[1].url + '" alt="' +
+ Photo.title + '"/></a>';
+ var photoString = photoStringStart + photoStringEnd;
+
+ $(photoString).appendTo("#pixie");
+ });
+ $("a.lightbox").lightBox();
+ });
});
+
+
+
</script>
<style type="text/css">
div#flickr a.lightbox img {
@@ -53,6 +94,18 @@
margin-left: 5px;
margin-right: 5px;
}
+
+div#picasa a.lightbox img {
+ border: 5px solid #b3aaa4;
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+div#pixie 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 %}" />
@@ -175,7 +228,9 @@
{% if team.flickr_id %}
<article class="minor-content alone" style="width:95%;">
<h2>{% trans "Photos from" %} {{ team.name }}</a></h2>
- <div style="width:100%;" id="flickr"> </div>
+ <div style="width:100%;" id="flickr"> </div>
+ <div style="width:100%;" id="picasa"> </div>
+ <div style="width:100%;" id="pixie"> </div>
</article>
{% endif %}
_______________________________________________
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