Merge lp:~dholbach/ubuntu-teamreports/small-fixes into lp:ubuntu-teamreports

Proposed by Daniel Holbach
Status: Merged
Merged at revision: 36
Proposed branch: lp:~dholbach/ubuntu-teamreports/small-fixes
Merge into: lp:ubuntu-teamreports
Diff against target: 188 lines (+38/-68)
6 files modified
teamreports/reports/admin.py (+5/-22)
teamreports/reports/management/commands/import-translations.py (+0/-1)
teamreports/reports/management/commands/init-reports.py (+0/-1)
teamreports/reports/management/commands/lpupdate.py (+17/-42)
teamreports/reports/management/commands/process-proposals.py (+0/-2)
teamreports/reports/models.py (+16/-0)
To merge this branch: bzr merge lp:~dholbach/ubuntu-teamreports/small-fixes
Reviewer Review Type Date Requested Status
Christian Zambrano (community) Approve
Registry Administrators Pending
Review via email: mp+39858@code.launchpad.net

This proposal supersedes a proposal from 2010-11-02.

To post a comment you must log in.
Revision history for this message
Christian Zambrano (czambran) wrote : Posted in a previous version of this proposal

You seem to be missing a '%' in the following line:

return "%s - %s" (self.name, self.who)

review: Needs Fixing
Revision history for this message
Daniel Holbach (dholbach) wrote : Posted in a previous version of this proposal

That line actually looks fine to me. Do you get an error in any of the admin pages?

Revision history for this message
Daniel Holbach (dholbach) wrote : Posted in a previous version of this proposal

Sorry, that must have been jetlag, you are right. :-)

Revision history for this message
Christian Zambrano (czambran) wrote : Posted in a previous version of this proposal

Daniel,

Why are you hard-coding the team "ubuntu-council-teams"?

Why are you saving after get_or_create? The object returned, whether new or old, has been persisted.

The following try-except seems unnecessary:

try:
    t = models.Team.objects.get(lpid=lp_team.name)
except:
    t = None

I am still trying to get the hang of this, please forgive me if I am pointing out useless stuff

review: Needs Information
Revision history for this message
Daniel Holbach (dholbach) wrote : Posted in a previous version of this proposal

> Why are you hard-coding the team "ubuntu-council-teams"?

If you have a look at https://launchpad.net/~ubuntu-council-teams/+members you can see that it lists all the current Ubuntu Governance Boards. If any replacements happen, we will get that data from Launchpad "for free".

> Why are you saving after get_or_create? The object returned, whether new or
> old, has been persisted.

I was under the impression that I still needed to save when a new object was created. I removed it now.

> The following try-except seems unnecessary:
>
> try:
> t = models.Team.objects.get(lpid=lp_team.name)
> except:
> t = None

Oops, yes, that's legacy code I forgot to remove. Thanks for pointing out.

> I am still trying to get the hang of this, please forgive me if I am pointing
> out useless stuff

Thanks a lot for your thorough review.

Revision history for this message
Christian Zambrano (czambran) wrote : Posted in a previous version of this proposal

Daniel,

You still have a few instances of calling get_or_create and save right after that.

review: Needs Fixing
Revision history for this message
Christian Zambrano (czambran) wrote :

To the best of my ability, this looks good.

review: Approve
Revision history for this message
Daniel Holbach (dholbach) wrote :

Thanks a lot for this great review.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'teamreports/reports/admin.py'
2--- teamreports/reports/admin.py 2010-04-19 08:41:43 +0000
3+++ teamreports/reports/admin.py 2010-11-02 15:51:07 +0000
4@@ -1,25 +1,8 @@
5 from django.contrib import admin
6 from reports.models import Team, Person, TeamProposal, ReportEntry, TeamCategory
7
8-class TeamAdmin(admin.ModelAdmin):
9- search_fields = ('lpid',)
10-
11-class PersonAdmin(admin.ModelAdmin):
12- search_fields = ('lpid',)
13- list_display = ('lpid',)
14-
15-class TeamProposalAdmin(admin.ModelAdmin):
16- search_fields = ('team',)
17-
18-class ReportEntryAdmin(admin.ModelAdmin):
19- search_fields = ('date', 'team', )
20-
21-class TeamCategoryAdmin(admin.ModelAdmin):
22- search_fields = ('name', )
23- list_display = ('name', )
24-
25-admin.site.register(Team, TeamAdmin)
26-admin.site.register(Person, PersonAdmin)
27-admin.site.register(TeamProposal, TeamProposalAdmin)
28-admin.site.register(ReportEntry, ReportEntryAdmin)
29-admin.site.register(TeamCategory, TeamCategoryAdmin)
30+admin.site.register(Team)
31+admin.site.register(Person)
32+admin.site.register(TeamProposal)
33+admin.site.register(ReportEntry)
34+admin.site.register(TeamCategory)
35
36=== modified file 'teamreports/reports/management/commands/import-translations.py'
37--- teamreports/reports/management/commands/import-translations.py 2010-04-13 16:29:38 +0000
38+++ teamreports/reports/management/commands/import-translations.py 2010-11-02 15:51:07 +0000
39@@ -26,7 +26,6 @@
40 not os.path.isdir(project_locale_path):
41 pwd = os.getcwd()
42 os.chdir(settings.PROJECT_PATH)
43- print settings.PROJECT_PATH
44 subprocess.call(["./manage.py", "makemessages", "-l", locale[0]])
45 os.chdir(pwd)
46 subprocess.call(["cp", pofile,
47
48=== modified file 'teamreports/reports/management/commands/init-reports.py'
49--- teamreports/reports/management/commands/init-reports.py 2010-04-16 10:53:05 +0000
50+++ teamreports/reports/management/commands/init-reports.py 2010-11-02 15:51:07 +0000
51@@ -17,7 +17,6 @@
52 print " * Checking if ubuntu-teamreports-dev is in Auth teams:",
53 (lc, new_object) = Group.objects.get_or_create(name="ubuntu-teamreports-dev")
54 if new_object:
55- lc.save()
56 print "added."
57 else:
58 print "yes."
59
60=== modified file 'teamreports/reports/management/commands/lpupdate.py'
61--- teamreports/reports/management/commands/lpupdate.py 2010-04-16 13:52:42 +0000
62+++ teamreports/reports/management/commands/lpupdate.py 2010-11-02 15:51:07 +0000
63@@ -4,50 +4,25 @@
64
65 from common import launchpad
66 from reports import models
67-from django.contrib.auth.models import Group
68-
69-from datetime import datetime
70-
71-lp = launchpad.lp_login()
72-
73-def find_team(team_name):
74- try:
75- lp_team = lp.people[team_name]
76- except KeyError:
77- lp_team = None
78- if lp_team and lp_team.is_team:
79- return lp_team
80- return None
81
82 class Command(NoArgsCommand):
83 help = "Pull information about team from Launchpad and add to the DB."
84
85 def handle_noargs(self, **options):
86-
87- teams = models.Team.objects.all()
88- for t in teams:
89- lp_team = find_team(t.lpid)
90- if not lp_team:
91- # Team does not exist.
92- t.delete()
93- else:
94- t.name = lp_team.display_name
95- owner, created = models.Person.objects.get_or_create(lpid=lp_team.team_owner.name,
96- name=lp_team.team_owner.display_name)
97- if created:
98- owner.save()
99- t.owner = owner
100- for lp_admin in lp_team.getMembersByStatus(status='Administrator'):
101- admin, created = models.Person.objects.get_or_create(lpid=lp_admin.name,
102- name=lp_admin.display_name)
103- if created:
104- admin.save()
105- t.admins.add(admin)
106- t.members.add(admin)
107- for lp_member in lp_team.getMembersByStatus(status='Approved'):
108- member, created = models.Person.objects.get_or_create(lpid=lp_member.name,
109- name=lp_member.display_name)
110- if created:
111- member.save()
112- t.members.add(member)
113- t.save()
114+ lp = launchpad.lp_login()
115+ for lp_team in lp.people["ubuntu-council-teams"].members:
116+ t, created = models.Team.objects.get_or_create(lpid=lp_team.name)
117+ t.name = lp_team.display_name
118+ owner, created = models.Person.objects.get_or_create(lpid=lp_team.team_owner.name,
119+ name=lp_team.team_owner.display_name)
120+ t.owner = owner
121+ for lp_admin in lp_team.getMembersByStatus(status='Administrator'):
122+ admin, created = models.Person.objects.get_or_create(lpid=lp_admin.name,
123+ name=lp_admin.display_name)
124+ t.admins.add(admin)
125+ t.members.add(admin)
126+ for lp_member in lp_team.getMembersByStatus(status='Approved'):
127+ member, created = models.Person.objects.get_or_create(lpid=lp_member.name,
128+ name=lp_member.display_name)
129+ t.members.add(member)
130+ t.save()
131
132=== modified file 'teamreports/reports/management/commands/process-proposals.py'
133--- teamreports/reports/management/commands/process-proposals.py 2010-04-19 08:41:43 +0000
134+++ teamreports/reports/management/commands/process-proposals.py 2010-11-02 15:51:07 +0000
135@@ -11,6 +11,4 @@
136 proposals = models.TeamProposal.objects.all()
137 for proposal in proposals.filter(approved=True):
138 p, created = models.Team.objects.get_or_create(lpid=proposal.team)
139- if created:
140- p.save()
141 proposal.delete()
142
143=== modified file 'teamreports/reports/models.py'
144--- teamreports/reports/models.py 2010-04-19 08:41:43 +0000
145+++ teamreports/reports/models.py 2010-11-02 15:51:07 +0000
146@@ -5,16 +5,26 @@
147 rank = models.IntegerField(_("Rank"), default=1000)
148 name = models.CharField(_("Category"), blank=False, max_length=30)
149
150+ def __unicode__(self):
151+ return self.name
152+
153 class TeamProposal(models.Model):
154 date = models.DateField(_("Date"), blank=False)
155 who = models.CharField(_("Launchpad Person ID"), max_length=50, blank=False)
156 team = models.CharField(_("Launchpad Team ID"), max_length=50, blank=False)
157 approved = models.BooleanField(_("Approved"), default=False)
158+
159+ def __unicode__(self):
160+ return "%s - %s" % (self.name, self.who)
161
162 class Person(models.Model):
163 lpid = models.SlugField(_("Launchpad Person ID"), max_length=50, blank=False)
164 name = models.CharField(_("Team Name"), max_length=180)
165
166+ def __unicode__(self):
167+ return self.lpid
168+
169+
170 class Team(models.Model):
171 lpid = models.SlugField(_("Launchpad Team ID"), max_length=50)
172 name = models.CharField(_("Team Name"), max_length=180)
173@@ -23,9 +33,15 @@
174 responsibles = models.ManyToManyField(Person, related_name='responsibles')
175 members = models.ManyToManyField(Person, related_name='members')
176 category = models.ForeignKey(TeamCategory, blank=True, null=True)
177+
178+ def __unicode__(self):
179+ return self.lpid
180
181 class ReportEntry(models.Model):
182 date = models.DateField(_("Date"), blank=False)
183 team = models.ForeignKey(Team, blank=False)
184 entry = models.CharField(_("Entry"), max_length=700, blank=False)
185 who = models.ForeignKey(Person, blank=False)
186+
187+ def __unicode__(self):
188+ return "%s - %s" % (self.team, self.date)

Subscribers

People subscribed via source and target branches

to all changes: