Merge lp:~cjohnston/summit/tracks-on-meeting-forms into lp:summit

Proposed by Chris Johnston
Status: Merged
Approved by: Chris Johnston
Approved revision: 323
Merged at revision: 325
Proposed branch: lp:~cjohnston/summit/tracks-on-meeting-forms
Merge into: lp:summit
Diff against target: 72 lines (+1/-61)
1 file modified
summit/schedule/forms.py (+1/-61)
To merge this branch: bzr merge lp:~cjohnston/summit/tracks-on-meeting-forms
Reviewer Review Type Date Requested Status
Chris Johnston Approve
Review via email: mp+99578@code.launchpad.net

Commit message

Makes only tracks for the current summit show up in the create and edit forms.

To post a comment you must log in.
Revision history for this message
Chris Johnston (cjohnston) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'summit/schedule/forms.py'
2--- summit/schedule/forms.py 2012-03-23 14:20:31 +0000
3+++ summit/schedule/forms.py 2012-03-27 18:04:19 +0000
4@@ -65,67 +65,7 @@
5 for attendee in kwargs['instance'].participants.all()]
6
7 super(MeetingFormBase, self).__init__(*args, **kwargs)
8-
9- summit = self.instance.summit
10- self.fields['participants'].queryset = Attendee.objects.filter(
11- summit=summit).order_by('user__first_name',
12- 'user__last_name',
13- 'user__username')
14-
15- def save(self, commit=True):
16- instance = super(MeetingFormBase, self).save(commit)
17-
18- # Prepare a 'save_m2m' method for the form,
19- if 'save_m2m' in dir(self):
20- old_save_m2m = self.save_m2m
21- else:
22- old_save_m2m = None
23- def save_m2m():
24- if old_save_m2m is not None:
25- old_save_m2m()
26- # This is where we actually link the pizza with toppings
27- instance.participants.clear()
28- for participant in self.cleaned_data['participants']:
29- record = Participant(meeting=instance, attendee=participant,
30- required=True)
31- record.save()
32- self.save_m2m = save_m2m
33-
34- # Do we need to save all changes now?
35- if commit:
36- instance.save()
37- self.save_m2m()
38-
39- return instance
40-
41-class MeetingFormBase(forms.ModelForm):
42- participants = MultipleAttendeeField(
43- queryset=Attendee.objects.all,
44- widget=forms.CheckboxSelectMultiple,
45- label='Participants',
46- required=False)
47-
48- class Media:
49- css = {'all': (
50- '/media/css/colortip-1.0-jquery.css',
51- )}
52- js = (
53- '/media/js/colortip-1.0-jquery.js',
54- )
55-
56- def __init__(self, *args, **kwargs):
57- if 'instance' in kwargs:
58- if kwargs['instance'].pk is not None:
59- # We get the 'initial' keyword argument or initialize it
60- # as a dict if it didn't exist.
61- initial = kwargs.setdefault('initial', {})
62- # The widget for a ModelMultipleChoiceField expects
63- # a list of primary key for the selected data.
64- initial['participants'] = [
65- attendee.pk
66- for attendee in kwargs['instance'].participants.all()]
67-
68- super(MeetingFormBase, self).__init__(*args, **kwargs)
69+ self.fields['tracks'].queryset = self.instance.summit.track_set.all()
70
71 summit = self.instance.summit
72 self.fields['participants'].queryset = Attendee.objects.filter(

Subscribers

People subscribed via source and target branches