Merge lp:~ris/loco-team-portal/fix-552762 into lp:loco-team-portal

Proposed by Robert Sajdok
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
Reviewer Review Type Date Requested Status
Adnane Belmadiaf Needs Fixing
Chris Johnston Needs Fixing
Review via email: mp+142553@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Chris Johnston (cjohnston) wrote :

Please clean up the merge conflicts.

review: Needs Fixing
Revision history for this message
Robert Sajdok (ris) wrote :

> Please clean up the merge conflicts.
How can I do this on my local working directory?

Revision history for this message
Robert Sajdok (ris) wrote :

I've done this way:
$ bzr merge https://code.launchpad.net/~ltp-devs/loco-team-portal/0.2
I am working with conflicts.

lp:~ris/loco-team-portal/fix-552762 updated
555. By Robert Sajdok

Resolve conflicts

Revision history for this message
Robert Sajdok (ris) wrote :

> Please clean up the merge conflicts.
done, please review

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

> done, please review
Thanks Ris for your work, i'll take a look at your MP this week.

Revision history for this message
Robert Sajdok (ris) wrote :

Any progress?

Revision history for this message
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_column('events_teamevent', 'venue_id')

we need to store in memory all venues/events relatiosn before then create them once the new table TeamEventVenue is created.

review: Needs Fixing
lp:~ris/loco-team-portal/fix-552762 updated
556. By Robert Sajdok

South Changes for team event venue.

Revision history for this message
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_column('events_teamevent', 'venue_id')
>
> 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

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
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'
1436Binary 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'
1438Binary 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 %}

Subscribers

People subscribed via source and target branches