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