Merge lp:~ris/loco-team-portal/fix-552762 into lp:loco-team-portal
- fix-552762
- Merge into 0.2
Status: | Needs review |
---|---|
Proposed branch: | lp:~ris/loco-team-portal/fix-552762 |
Merge into: | lp:loco-team-portal |
Diff against target: |
1729 lines (+1420/-11) (has conflicts) 14 files modified
Makefile (+1/-1) loco_directory/events/forms.py (+101/-5) loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py (+184/-0) loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py (+185/-0) loco_directory/events/migrations/0012_auto__add_teameventvenue.py (+196/-0) loco_directory/events/migrations/0013_historical_venue.py (+195/-0) loco_directory/events/migrations/0014_auto__del_field_teamevent_venue.py (+190/-0) loco_directory/events/models.py (+10/-2) loco_directory/events/views.py (+114/-3) loco_directory/media/css/venues.css (+10/-0) loco_directory/media/js/jquery.formset.js (+170/-0) loco_directory/media/js/venues.js (+3/-0) loco_directory/templates/events/team_event_new.html (+26/-0) loco_directory/templates/events/team_event_update.html (+35/-0) Text conflict in loco_directory/events/forms.py Conflict adding file loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py. Moved existing file to loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py.moved. Conflict adding file loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py. Moved existing file to loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py.moved. Text conflict in loco_directory/events/views.py Text conflict in loco_directory/templates/events/team_event_new.html Text conflict in loco_directory/templates/events/team_event_update.html |
To merge this branch: | bzr merge lp:~ris/loco-team-portal/fix-552762 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Adnane Belmadiaf | Needs Fixing | ||
Chris Johnston | Needs Fixing | ||
Review via email: mp+142553@code.launchpad.net |
Commit message
Description of the change
Robert Sajdok (ris) wrote : | # |
> Please clean up the merge conflicts.
How can I do this on my local working directory?
Robert Sajdok (ris) wrote : | # |
I've done this way:
$ bzr merge https:/
I am working with conflicts.
- 555. By Robert Sajdok
-
Resolve conflicts
Robert Sajdok (ris) wrote : | # |
> Please clean up the merge conflicts.
done, please review
Adnane Belmadiaf (daker) wrote : | # |
> done, please review
Thanks Ris for your work, i'll take a look at your MP this week.
Adnane Belmadiaf (daker) wrote : | # |
Hi Robert, this MP still need more work, we need to add some lines of codes to keep the relation between the venues and the events, i mean this line :
226 + # Deleting field 'TeamEvent.venue'
227 + db.delete_
we need to store in memory all venues/events relatiosn before then create them once the new table TeamEventVenue is created.
- 556. By Robert Sajdok
-
South Changes for team event venue.
Robert Sajdok (ris) wrote : | # |
> Hi Robert, this MP still need more work, we need to add some lines of codes to
> keep the relation between the venues and the events, i mean this line :
>
> 226 + # Deleting field 'TeamEvent.venue'
> 227 + db.delete_
>
> we need to store in memory all venues/events relatiosn before then create them
> once the new table TeamEventVenue is created.
I added it, please check it.
Unmerged revisions
- 556. By Robert Sajdok
-
South Changes for team event venue.
- 555. By Robert Sajdok
-
Resolve conflicts
- 554. By Robert Sajdok
-
LP: #552762: "LD needs to be able to allow for adding multiple locations for one event"
Add image files and migration. - 553. By Robert Sajdok
-
LP: #552762: "LD needs to be able to allow for adding multiple locations for one event"
Preview Diff
1 | === modified file 'Makefile' |
2 | --- Makefile 2013-02-02 00:03:21 +0000 |
3 | +++ Makefile 2013-06-29 22:11:25 +0000 |
4 | @@ -37,7 +37,7 @@ |
5 | $(django_manage) import-live-data |
6 | |
7 | run: env apps db |
8 | - $(django_manage) runserver |
9 | + $(django_manage) runserver |
10 | |
11 | test: env apps |
12 | $(django_manage) test teams events venues meetings userprofiles |
13 | |
14 | === modified file 'loco_directory/events/forms.py' |
15 | --- loco_directory/events/forms.py 2013-04-08 20:08:25 +0000 |
16 | +++ loco_directory/events/forms.py 2013-06-29 22:11:25 +0000 |
17 | @@ -1,8 +1,9 @@ |
18 | # -*- coding: utf-8 -*- |
19 | + |
20 | from django import forms |
21 | -from django.conf import settings |
22 | from django.utils.translation import ugettext as _ |
23 | from django.core.urlresolvers import reverse |
24 | +from django.forms import formsets |
25 | |
26 | from .models import BaseEvent, GlobalEvent, TeamEvent, Attendee, TeamEventComment |
27 | from venues.models import Venue |
28 | @@ -12,7 +13,6 @@ |
29 | |
30 | import itertools |
31 | |
32 | - |
33 | def grouped_user_list(teams): |
34 | other_members, team_members = [], [] |
35 | for profile in UserProfile.objects.filter(user__groups__name__in=[t.lp_name for t in teams]): |
36 | @@ -44,12 +44,29 @@ |
37 | |
38 | class Media: |
39 | css = {'all': ( |
40 | +<<<<<<< TREE |
41 | settings.MEDIA_URL + 'jquery-ui/css/smoothness/jquery-ui.css', |
42 | )} |
43 | +======= |
44 | + '/media/jquery-ui/css/css/smoothness/jquery-ui.css', |
45 | + '/media/jquery-ui-timepicker/css/ui-lightness/ui.timepickr.css', |
46 | + '/media/css/colortip-1.0-jquery.css', |
47 | + )} |
48 | +>>>>>>> MERGE-SOURCE |
49 | js = ( |
50 | +<<<<<<< TREE |
51 | settings.MEDIA_URL + 'jquery-ui/jquery-ui.js', |
52 | settings.MEDIA_URL + 'js/events-ui.js', |
53 | ) |
54 | +======= |
55 | + '/media/jquery/jquery.js', |
56 | + '/media/jquery-ui/jquery-ui.js', |
57 | + '/media/jquery-ui-timepicker/js/jquery.timepickr.min.js', |
58 | + '/media/jquery-ui-timepicker/js/ui.timepickr.min.js', |
59 | + '/media/js/colortip-1.0-jquery.js', |
60 | + '/media/js/events-ui.js', |
61 | + ) |
62 | +>>>>>>> MERGE-SOURCE |
63 | |
64 | def __init__(self, *args, **kargs): |
65 | super(BaseEventForm, self).__init__(*args, **kargs) |
66 | @@ -76,15 +93,13 @@ |
67 | super(TeamEventForm, self).__init__(*args, **kargs) |
68 | self.teams = teams |
69 | self.fields['contact'].choices = grouped_user_list(self.teams) |
70 | - self.fields['venue'].choices = self.grouped_venue_list() |
71 | - from common.widgets import PopupRelatedFieldWidgetWrapper |
72 | - self.fields['venue'].widget = PopupRelatedFieldWidgetWrapper(self.fields['venue'].widget, reverse('venue-new')) |
73 | self.fields['global_event'].choices = [(e.id, str(e)) for e in GlobalEvent.objects.next_events().iterator()] |
74 | self.fields['global_event'].choices.insert(0, ('', '---------')) |
75 | self.initial['date_begin'] = self.instance.local_date_begin |
76 | self.initial['date_end'] = self.instance.local_date_end |
77 | |
78 | def clean(self): |
79 | +<<<<<<< TREE |
80 | venue = self.cleaned_data.get('venue') |
81 | begin = self.cleaned_data.get('date_begin', None) |
82 | end = self.cleaned_data.get('date_end', None) |
83 | @@ -93,11 +108,72 @@ |
84 | self.cleaned_data['date_begin'] = venue.fromlocaltime(begin) |
85 | self.cleaned_data['date_end'] = venue.fromlocaltime(end) |
86 | elif self.teams: |
87 | +======= |
88 | + if self.teams: |
89 | + begin = self.cleaned_data.get('date_begin', None) |
90 | + end = self.cleaned_data.get('date_end', None) |
91 | +>>>>>>> MERGE-SOURCE |
92 | if begin is not None and end is not None: |
93 | self.cleaned_data['date_begin'] = self.teams[0].fromlocaltime(begin) |
94 | self.cleaned_data['date_end'] = self.teams[0].fromlocaltime(end) |
95 | return self.cleaned_data |
96 | |
97 | +class GlobalEventForm(BaseEventForm): |
98 | + """ |
99 | + a form to create/update a GlobalEvent |
100 | + """ |
101 | + class Meta(BaseEventForm.Meta): |
102 | + model = GlobalEvent |
103 | + |
104 | + def clean(self): |
105 | + self.cleaned_data['microbloghashtag'] = validate_tag(self.cleaned_data['microbloghashtag']) |
106 | + self.cleaned_data['pictag'] = validate_tag(self.cleaned_data['pictag']) |
107 | + return self.cleaned_data |
108 | + |
109 | + |
110 | +class AttendeeRegistrationForm(forms.ModelForm, RenderableMixin): |
111 | + """ |
112 | + a form to create/update an Attendee object |
113 | + """ |
114 | + def __init__(self, *args, **kargs): |
115 | + super(AttendeeRegistrationForm, self).__init__(*args, **kargs) |
116 | + self.fields['guests'].min_value = 0 |
117 | + self.fields['guests'].max_value = 100 |
118 | + |
119 | + class Meta: |
120 | + model = Attendee |
121 | + exclude = ('attendee_profile', 'team_event') |
122 | + |
123 | +class TeamEventCommentForm(forms.ModelForm, RenderableMixin): |
124 | + """ |
125 | + a form to comment a team event |
126 | + """ |
127 | + class Meta: |
128 | + model = TeamEventComment |
129 | + exclude = ('team_event', 'date_created', 'commenter_profile') |
130 | + |
131 | + class Media: |
132 | + css = {'all': ( |
133 | + settings.MEDIA_URL + 'css/colortip-1.0-jquery.css', |
134 | + )} |
135 | + js = ( |
136 | + settings.MEDIA_URL + settings.MEDIA_URL + 'jquery/jquery.js', |
137 | + settings.MEDIA_URL + settings.MEDIA_URL + 'js/colortip-1.0-jquery.js', |
138 | + ) |
139 | + |
140 | +class TeamEventVenueForm(forms.ModelForm, RenderableMixin): |
141 | + """ |
142 | + a form to venue a team event |
143 | + """ |
144 | + |
145 | + def __init__(self, teams=[], *args, **kargs): |
146 | + super(TeamEventVenueForm, self).__init__(*args, **kargs) |
147 | + self.teams = teams |
148 | + self.fields['venue'].choices = self.grouped_venue_list() |
149 | + from common.widgets import PopupRelatedFieldWidgetWrapper |
150 | + |
151 | + self.fields['venue'].widget = PopupRelatedFieldWidgetWrapper(self.fields['venue'].widget, reverse('venue-new')) |
152 | + |
153 | def grouped_venue_list(self): |
154 | """ |
155 | Returns a list of venues grouped by country |
156 | @@ -147,6 +223,7 @@ |
157 | |
158 | return venue_choices |
159 | |
160 | +<<<<<<< TREE |
161 | |
162 | class GlobalEventForm(BaseEventForm): |
163 | """ |
164 | @@ -177,3 +254,22 @@ |
165 | class Meta: |
166 | model = TeamEventComment |
167 | exclude = ('team_event', 'date_created', 'commenter_profile') |
168 | +======= |
169 | + class Meta: |
170 | + model = TeamEventVenue |
171 | + exclude = ('team_event') |
172 | + |
173 | + class Media: |
174 | + css = {'all': ( |
175 | + settings.MEDIA_URL + 'css/colortip-1.0-jquery.css', |
176 | + settings.MEDIA_URL + 'css/venues.css', |
177 | + )} |
178 | + js = ( |
179 | + settings.MEDIA_URL + 'jquery/jquery.js', |
180 | + settings.MEDIA_URL + 'js/colortip-1.0-jquery.js', |
181 | + settings.MEDIA_URL + 'js/jquery.formset.js', |
182 | + settings.MEDIA_URL + 'js/venues.js', |
183 | + ) |
184 | + |
185 | +TeamEventVenueFormset = formsets.formset_factory(TeamEventVenueForm, extra=0) |
186 | +>>>>>>> MERGE-SOURCE |
187 | |
188 | === added file 'loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py' |
189 | --- loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py 1970-01-01 00:00:00 +0000 |
190 | +++ loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py 2013-06-29 22:11:25 +0000 |
191 | @@ -0,0 +1,184 @@ |
192 | +# encoding: utf-8 |
193 | +import datetime |
194 | +from south.db import db |
195 | +from south.v2 import SchemaMigration |
196 | +from django.db import models |
197 | + |
198 | +class Migration(SchemaMigration): |
199 | + |
200 | + def forwards(self, orm): |
201 | + |
202 | + # Changing field 'Attendee.guests' |
203 | + db.alter_column('events_attendee', 'guests', self.gf('events.fields.GuestsField')()) |
204 | + |
205 | + |
206 | + def backwards(self, orm): |
207 | + |
208 | + # Changing field 'Attendee.guests' |
209 | + db.alter_column('events_attendee', 'guests', self.gf('django.db.models.fields.PositiveSmallIntegerField')()) |
210 | + |
211 | + |
212 | + models = { |
213 | + 'auth.group': { |
214 | + 'Meta': {'object_name': 'Group'}, |
215 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
216 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
217 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
218 | + }, |
219 | + 'auth.permission': { |
220 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
221 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
222 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
223 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
224 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
225 | + }, |
226 | + 'auth.user': { |
227 | + 'Meta': {'object_name': 'User'}, |
228 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
229 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
230 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
231 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
232 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
233 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
234 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
235 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
236 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
237 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
238 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
239 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
240 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
241 | + }, |
242 | + 'contenttypes.contenttype': { |
243 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
244 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
245 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
246 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
247 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
248 | + }, |
249 | + 'events.attendee': { |
250 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
251 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
252 | + 'guests': ('events.fields.GuestsField', [], {}), |
253 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
254 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
255 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
256 | + }, |
257 | + 'events.baseevent': { |
258 | + 'Meta': {'object_name': 'BaseEvent'}, |
259 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
260 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
261 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 44, 56, 52296)', 'db_index': 'True'}), |
262 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
263 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
264 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
265 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
266 | + }, |
267 | + 'events.globalevent': { |
268 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
269 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
270 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
271 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
272 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
273 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
274 | + }, |
275 | + 'events.teamevent': { |
276 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
277 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
278 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
279 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
280 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
281 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
282 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}), |
283 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
284 | + }, |
285 | + 'events.teameventcomment': { |
286 | + 'Meta': {'object_name': 'TeamEventComment'}, |
287 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
288 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
289 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 44, 56, 54290)', 'db_index': 'True'}), |
290 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
291 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
292 | + }, |
293 | + 'teams.continent': { |
294 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
295 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
296 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
297 | + }, |
298 | + 'teams.country': { |
299 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
300 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
301 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
302 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
303 | + }, |
304 | + 'teams.language': { |
305 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
306 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
307 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
308 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
309 | + }, |
310 | + 'teams.team': { |
311 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
312 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
313 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
314 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
315 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
316 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
317 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
318 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
319 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
320 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
321 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
322 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
323 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
324 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
325 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
326 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
327 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
328 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
329 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
330 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
331 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
332 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
333 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
334 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
335 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
336 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
337 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
338 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
339 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
340 | + }, |
341 | + 'userprofiles.userprofile': { |
342 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
343 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
344 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
345 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
346 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
347 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
348 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
349 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
350 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
351 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
352 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
353 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
354 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
355 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
356 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
357 | + }, |
358 | + 'venues.venue': { |
359 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
360 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
361 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
362 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
363 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
364 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
365 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
366 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
367 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
368 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
369 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
370 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
371 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
372 | + } |
373 | + } |
374 | + |
375 | + complete_apps = ['events'] |
376 | |
377 | === renamed file 'loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py' => 'loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py.moved' |
378 | === added file 'loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py' |
379 | --- loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py 1970-01-01 00:00:00 +0000 |
380 | +++ loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py 2013-06-29 22:11:25 +0000 |
381 | @@ -0,0 +1,185 @@ |
382 | +# encoding: utf-8 |
383 | +import datetime |
384 | +from south.db import db |
385 | +from south.v2 import SchemaMigration |
386 | +from django.db import models |
387 | + |
388 | +class Migration(SchemaMigration): |
389 | + |
390 | + def forwards(self, orm): |
391 | + |
392 | + # Adding field 'TeamEvent.created_by' |
393 | + db.add_column('events_teamevent', 'created_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True), keep_default=False) |
394 | + |
395 | + |
396 | + def backwards(self, orm): |
397 | + |
398 | + # Deleting field 'TeamEvent.created_by' |
399 | + db.delete_column('events_teamevent', 'created_by_id') |
400 | + |
401 | + |
402 | + models = { |
403 | + 'auth.group': { |
404 | + 'Meta': {'object_name': 'Group'}, |
405 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
406 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
407 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
408 | + }, |
409 | + 'auth.permission': { |
410 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
411 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
412 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
413 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
414 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
415 | + }, |
416 | + 'auth.user': { |
417 | + 'Meta': {'object_name': 'User'}, |
418 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
419 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
420 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
421 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
422 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
423 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
424 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
425 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
426 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
427 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
428 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
429 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
430 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
431 | + }, |
432 | + 'contenttypes.contenttype': { |
433 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
434 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
435 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
436 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
437 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
438 | + }, |
439 | + 'events.attendee': { |
440 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
441 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
442 | + 'guests': ('events.fields.GuestsField', [], {}), |
443 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
444 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
445 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
446 | + }, |
447 | + 'events.baseevent': { |
448 | + 'Meta': {'object_name': 'BaseEvent'}, |
449 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
450 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
451 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 47, 40, 592156)', 'db_index': 'True'}), |
452 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
453 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
454 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
455 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
456 | + }, |
457 | + 'events.globalevent': { |
458 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
459 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
460 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
461 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
462 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
463 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
464 | + }, |
465 | + 'events.teamevent': { |
466 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
467 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
468 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
469 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
470 | + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
471 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
472 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
473 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}), |
474 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
475 | + }, |
476 | + 'events.teameventcomment': { |
477 | + 'Meta': {'object_name': 'TeamEventComment'}, |
478 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
479 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
480 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 47, 40, 594563)', 'db_index': 'True'}), |
481 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
482 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
483 | + }, |
484 | + 'teams.continent': { |
485 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
486 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
487 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
488 | + }, |
489 | + 'teams.country': { |
490 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
491 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
492 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
493 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
494 | + }, |
495 | + 'teams.language': { |
496 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
497 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
498 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
499 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
500 | + }, |
501 | + 'teams.team': { |
502 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
503 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
504 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
505 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
506 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
507 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
508 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
509 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
510 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
511 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
512 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
513 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
514 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
515 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
516 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
517 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
518 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
519 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
520 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
521 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
522 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
523 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
524 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
525 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
526 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
527 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
528 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
529 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
530 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
531 | + }, |
532 | + 'userprofiles.userprofile': { |
533 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
534 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
535 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
536 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
537 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
538 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
539 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
540 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
541 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
542 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
543 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
544 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
545 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
546 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
547 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
548 | + }, |
549 | + 'venues.venue': { |
550 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
551 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
552 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
553 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
554 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
555 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
556 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
557 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
558 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
559 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
560 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
561 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
562 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
563 | + } |
564 | + } |
565 | + |
566 | + complete_apps = ['events'] |
567 | |
568 | === renamed file 'loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py' => 'loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py.moved' |
569 | === added file 'loco_directory/events/migrations/0012_auto__add_teameventvenue.py' |
570 | --- loco_directory/events/migrations/0012_auto__add_teameventvenue.py 1970-01-01 00:00:00 +0000 |
571 | +++ loco_directory/events/migrations/0012_auto__add_teameventvenue.py 2013-06-29 22:11:25 +0000 |
572 | @@ -0,0 +1,196 @@ |
573 | +# encoding: utf-8 |
574 | +import datetime |
575 | +from south.db import db |
576 | +from south.v2 import SchemaMigration |
577 | +from django.db import models |
578 | + |
579 | +class Migration(SchemaMigration): |
580 | + |
581 | + def forwards(self, orm): |
582 | + |
583 | + # Adding model 'TeamEventVenue' |
584 | + db.create_table('events_teameventvenue', ( |
585 | + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
586 | + ('team_event', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['events.TeamEvent'])), |
587 | + ('venue', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['venues.Venue'], null=True, blank=True)), |
588 | + )) |
589 | + db.send_create_signal('events', ['TeamEventVenue']) |
590 | + |
591 | + |
592 | + def backwards(self, orm): |
593 | + |
594 | + # Deleting model 'TeamEventVenue' |
595 | + db.delete_table('events_teameventvenue') |
596 | + |
597 | + |
598 | + models = { |
599 | + 'auth.group': { |
600 | + 'Meta': {'object_name': 'Group'}, |
601 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
602 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
603 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
604 | + }, |
605 | + 'auth.permission': { |
606 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
607 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
608 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
609 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
610 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
611 | + }, |
612 | + 'auth.user': { |
613 | + 'Meta': {'object_name': 'User'}, |
614 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
615 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
616 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
617 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
618 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
619 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
620 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
621 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
622 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
623 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
624 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
625 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
626 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
627 | + }, |
628 | + 'contenttypes.contenttype': { |
629 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
630 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
631 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
632 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
633 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
634 | + }, |
635 | + 'events.attendee': { |
636 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
637 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
638 | + 'guests': ('events.fields.GuestsField', [], {}), |
639 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
640 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
641 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
642 | + }, |
643 | + 'events.baseevent': { |
644 | + 'Meta': {'object_name': 'BaseEvent'}, |
645 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
646 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
647 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 6, 28, 12, 48, 59, 458482)', 'db_index': 'True'}), |
648 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
649 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
650 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
651 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
652 | + }, |
653 | + 'events.globalevent': { |
654 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
655 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
656 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
657 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
658 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
659 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
660 | + }, |
661 | + 'events.teamevent': { |
662 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
663 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
664 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
665 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
666 | + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
667 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
668 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
669 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}), |
670 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
671 | + }, |
672 | + 'events.teameventcomment': { |
673 | + 'Meta': {'object_name': 'TeamEventComment'}, |
674 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
675 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
676 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 6, 28, 12, 48, 59, 461262)', 'db_index': 'True'}), |
677 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
678 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
679 | + }, |
680 | + 'events.teameventvenue': { |
681 | + 'Meta': {'object_name': 'TeamEventVenue'}, |
682 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
683 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}), |
684 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
685 | + }, |
686 | + 'teams.continent': { |
687 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
688 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
689 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
690 | + }, |
691 | + 'teams.country': { |
692 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
693 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
694 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
695 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
696 | + }, |
697 | + 'teams.language': { |
698 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
699 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
700 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
701 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
702 | + }, |
703 | + 'teams.team': { |
704 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
705 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
706 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
707 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
708 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
709 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
710 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
711 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
712 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
713 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
714 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
715 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
716 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
717 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
718 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
719 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
720 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
721 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
722 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
723 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
724 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
725 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
726 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), |
727 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
728 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
729 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
730 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
731 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
732 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
733 | + }, |
734 | + 'userprofiles.userprofile': { |
735 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
736 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
737 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
738 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
739 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
740 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
741 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
742 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
743 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
744 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
745 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
746 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
747 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
748 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
749 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
750 | + }, |
751 | + 'venues.venue': { |
752 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
753 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
754 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
755 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
756 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
757 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
758 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
759 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
760 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
761 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
762 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
763 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
764 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
765 | + } |
766 | + } |
767 | + |
768 | + complete_apps = ['events'] |
769 | |
770 | === added file 'loco_directory/events/migrations/0013_historical_venue.py' |
771 | --- loco_directory/events/migrations/0013_historical_venue.py 1970-01-01 00:00:00 +0000 |
772 | +++ loco_directory/events/migrations/0013_historical_venue.py 2013-06-29 22:11:25 +0000 |
773 | @@ -0,0 +1,195 @@ |
774 | +# encoding: utf-8 |
775 | +import datetime |
776 | +from south.db import db |
777 | +from south.v2 import DataMigration |
778 | +from django.db import models |
779 | + |
780 | +class Migration(DataMigration): |
781 | + |
782 | + def forwards(self, orm): |
783 | + "Write your forwards methods here." |
784 | + for team_event in orm.TeamEvent.objects.all(): |
785 | + |
786 | + team_event_venue = orm.TeamEventVenue() |
787 | + |
788 | + team_event_venue.team_event = team_event |
789 | + team_event_venue.venue = team_event.venue |
790 | + |
791 | + team_event_venue.save() |
792 | + |
793 | + |
794 | + def backwards(self, orm): |
795 | + "Write your backwards methods here." |
796 | + |
797 | + |
798 | + models = { |
799 | + 'auth.group': { |
800 | + 'Meta': {'object_name': 'Group'}, |
801 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
802 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
803 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
804 | + }, |
805 | + 'auth.permission': { |
806 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
807 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
808 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
809 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
810 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
811 | + }, |
812 | + 'auth.user': { |
813 | + 'Meta': {'object_name': 'User'}, |
814 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
815 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
816 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
817 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
818 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
819 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
820 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
821 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
822 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
823 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
824 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
825 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
826 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
827 | + }, |
828 | + 'contenttypes.contenttype': { |
829 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
830 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
831 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
832 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
833 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
834 | + }, |
835 | + 'events.attendee': { |
836 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
837 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
838 | + 'guests': ('events.fields.GuestsField', [], {}), |
839 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
840 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
841 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
842 | + }, |
843 | + 'events.baseevent': { |
844 | + 'Meta': {'object_name': 'BaseEvent'}, |
845 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
846 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
847 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 6, 28, 15, 33, 18, 253919)', 'db_index': 'True'}), |
848 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
849 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
850 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
851 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
852 | + }, |
853 | + 'events.globalevent': { |
854 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
855 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
856 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
857 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
858 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
859 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
860 | + }, |
861 | + 'events.teamevent': { |
862 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
863 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
864 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
865 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
866 | + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
867 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
868 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
869 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}), |
870 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
871 | + }, |
872 | + 'events.teameventcomment': { |
873 | + 'Meta': {'object_name': 'TeamEventComment'}, |
874 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
875 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
876 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 6, 28, 15, 33, 18, 258052)', 'db_index': 'True'}), |
877 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
878 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
879 | + }, |
880 | + 'events.teameventvenue': { |
881 | + 'Meta': {'object_name': 'TeamEventVenue'}, |
882 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
883 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}), |
884 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
885 | + }, |
886 | + 'teams.continent': { |
887 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
888 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
889 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
890 | + }, |
891 | + 'teams.country': { |
892 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
893 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
894 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
895 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
896 | + }, |
897 | + 'teams.language': { |
898 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
899 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
900 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
901 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
902 | + }, |
903 | + 'teams.team': { |
904 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
905 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
906 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
907 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
908 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
909 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
910 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
911 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
912 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
913 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
914 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
915 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
916 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
917 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
918 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
919 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
920 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
921 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
922 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
923 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
924 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
925 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
926 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), |
927 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
928 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
929 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
930 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
931 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
932 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
933 | + }, |
934 | + 'userprofiles.userprofile': { |
935 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
936 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
937 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
938 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
939 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
940 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
941 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
942 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
943 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
944 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
945 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
946 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
947 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
948 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
949 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
950 | + }, |
951 | + 'venues.venue': { |
952 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
953 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
954 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
955 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
956 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
957 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
958 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
959 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
960 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
961 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
962 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
963 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
964 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
965 | + } |
966 | + } |
967 | + |
968 | + complete_apps = ['events'] |
969 | |
970 | === added file 'loco_directory/events/migrations/0014_auto__del_field_teamevent_venue.py' |
971 | --- loco_directory/events/migrations/0014_auto__del_field_teamevent_venue.py 1970-01-01 00:00:00 +0000 |
972 | +++ loco_directory/events/migrations/0014_auto__del_field_teamevent_venue.py 2013-06-29 22:11:25 +0000 |
973 | @@ -0,0 +1,190 @@ |
974 | +# encoding: utf-8 |
975 | +import datetime |
976 | +from south.db import db |
977 | +from south.v2 import SchemaMigration |
978 | +from django.db import models |
979 | + |
980 | +class Migration(SchemaMigration): |
981 | + |
982 | + def forwards(self, orm): |
983 | + |
984 | + # Deleting field 'TeamEvent.venue' |
985 | + db.delete_column('events_teamevent', 'venue_id') |
986 | + |
987 | + |
988 | + def backwards(self, orm): |
989 | + |
990 | + # Adding field 'TeamEvent.venue' |
991 | + db.add_column('events_teamevent', 'venue', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['venues.Venue'], null=True, blank=True), keep_default=False) |
992 | + |
993 | + |
994 | + models = { |
995 | + 'auth.group': { |
996 | + 'Meta': {'object_name': 'Group'}, |
997 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
998 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
999 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
1000 | + }, |
1001 | + 'auth.permission': { |
1002 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
1003 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
1004 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
1005 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1006 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
1007 | + }, |
1008 | + 'auth.user': { |
1009 | + 'Meta': {'object_name': 'User'}, |
1010 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
1011 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
1012 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
1013 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
1014 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1015 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
1016 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
1017 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
1018 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
1019 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
1020 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
1021 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
1022 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
1023 | + }, |
1024 | + 'contenttypes.contenttype': { |
1025 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
1026 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
1027 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1028 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
1029 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
1030 | + }, |
1031 | + 'events.attendee': { |
1032 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
1033 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
1034 | + 'guests': ('events.fields.GuestsField', [], {}), |
1035 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1036 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
1037 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
1038 | + }, |
1039 | + 'events.baseevent': { |
1040 | + 'Meta': {'object_name': 'BaseEvent'}, |
1041 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1042 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
1043 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 6, 29, 20, 33, 16, 717631)', 'db_index': 'True'}), |
1044 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
1045 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
1046 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1047 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
1048 | + }, |
1049 | + 'events.globalevent': { |
1050 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
1051 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
1052 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
1053 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
1054 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
1055 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
1056 | + }, |
1057 | + 'events.teamevent': { |
1058 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
1059 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
1060 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
1061 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
1062 | + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
1063 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
1064 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1065 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}) |
1066 | + }, |
1067 | + 'events.teameventcomment': { |
1068 | + 'Meta': {'object_name': 'TeamEventComment'}, |
1069 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
1070 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
1071 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 6, 29, 20, 33, 16, 721835)', 'db_index': 'True'}), |
1072 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1073 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
1074 | + }, |
1075 | + 'events.teameventvenue': { |
1076 | + 'Meta': {'object_name': 'TeamEventVenue'}, |
1077 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1078 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}), |
1079 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
1080 | + }, |
1081 | + 'teams.continent': { |
1082 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
1083 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1084 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
1085 | + }, |
1086 | + 'teams.country': { |
1087 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
1088 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
1089 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1090 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
1091 | + }, |
1092 | + 'teams.language': { |
1093 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
1094 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
1095 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1096 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
1097 | + }, |
1098 | + 'teams.team': { |
1099 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
1100 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
1101 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
1102 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
1103 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
1104 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
1105 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
1106 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
1107 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
1108 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
1109 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
1110 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1111 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1112 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
1113 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
1114 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
1115 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
1116 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1117 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1118 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
1119 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
1120 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
1121 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), |
1122 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
1123 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
1124 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
1125 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
1126 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1127 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
1128 | + }, |
1129 | + 'userprofiles.userprofile': { |
1130 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
1131 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1132 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
1133 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1134 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1135 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1136 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1137 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1138 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
1139 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1140 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
1141 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
1142 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
1143 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
1144 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
1145 | + }, |
1146 | + 'venues.venue': { |
1147 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
1148 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
1149 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
1150 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
1151 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
1152 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
1153 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
1154 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
1155 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
1156 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
1157 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
1158 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
1159 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
1160 | + } |
1161 | + } |
1162 | + |
1163 | + complete_apps = ['events'] |
1164 | |
1165 | === modified file 'loco_directory/events/models.py' |
1166 | --- loco_directory/events/models.py 2013-05-11 14:07:21 +0000 |
1167 | +++ loco_directory/events/models.py 2013-06-29 22:11:25 +0000 |
1168 | @@ -92,14 +92,13 @@ |
1169 | teams = models.ManyToManyField(Team, help_text=_('teams planning this event.'), verbose_name=_('Teams Participating'), db_index=True) |
1170 | contact = models.ForeignKey(UserProfile, verbose_name=_('Event Contact'), null=True, help_text=_('Contact person for this event.')) |
1171 | global_event = models.ForeignKey(GlobalEvent, help_text=_('this team event is part of the selected global event'), verbose_name=_('Related Global Event'), blank=True, null=True) |
1172 | - venue = models.ForeignKey(Venue, help_text=_('Venue for the Event'), verbose_name=_('Event Venue'), blank=True, null=True) |
1173 | channel = models.CharField(help_text=_('Channel for the Event hosted on the freenode IRC network. Ex. #ubuntu-us-fl'), max_length=25, verbose_name=_('Event Channel'), blank=True, null=True) |
1174 | registration = models.URLField(verbose_name=_('Registration URL'), help_text=_('URL to register attendance (leave blank to use the built-in registration system)'), max_length=200, verify_exists=False, blank=True, null=True) |
1175 | |
1176 | objects = TeamEventManager() |
1177 | |
1178 | def __unicode__(self): |
1179 | - return "%s %s %s" % (self.name, self.venue, self.date_begin or "") |
1180 | + return "%s %s" % (self.name, self.date_begin or "") |
1181 | |
1182 | @models.permalink |
1183 | def get_absolute_url(self): |
1184 | @@ -207,6 +206,15 @@ |
1185 | self.date_created = local_created |
1186 | local_date_created = property(get_local_created, set_local_created) |
1187 | |
1188 | +class TeamEventVenue(models.Model): |
1189 | + """ |
1190 | + a model for venue about a team event |
1191 | + """ |
1192 | + team_event = models.ForeignKey(TeamEvent, help_text=_('the Team Event')) |
1193 | + venue = models.ForeignKey(Venue, help_text=_('Venue for the Event'), verbose_name=_('Event Venue'), blank=True, null=True) |
1194 | + |
1195 | + def __unicode__(self): |
1196 | + return "Team Event: %s" % self.team_event.name |
1197 | |
1198 | class Attendee(models.Model): |
1199 | """ |
1200 | |
1201 | === modified file 'loco_directory/events/views.py' |
1202 | --- loco_directory/events/views.py 2013-05-11 14:07:21 +0000 |
1203 | +++ loco_directory/events/views.py 2013-06-29 22:11:25 +0000 |
1204 | @@ -7,11 +7,17 @@ |
1205 | from django.utils.translation import ugettext as _ |
1206 | from django.db.models import Count |
1207 | |
1208 | +<<<<<<< TREE |
1209 | from .models import (TeamEvent, GlobalEvent, Attendee, TeamEventComment) |
1210 | from teams.models import Team |
1211 | +======= |
1212 | +from .models import (TeamEvent, GlobalEvent, Attendee, TeamEventComment, TeamEventVenue) |
1213 | + |
1214 | +from teams.models import Team, Country, Continent |
1215 | +>>>>>>> MERGE-SOURCE |
1216 | |
1217 | from .forms import (TeamEventForm, TeamEventCommentForm, |
1218 | - GlobalEventForm, AttendeeRegistrationForm) |
1219 | + GlobalEventForm, AttendeeRegistrationForm, TeamEventVenueFormset) |
1220 | |
1221 | from common.forms import FilterHistoryList |
1222 | from common import launchpad |
1223 | @@ -132,7 +138,13 @@ |
1224 | """ |
1225 | detailed view for a team event |
1226 | """ |
1227 | +<<<<<<< TREE |
1228 | team_event = get_object_or_404(TeamEvent, pk=team_event_id) |
1229 | +======= |
1230 | + team_event_object = get_object_or_404(TeamEvent, pk=team_event_id) |
1231 | + team_event_venues = TeamEventVenue.objects.all().filter(team_event__id=team_event_id) |
1232 | + |
1233 | +>>>>>>> MERGE-SOURCE |
1234 | is_member = False |
1235 | for team_object in team_event.teams.all(): |
1236 | is_member = is_member or launchpad.is_team_member(request.user, team_object) |
1237 | @@ -153,8 +165,14 @@ |
1238 | form = None |
1239 | |
1240 | context = { |
1241 | +<<<<<<< TREE |
1242 | 'team_event': team_event, |
1243 | 'user_is_attending': team_event.is_attending(request.user), |
1244 | +======= |
1245 | + 'team_event_object': team_event_object, |
1246 | + 'team_event_venues': team_event_venues, |
1247 | + 'user_is_attending': team_event_object.is_attending(request.user), |
1248 | +>>>>>>> MERGE-SOURCE |
1249 | 'user_is_team_member': is_member, |
1250 | 'form': form, |
1251 | } |
1252 | @@ -180,6 +198,9 @@ |
1253 | if is_on_lc or is_contact: |
1254 | if request.method == 'POST': |
1255 | team_event_object.delete() |
1256 | + |
1257 | + TeamEventVenue.objects.filter(team_event__pk=team_event_object.pk).delete() |
1258 | + |
1259 | request.user.message_set.create(message=_('Team Event removed.')) |
1260 | return redirect('event-list') |
1261 | else: |
1262 | @@ -211,7 +232,6 @@ |
1263 | def team_events_rss(request, team_slug): |
1264 | return redirect('/feeds/events/%s/' % team_slug, permanent=True) |
1265 | |
1266 | - |
1267 | @login_required |
1268 | def team_event_new(request, team_slug): |
1269 | """ |
1270 | @@ -224,22 +244,43 @@ |
1271 | |
1272 | if is_on_lc or is_member: |
1273 | global_event = None |
1274 | + |
1275 | if request.method == 'POST': |
1276 | form = TeamEventForm(data=request.POST, teams=[team_object]) |
1277 | +<<<<<<< TREE |
1278 | if form.is_valid(): |
1279 | team_event = form.save(commit=False) |
1280 | team_event.created_by = request.user |
1281 | team_event.save() |
1282 | +======= |
1283 | + formset = TeamEventVenueFormset(data=request.POST) |
1284 | + |
1285 | + if form.is_valid() and formset.is_valid(): |
1286 | + team_event = form.save() |
1287 | +>>>>>>> MERGE-SOURCE |
1288 | team_event.teams.add(team_object) |
1289 | + |
1290 | + for venue_form in formset.forms: |
1291 | + |
1292 | + team_event_venue = venue_form.save(commit=False) |
1293 | + |
1294 | + if team_event_venue.venue: |
1295 | + team_event_venue.team_event = team_event |
1296 | + team_event_venue.save() |
1297 | + |
1298 | return HttpResponseRedirect(team_event.get_absolute_url()) |
1299 | else: |
1300 | form = TeamEventForm(initial={'global_event': request.GET.get('global_event_id', None)}, teams=[team_object]) |
1301 | if 'global_event_id' in request.GET: |
1302 | global_event = get_object_or_404(GlobalEvent, pk=request.GET.get('global_event_id')) |
1303 | + |
1304 | + formset = TeamEventVenueFormset(initial=[{'teams': team_object }]) |
1305 | + |
1306 | context = { |
1307 | 'team_object': team_object, |
1308 | 'form': form, |
1309 | 'global_event': global_event, |
1310 | + 'formset': formset, |
1311 | } |
1312 | return render_to_response('events/team_event_new.html', |
1313 | context, RequestContext(request)) |
1314 | @@ -270,15 +311,44 @@ |
1315 | if request.method == 'POST': |
1316 | form = TeamEventForm(instance=team_event, data=request.POST, teams=teams) |
1317 | team_event.id = team_event.pk = None |
1318 | - if form.is_valid(): |
1319 | + |
1320 | + formset = TeamEventVenueFormset(data=request.POST) |
1321 | + |
1322 | + if form.is_valid() and formset.is_valid(): |
1323 | + |
1324 | team_event = form.save() |
1325 | team_event.teams.add(team_object) |
1326 | + |
1327 | + for venue_form in formset.forms: |
1328 | + |
1329 | + team_event_venue = venue_form.save(commit=False) |
1330 | + team_event_venue.team_event = team_event |
1331 | + team_event_venue.save() |
1332 | + |
1333 | return HttpResponseRedirect(team_event.get_absolute_url()) |
1334 | else: |
1335 | +<<<<<<< TREE |
1336 | form = TeamEventForm(instance=team_event, teams=teams) |
1337 | +======= |
1338 | + form = TeamEventForm(instance=team_event, teams=team_event.teams.all()) |
1339 | + |
1340 | + team_event_venues = TeamEventVenue.objects.all().filter(team_event__id=team_event_id) |
1341 | + |
1342 | + number_of_venues = len(team_event_venues) |
1343 | + |
1344 | + data = { 'form-TOTAL_FORMS': number_of_venues, |
1345 | + 'form-INITIAL_FORMS': number_of_venues} |
1346 | + |
1347 | + for i in range(number_of_venues): |
1348 | + data.update({'form-%s' % str(i) + '-venue': team_event_venues[i].venue.pk}) |
1349 | + |
1350 | + formset = TeamEventVenueFormset(data, initial=[{'teams': team_object }]) |
1351 | + |
1352 | +>>>>>>> MERGE-SOURCE |
1353 | context = { |
1354 | 'team_object': team_object, |
1355 | 'form': form, |
1356 | + 'formset': formset, |
1357 | } |
1358 | return render_to_response('events/team_event_new.html', |
1359 | context, RequestContext(request)) |
1360 | @@ -305,17 +375,58 @@ |
1361 | is_on_lc = launchpad.is_user_on_loco_council(request.user) |
1362 | |
1363 | if is_on_lc or is_member: |
1364 | + |
1365 | if request.method == 'POST': |
1366 | +<<<<<<< TREE |
1367 | form = TeamEventForm(data=request.POST, instance=team_event, teams=teams) |
1368 | if form.is_valid(): |
1369 | +======= |
1370 | + form = TeamEventForm(data=request.POST, instance=team_event_object, teams=team_event_object.teams.all()) |
1371 | + |
1372 | + formset = TeamEventVenueFormset(data=request.POST) |
1373 | + |
1374 | + if form.is_valid() and formset.is_valid(): |
1375 | + |
1376 | +>>>>>>> MERGE-SOURCE |
1377 | form.save() |
1378 | + |
1379 | + venues = [] |
1380 | + |
1381 | + for venue_form in formset.forms: |
1382 | + |
1383 | + team_event_venue = venue_form.save(commit=False) |
1384 | + team_event_venue.team_event = team_event_object |
1385 | + team_event_venue.save() |
1386 | + |
1387 | + venues.append(team_event_venue.pk) |
1388 | + |
1389 | + TeamEventVenue.objects.filter(team_event__pk=team_event_object.pk).exclude(pk__in=venues).delete() |
1390 | + |
1391 | request.user.message_set.create(message=_('Team Event updated.')) |
1392 | return redirect(team_event) |
1393 | else: |
1394 | +<<<<<<< TREE |
1395 | form = TeamEventForm(instance=team_event, teams=teams) |
1396 | +======= |
1397 | + |
1398 | + form = TeamEventForm(instance=team_event_object, teams=team_event_object.teams.all()) |
1399 | +>>>>>>> MERGE-SOURCE |
1400 | + |
1401 | + team_event_venues = TeamEventVenue.objects.all().filter(team_event__id=team_event_id) |
1402 | + |
1403 | + number_of_venues = len(team_event_venues) |
1404 | + |
1405 | + data = { 'form-TOTAL_FORMS': number_of_venues, |
1406 | + 'form-INITIAL_FORMS': number_of_venues} |
1407 | + |
1408 | + for i in range(number_of_venues): |
1409 | + data.update({'form-%s' % str(i) + '-venue': team_event_venues[i].venue.pk}) |
1410 | + |
1411 | + formset = TeamEventVenueFormset(data, initial=[{'teams': team_event_object}]) |
1412 | |
1413 | context = { |
1414 | 'form': form, |
1415 | + 'formset': formset, |
1416 | } |
1417 | return render_to_response( |
1418 | 'events/team_event_update.html', |
1419 | |
1420 | === added file 'loco_directory/media/css/venues.css' |
1421 | --- loco_directory/media/css/venues.css 1970-01-01 00:00:00 +0000 |
1422 | +++ loco_directory/media/css/venues.css 2013-06-29 22:11:25 +0000 |
1423 | @@ -0,0 +1,10 @@ |
1424 | + .add-row { |
1425 | + padding-left:18px; |
1426 | + background:url(../images/add.png) no-repeat left center; |
1427 | + } |
1428 | + .delete-row { |
1429 | + display:block; |
1430 | + margin:6px 0 0 0; |
1431 | + padding-left:18px; |
1432 | + background:url(../images/delete.png) no-repeat left center; |
1433 | + } |
1434 | |
1435 | === added file 'loco_directory/media/images/add.png' |
1436 | Binary files loco_directory/media/images/add.png 1970-01-01 00:00:00 +0000 and loco_directory/media/images/add.png 2013-06-29 22:11:25 +0000 differ |
1437 | === added file 'loco_directory/media/images/delete.png' |
1438 | Binary files loco_directory/media/images/delete.png 1970-01-01 00:00:00 +0000 and loco_directory/media/images/delete.png 2013-06-29 22:11:25 +0000 differ |
1439 | === added file 'loco_directory/media/js/jquery.formset.js' |
1440 | --- loco_directory/media/js/jquery.formset.js 1970-01-01 00:00:00 +0000 |
1441 | +++ loco_directory/media/js/jquery.formset.js 2013-06-29 22:11:25 +0000 |
1442 | @@ -0,0 +1,170 @@ |
1443 | +/** |
1444 | + * jQuery Formset 1.2 |
1445 | + * @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) |
1446 | + * @requires jQuery 1.2.6 or later |
1447 | + * |
1448 | + * Copyright (c) 2009, Stanislaus Madueke |
1449 | + * All rights reserved. |
1450 | + * |
1451 | + * Licensed under the New BSD License |
1452 | + * See: http://www.opensource.org/licenses/bsd-license.php |
1453 | + */ |
1454 | +;(function($) { |
1455 | + $.fn.formset = function(opts) |
1456 | + { |
1457 | + var options = $.extend({}, $.fn.formset.defaults, opts), |
1458 | + flatExtraClasses = options.extraClasses.join(' '), |
1459 | + $$ = $(this), |
1460 | + |
1461 | + applyExtraClasses = function(row, ndx) { |
1462 | + if (options.extraClasses) { |
1463 | + row.removeClass(flatExtraClasses); |
1464 | + row.addClass(options.extraClasses[ndx % options.extraClasses.length]); |
1465 | + } |
1466 | + }, |
1467 | + |
1468 | + updateElementIndex = function(elem, prefix, ndx) { |
1469 | + var idRegex = new RegExp('(' + prefix + '-\\d+-)|(^)'), |
1470 | + replacement = prefix + '-' + ndx + '-'; |
1471 | + if (elem.attr("for")) elem.attr("for", elem.attr("for").replace(idRegex, replacement)); |
1472 | + if (elem.attr('id')) elem.attr('id', elem.attr('id').replace(idRegex, replacement)); |
1473 | + if (elem.attr('name')) elem.attr('name', elem.attr('name').replace(idRegex, replacement)); |
1474 | + }, |
1475 | + |
1476 | + hasChildElements = function(row) { |
1477 | + return row.find('input,select,textarea,label').length > 0; |
1478 | + }, |
1479 | + |
1480 | + insertDeleteLink = function(row) { |
1481 | + if (row.is('TR')) { |
1482 | + // If the forms are laid out in table rows, insert |
1483 | + // the remove button into the last table cell: |
1484 | + row.children(':last').append('<a class="' + options.deleteCssClass +'" href="javascript:void(0)">' + options.deleteText + '</a>'); |
1485 | + } else if (row.is('UL') || row.is('OL')) { |
1486 | + // If they're laid out as an ordered/unordered list, |
1487 | + // insert an <li> after the last list item: |
1488 | + row.append('<li><a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText +'</a></li>'); |
1489 | + } else { |
1490 | + // Otherwise, just insert the remove button as the |
1491 | + // last child element of the form's container: |
1492 | + row.append('<a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText +'</a>'); |
1493 | + } |
1494 | + row.find('a.' + options.deleteCssClass).click(function() { |
1495 | + var row = $(this).parents('.' + options.formCssClass), |
1496 | + del = row.find('input:hidden[id $= "-DELETE"]'); |
1497 | + if (del.length) { |
1498 | + // We're dealing with an inline formset; rather than remove |
1499 | + // this form from the DOM, we'll mark it as deleted and hide |
1500 | + // it, then let Django handle the deleting: |
1501 | + del.val('on'); |
1502 | + row.hide(); |
1503 | + } else { |
1504 | + row.remove(); |
1505 | + // Update the TOTAL_FORMS form count. |
1506 | + // Also update names and IDs for all remaining form controls so they remain in sequence: |
1507 | + var forms = $('.' + options.formCssClass).not('.formset-custom-template'); |
1508 | + $('#id_' + options.prefix + '-TOTAL_FORMS').val(forms.length); |
1509 | + for (var i=0, formCount=forms.length; i<formCount; i++) { |
1510 | + applyExtraClasses(forms.eq(i), i); |
1511 | + forms.eq(i).find('input,select,textarea,label').each(function() { |
1512 | + updateElementIndex($(this), options.prefix, i); |
1513 | + }); |
1514 | + } |
1515 | + } |
1516 | + // If a post-delete callback was provided, call it with the deleted form: |
1517 | + if (options.removed) options.removed(row); |
1518 | + return false; |
1519 | + }); |
1520 | + }; |
1521 | + |
1522 | + $$.each(function(i) { |
1523 | + var row = $(this), |
1524 | + del = row.find('input:checkbox[id $= "-DELETE"]'); |
1525 | + if (del.length) { |
1526 | + // If you specify "can_delete = True" when creating an inline formset, |
1527 | + // Django adds a checkbox to each form in the formset. |
1528 | + // Replace the default checkbox with a hidden field: |
1529 | + del.before('<input type="hidden" name="' + del.attr('name') +'" id="' + del.attr('id') +'" />'); |
1530 | + del.remove(); |
1531 | + } |
1532 | + if (hasChildElements(row)) { |
1533 | + insertDeleteLink(row); |
1534 | + row.addClass(options.formCssClass); |
1535 | + applyExtraClasses(row, i); |
1536 | + } |
1537 | + }); |
1538 | + |
1539 | + if ($$.length) { |
1540 | + var addButton, template; |
1541 | + if (options.formTemplate) { |
1542 | + // If a form template was specified, we'll clone it to generate new form instances: |
1543 | + template = (options.formTemplate instanceof $) ? options.formTemplate : $(options.formTemplate); |
1544 | + template.removeAttr('id').addClass(options.formCssClass).addClass('formset-custom-template'); |
1545 | + template.find('input,select,textarea,label').each(function() { |
1546 | + updateElementIndex($(this), options.prefix, 2012); |
1547 | + }); |
1548 | + insertDeleteLink(template); |
1549 | + } else { |
1550 | + // Otherwise, use the last form in the formset; this works much better if you've got |
1551 | + // extra (>= 1) forms (thnaks to justhamade for pointing this out): |
1552 | + template = $('.' + options.formCssClass + ':last').clone(true).removeAttr('id'); |
1553 | + template.find('input:hidden[id $= "-DELETE"]').remove(); |
1554 | + template.find('input,select,textarea,label').each(function() { |
1555 | + var elem = $(this); |
1556 | + // If this is a checkbox or radiobutton, uncheck it. |
1557 | + // This fixes Issue 1, reported by Wilson.Andrew.J: |
1558 | + if (elem.is('input:checkbox') || elem.is('input:radio')) { |
1559 | + elem.attr('checked', false); |
1560 | + } else { |
1561 | + elem.val(''); |
1562 | + } |
1563 | + }); |
1564 | + } |
1565 | + // FIXME: Perhaps using $.data would be a better idea? |
1566 | + options.formTemplate = template; |
1567 | + |
1568 | + if ($$.attr('tagName') == 'TR') { |
1569 | + // If forms are laid out as table rows, insert the |
1570 | + // "add" button in a new table row: |
1571 | + var numCols = $$.eq(0).children().length; |
1572 | + $$.parent().append('<tr><td colspan="' + numCols + '"><a class="' + options.addCssClass + '" href="javascript:void(0)">' + options.addText + '</a></tr>'); |
1573 | + addButton = $$.parent().find('tr:last a'); |
1574 | + addButton.parents('tr').addClass(options.formCssClass + '-add'); |
1575 | + } else { |
1576 | + // Otherwise, insert it immediately after the last form: |
1577 | + $$.filter(':last').after('<a class="' + options.addCssClass + '" href="javascript:void(0)">' + options.addText + '</a>'); |
1578 | + addButton = $$.filter(':last').next(); |
1579 | + } |
1580 | + addButton.click(function() { |
1581 | + var formCount = parseInt($('#id_' + options.prefix + '-TOTAL_FORMS').val()), |
1582 | + row = options.formTemplate.clone(true).removeClass('formset-custom-template'), |
1583 | + buttonRow = $(this).parents('tr.' + options.formCssClass + '-add').get(0) || this; |
1584 | + applyExtraClasses(row, formCount); |
1585 | + row.insertBefore($(buttonRow)).show(); |
1586 | + row.find('input,select,textarea,label').each(function() { |
1587 | + updateElementIndex($(this), options.prefix, formCount); |
1588 | + }); |
1589 | + $('#id_' + options.prefix + '-TOTAL_FORMS').val(formCount + 1); |
1590 | + // If a post-add callback was supplied, call it with the added form: |
1591 | + if (options.added) options.added(row); |
1592 | + return false; |
1593 | + }); |
1594 | + } |
1595 | + |
1596 | + return $$; |
1597 | + } |
1598 | + |
1599 | + /* Setup plugin defaults */ |
1600 | + $.fn.formset.defaults = { |
1601 | + prefix: 'form', // The form prefix for your django formset |
1602 | + formTemplate: null, // The jQuery selection cloned to generate new form instances |
1603 | + addText: 'add another', // Text for the add link |
1604 | + deleteText: 'remove', // Text for the delete link |
1605 | + addCssClass: 'add-row', // CSS class applied to the add link |
1606 | + deleteCssClass: 'delete-row', // CSS class applied to the delete link |
1607 | + formCssClass: 'dynamic-form', // CSS class applied to each form in a formset |
1608 | + extraClasses: [], // Additional CSS classes, which will be applied to each form in turn |
1609 | + added: null, // Function called each time a new form is added |
1610 | + removed: null // Function called each time a form is deleted |
1611 | + }; |
1612 | +})(jQuery) |
1613 | |
1614 | === added file 'loco_directory/media/js/venues.js' |
1615 | --- loco_directory/media/js/venues.js 1970-01-01 00:00:00 +0000 |
1616 | +++ loco_directory/media/js/venues.js 2013-06-29 22:11:25 +0000 |
1617 | @@ -0,0 +1,3 @@ |
1618 | +$(document).ready(function(){ |
1619 | + $('form #venues').formset({ }) |
1620 | +}) |
1621 | |
1622 | === modified file 'loco_directory/templates/events/team_event_new.html' |
1623 | --- loco_directory/templates/events/team_event_new.html 2013-02-17 01:44:52 +0000 |
1624 | +++ loco_directory/templates/events/team_event_new.html 2013-06-29 22:11:25 +0000 |
1625 | @@ -4,7 +4,12 @@ |
1626 | {% block page_name %}{% trans "New Team Event" %}{% endblock %} |
1627 | |
1628 | {% block extrahead %}{{ block.super }} |
1629 | +<<<<<<< TREE |
1630 | {{ form.media }} |
1631 | +======= |
1632 | +{{form.media}} |
1633 | +{{formset.media}} |
1634 | +>>>>>>> MERGE-SOURCE |
1635 | {% if global_event %} |
1636 | <script type="text/javascript"> |
1637 | $.datepicker.setDefaults({ |
1638 | @@ -17,6 +22,7 @@ |
1639 | |
1640 | {% block content %} |
1641 | <div class="row"> |
1642 | +<<<<<<< TREE |
1643 | <section class="span-9"> |
1644 | <div class="box_content"> |
1645 | <div class="pagelet"> |
1646 | @@ -29,5 +35,25 @@ |
1647 | </div> |
1648 | </div> |
1649 | </section> |
1650 | +======= |
1651 | +<section class="span-9"> |
1652 | + <form action="." method="post">{% csrf_token %} |
1653 | + <fieldset> |
1654 | + <h3>{% trans "Add new Team Event for " %}{{ team_object.name}}<span class="supporting">{% trans 'is required' %}</span></h3> |
1655 | + {{ form.as_template }} |
1656 | + |
1657 | + {% if is_popup %}<input type="hidden" name="_popup" value="1">{% endif %} |
1658 | + {% for form in formset.forms %} |
1659 | + <div id="venues" > |
1660 | + {{ form.venue }} |
1661 | + </div> |
1662 | + {% endfor %} |
1663 | + {{ formset.management_form }} |
1664 | + </fieldset> |
1665 | + |
1666 | + <input type="submit" name="submit" value="{% trans "Submit" %}" class="submit-button" /> |
1667 | + </form> |
1668 | +</section> |
1669 | +>>>>>>> MERGE-SOURCE |
1670 | </div> |
1671 | {% endblock %} |
1672 | \ No newline at end of file |
1673 | |
1674 | === modified file 'loco_directory/templates/events/team_event_update.html' |
1675 | --- loco_directory/templates/events/team_event_update.html 2013-02-17 01:44:52 +0000 |
1676 | +++ loco_directory/templates/events/team_event_update.html 2013-06-29 22:11:25 +0000 |
1677 | @@ -4,11 +4,26 @@ |
1678 | {% block page_name %}{% trans "Update Team Event" %}{% endblock %} |
1679 | |
1680 | {% block extrahead %}{{ block.super }} |
1681 | +<<<<<<< TREE |
1682 | {{ form.media }} |
1683 | +======= |
1684 | +{{form.media}} |
1685 | +{{formset.media}} |
1686 | +{% endblock %} |
1687 | + |
1688 | +{% block extrafooter %} |
1689 | +<script type="text/javascript"><!-- |
1690 | +$(document).ready(function(){ |
1691 | + $('span[rel*=help]').colorTip({color:'orange'}); |
1692 | + |
1693 | +}); |
1694 | +--></script> |
1695 | +>>>>>>> MERGE-SOURCE |
1696 | {% endblock %} |
1697 | |
1698 | {% block content %} |
1699 | <div class="row"> |
1700 | +<<<<<<< TREE |
1701 | <section class="span-9"> |
1702 | <div class="box_content"> |
1703 | <div class="pagelet"> |
1704 | @@ -21,5 +36,25 @@ |
1705 | </div> |
1706 | </div> |
1707 | </section> |
1708 | +======= |
1709 | +<section class="span-9"> |
1710 | + <form action="." method="post">{% csrf_token %} |
1711 | + <fieldset> |
1712 | + <h3>{% trans "Update Team Event" %}</h3> |
1713 | + {{ form.as_template }} |
1714 | + |
1715 | + {% for form in formset.forms %} |
1716 | + <div id="venues" > |
1717 | + {{ form.venue }} |
1718 | + </div> |
1719 | + {% endfor %} |
1720 | + {{ formset.management_form }} |
1721 | + |
1722 | + </fieldset> |
1723 | + {% if is_popup %}<input type="hidden" name="_popup" value="1">{% endif %} |
1724 | + <input type="submit" name="submit" value="{% trans "Submit" %}" class="submit-button" /> |
1725 | + </form> |
1726 | +</section> |
1727 | +>>>>>>> MERGE-SOURCE |
1728 | </div> |
1729 | {% endblock %} |
Please clean up the merge conflicts.