Merge lp:~ronnie.vd.c/loco-team-portal/userprofile_creation into lp:loco-team-portal

Proposed by Ronnie
Status: Merged
Merge reported by: Adnane Belmadiaf
Merged at revision: not available
Proposed branch: lp:~ronnie.vd.c/loco-team-portal/userprofile_creation
Merge into: lp:loco-team-portal
Diff against target: 124 lines (+39/-30)
3 files modified
loco_directory/events/views.py (+2/-6)
loco_directory/userprofiles/management/commands/update-profiles.py (+3/-16)
loco_directory/userprofiles/models.py (+34/-8)
To merge this branch: bzr merge lp:~ronnie.vd.c/loco-team-portal/userprofile_creation
Reviewer Review Type Date Requested Status
Adnane Belmadiaf Needs Fixing
Review via email: mp+107603@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Adnane Belmadiaf (daker) wrote :

1- Move create_userprofile to signals.py
2- Added tests http://paste.ubuntu.com/1012174/
3- pylint pls :) our code is rated 5/10 .

review: Needs Fixing
Revision history for this message
Adnane Belmadiaf (daker) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'loco_directory/events/views.py'
--- loco_directory/events/views.py 2012-02-15 15:56:28 +0000
+++ loco_directory/events/views.py 2012-05-28 10:45:22 +0000
@@ -301,9 +301,7 @@
301 if team_event_object.is_attending(request.user):301 if team_event_object.is_attending(request.user):
302 attendee_object = team_event_object.attendee_set.get(attendee_profile__user=request.user)302 attendee_object = team_event_object.attendee_set.get(attendee_profile__user=request.user)
303 else:303 else:
304 from userprofiles.models import create_profile304 attendee_object = Attendee(team_event=team_event_object, attendee_profile=request.user.get_profile())
305 profile = create_profile(request.user.username)
306 attendee_object = Attendee(team_event=team_event_object, attendee_profile=profile)
307 305
308 if request.method == 'POST': 306 if request.method == 'POST':
309 form = AttendeeRegistrationForm(instance=attendee_object, data=request.POST)307 form = AttendeeRegistrationForm(instance=attendee_object, data=request.POST)
@@ -338,9 +336,7 @@
338 if form.is_valid():336 if form.is_valid():
339 team_event_comment = form.save(commit=False)337 team_event_comment = form.save(commit=False)
340 team_event_comment.team_event = team_event_object338 team_event_comment.team_event = team_event_object
341 from userprofiles.models import create_profile339 team_event_comment.commenter_profile = request.user.get_profile()
342 profile = create_profile(request.user.username)
343 team_event_comment.commenter_profile = profile
344 team_event_comment.save()340 team_event_comment.save()
345 request.user.message_set.create(message=_('Comment saved.'))341 request.user.message_set.create(message=_('Comment saved.'))
346 return redirect( team_event_object )342 return redirect( team_event_object )
347343
=== modified file 'loco_directory/userprofiles/management/commands/update-profiles.py'
--- loco_directory/userprofiles/management/commands/update-profiles.py 2010-12-28 21:41:10 +0000
+++ loco_directory/userprofiles/management/commands/update-profiles.py 2012-05-28 10:45:22 +0000
@@ -5,7 +5,7 @@
55
6from common import launchpad6from common import launchpad
7from django.contrib.auth.models import User, Group7from django.contrib.auth.models import User, Group
8from userprofiles.models import UserProfile, create_profile8from userprofiles.models import UserProfile, create_userprofile
99
10from datetime import datetime10from datetime import datetime
11import sys11import sys
@@ -22,18 +22,5 @@
22 ld_users = User.objects.all()22 ld_users = User.objects.all()
2323
24 for ld_user in ld_users:24 for ld_user in ld_users:
25 if not ld_user.username in USER_BLACKLIST:25 create_userprofile(sender=User, instance=ld_user, lp=lp, USER_BLACKLIST=USER_BLACKLIST, need_update=True)
26 profile, created = UserProfile.objects.get_or_create(user=ld_user)26
27 try:
28 lp_user = lp.people[ld_user.username]
29 profile.tz = lp_user.time_zone or "UTC"
30 profile.realname = lp_user.display_name or user.username
31 if lp_user.logo_link.startswith("https://") :
32 profile.mugshot = lp_user.logo_link
33 else:
34 profile.mugshot = "https://launchpad.net/@@/person-logo"
35 profile.save()
36 except Exception, e:
37 print "Error updating %s" % ld_user
38 print e
39 pass
4027
=== modified file 'loco_directory/userprofiles/models.py'
--- loco_directory/userprofiles/models.py 2011-03-04 18:16:03 +0000
+++ loco_directory/userprofiles/models.py 2012-05-28 10:45:22 +0000
@@ -1,9 +1,14 @@
1import pytz
2import logging
3log = logging.getLogger(__name__)
4
1from django.db import models5from django.db import models
6from django.db.models.signals import post_save
2from django.utils.translation import ugettext_lazy as _7from django.utils.translation import ugettext_lazy as _
3from django.contrib.auth import models as auth_models8from django.contrib.auth import models as auth_models
9
4# Create your models here.10# Create your models here.
511
6import pytz
712
8class UserProfile(models.Model):13class UserProfile(models.Model):
9 " Store profile information about a user "14 " Store profile information about a user "
@@ -68,16 +73,37 @@
68auth_models.User.profile = property(_getUserProfile)73auth_models.User.profile = property(_getUserProfile)
69auth_models.AnonymousUser.profile = property(_getAnonProfile)74auth_models.AnonymousUser.profile = property(_getAnonProfile)
7075
76def create_userprofile(sender, instance, lp=None, USER_BLACKLIST=(u"root", u"admin"), need_update=False, **kwargs):
77 profile, created = UserProfile.objects.get_or_create(user=instance)
78 if instance.username in USER_BLACKLIST:
79 log.error('%s tried to create a userprofile, but exists in USER_BLACKLIST' % instance)
80 return profile
81
82 if need_update or created:
83 from common import launchpad
84 if not lp:
85 lp = launchpad.lp_login()
86 if lp:
87 try:
88 lp_user = lp.people[instance.username]
89 profile.tz = lp_user.time_zone or "UTC"
90 profile.realname = lp_user.display_name or user.username
91 if lp_user.logo_link.startswith("https://") :
92 profile.mugshot = lp_user.logo_link
93 else:
94 profile.mugshot = "https://launchpad.net/@@/person-logo"
95 profile.save()
96 except Exception, e:
97 log.error("Error updating %s" % instance)
98 log.error(e)
99 return profile
100
101post_save.connect(create_userprofile, sender=auth_models.User)
102
71def create_profile(username):103def create_profile(username):
72 user, created = auth_models.User.objects.get_or_create(username=username)104 user, created = auth_models.User.objects.get_or_create(username=username)
73 if created:105 if created:
74 user.save()106 user.save()
75 from common import launchpad107 from common import launchpad
76 launchpad.set_user_openid(user, force=True)108 launchpad.set_user_openid(user, force=True)
77 profile, created = UserProfile.objects.get_or_create(user=user)109 return user.get_profile()
78 if created:
79 # set real name as username for now,
80 # we get the name later on via cronjob
81 profile.realname = username
82 profile.save()
83 return profile

Subscribers

People subscribed via source and target branches