Merge lp:~daker/loco-team-portal/fix.team.details into lp:loco-team-portal
- fix.team.details
- Merge into 0.2
Proposed by
Adnane Belmadiaf
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Adnane Belmadiaf | ||||
Approved revision: | 611 | ||||
Merged at revision: | 611 | ||||
Proposed branch: | lp:~daker/loco-team-portal/fix.team.details | ||||
Merge into: | lp:loco-team-portal | ||||
Diff against target: |
516 lines (+410/-13) 7 files modified
loco_directory/events/forms.py (+1/-1) 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/models.py (+8/-0) loco_directory/events/views.py (+3/-1) loco_directory/templates/events/team_event_detail.inc.html (+21/-3) loco_directory/templates/events/team_event_detail_attendee.inc.html (+8/-8) |
||||
To merge this branch: | bzr merge lp:~daker/loco-team-portal/fix.team.details | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
LoCo Team Portal Developers | Pending | ||
Review via email: mp+148847@code.launchpad.net |
Commit message
Fixed guest field migrations
Added the ability to see who added event
Fixed some issues on the event details
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'loco_directory/events/forms.py' |
2 | --- loco_directory/events/forms.py 2012-12-28 21:03:08 +0000 |
3 | +++ loco_directory/events/forms.py 2013-02-16 00:34:21 +0000 |
4 | @@ -75,7 +75,7 @@ |
5 | """ |
6 | class Meta(BaseEventForm.Meta): |
7 | model = TeamEvent |
8 | - exclude = ('teams', 'date_created') |
9 | + exclude = ('teams', 'date_created', 'created_by') |
10 | |
11 | def __init__(self, teams=[], *args, **kargs): |
12 | super(TeamEventForm, self).__init__(*args, **kargs) |
13 | |
14 | === added file 'loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py' |
15 | --- loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py 1970-01-01 00:00:00 +0000 |
16 | +++ loco_directory/events/migrations/0010_auto__chg_field_attendee_guests.py 2013-02-16 00:34:21 +0000 |
17 | @@ -0,0 +1,184 @@ |
18 | +# encoding: utf-8 |
19 | +import datetime |
20 | +from south.db import db |
21 | +from south.v2 import SchemaMigration |
22 | +from django.db import models |
23 | + |
24 | +class Migration(SchemaMigration): |
25 | + |
26 | + def forwards(self, orm): |
27 | + |
28 | + # Changing field 'Attendee.guests' |
29 | + db.alter_column('events_attendee', 'guests', self.gf('events.fields.GuestsField')()) |
30 | + |
31 | + |
32 | + def backwards(self, orm): |
33 | + |
34 | + # Changing field 'Attendee.guests' |
35 | + db.alter_column('events_attendee', 'guests', self.gf('django.db.models.fields.PositiveSmallIntegerField')()) |
36 | + |
37 | + |
38 | + models = { |
39 | + 'auth.group': { |
40 | + 'Meta': {'object_name': 'Group'}, |
41 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
42 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
43 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
44 | + }, |
45 | + 'auth.permission': { |
46 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
47 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
48 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
49 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
50 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
51 | + }, |
52 | + 'auth.user': { |
53 | + 'Meta': {'object_name': 'User'}, |
54 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
55 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
56 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
57 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
58 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
59 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
60 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
61 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
62 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
63 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
64 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
65 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
66 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
67 | + }, |
68 | + 'contenttypes.contenttype': { |
69 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
70 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
71 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
72 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
73 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
74 | + }, |
75 | + 'events.attendee': { |
76 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
77 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
78 | + 'guests': ('events.fields.GuestsField', [], {}), |
79 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
80 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
81 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
82 | + }, |
83 | + 'events.baseevent': { |
84 | + 'Meta': {'object_name': 'BaseEvent'}, |
85 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
86 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
87 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 44, 56, 52296)', 'db_index': 'True'}), |
88 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
89 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
90 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
91 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
92 | + }, |
93 | + 'events.globalevent': { |
94 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
95 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
96 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
97 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
98 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
99 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
100 | + }, |
101 | + 'events.teamevent': { |
102 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
103 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
104 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
105 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
106 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
107 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
108 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}), |
109 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
110 | + }, |
111 | + 'events.teameventcomment': { |
112 | + 'Meta': {'object_name': 'TeamEventComment'}, |
113 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
114 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
115 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 44, 56, 54290)', 'db_index': 'True'}), |
116 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
117 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
118 | + }, |
119 | + 'teams.continent': { |
120 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
121 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
122 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
123 | + }, |
124 | + 'teams.country': { |
125 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
126 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
127 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
128 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
129 | + }, |
130 | + 'teams.language': { |
131 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
132 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
133 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
134 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
135 | + }, |
136 | + 'teams.team': { |
137 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
138 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
139 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
140 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
141 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
142 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
143 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
144 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
145 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
146 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
147 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
148 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
149 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
150 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
151 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
152 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
153 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
154 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
155 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
156 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
157 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
158 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
159 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
160 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
161 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
162 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
163 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
164 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
165 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
166 | + }, |
167 | + 'userprofiles.userprofile': { |
168 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
169 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
170 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
171 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
172 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
173 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
174 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
175 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
176 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
177 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
178 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
179 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
180 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
181 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
182 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
183 | + }, |
184 | + 'venues.venue': { |
185 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
186 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
187 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
188 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
189 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
190 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
191 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
192 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
193 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
194 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
195 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
196 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
197 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
198 | + } |
199 | + } |
200 | + |
201 | + complete_apps = ['events'] |
202 | |
203 | === added file 'loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py' |
204 | --- loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py 1970-01-01 00:00:00 +0000 |
205 | +++ loco_directory/events/migrations/0011_auto__add_field_teamevent_created_by.py 2013-02-16 00:34:21 +0000 |
206 | @@ -0,0 +1,185 @@ |
207 | +# encoding: utf-8 |
208 | +import datetime |
209 | +from south.db import db |
210 | +from south.v2 import SchemaMigration |
211 | +from django.db import models |
212 | + |
213 | +class Migration(SchemaMigration): |
214 | + |
215 | + def forwards(self, orm): |
216 | + |
217 | + # Adding field 'TeamEvent.created_by' |
218 | + 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) |
219 | + |
220 | + |
221 | + def backwards(self, orm): |
222 | + |
223 | + # Deleting field 'TeamEvent.created_by' |
224 | + db.delete_column('events_teamevent', 'created_by_id') |
225 | + |
226 | + |
227 | + models = { |
228 | + 'auth.group': { |
229 | + 'Meta': {'object_name': 'Group'}, |
230 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
231 | + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
232 | + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
233 | + }, |
234 | + 'auth.permission': { |
235 | + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
236 | + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
237 | + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
238 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
239 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
240 | + }, |
241 | + 'auth.user': { |
242 | + 'Meta': {'object_name': 'User'}, |
243 | + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
244 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
245 | + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
246 | + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
247 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
248 | + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
249 | + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
250 | + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
251 | + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
252 | + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
253 | + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
254 | + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
255 | + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
256 | + }, |
257 | + 'contenttypes.contenttype': { |
258 | + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
259 | + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
260 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
261 | + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
262 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
263 | + }, |
264 | + 'events.attendee': { |
265 | + 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)", 'object_name': 'Attendee'}, |
266 | + 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
267 | + 'guests': ('events.fields.GuestsField', [], {}), |
268 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
269 | + 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}), |
270 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
271 | + }, |
272 | + 'events.baseevent': { |
273 | + 'Meta': {'object_name': 'BaseEvent'}, |
274 | + 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
275 | + 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
276 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 47, 40, 592156)', 'db_index': 'True'}), |
277 | + 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), |
278 | + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
279 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
280 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}) |
281 | + }, |
282 | + 'events.globalevent': { |
283 | + 'Meta': {'object_name': 'GlobalEvent', '_ormbases': ['events.BaseEvent']}, |
284 | + 'activities': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
285 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
286 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
287 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
288 | + 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}) |
289 | + }, |
290 | + 'events.teamevent': { |
291 | + 'Meta': {'object_name': 'TeamEvent', '_ormbases': ['events.BaseEvent']}, |
292 | + 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}), |
293 | + 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
294 | + 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
295 | + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
296 | + 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}), |
297 | + 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
298 | + 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}), |
299 | + 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'}) |
300 | + }, |
301 | + 'events.teameventcomment': { |
302 | + 'Meta': {'object_name': 'TeamEventComment'}, |
303 | + 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}), |
304 | + 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}), |
305 | + 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 2, 15, 23, 47, 40, 594563)', 'db_index': 'True'}), |
306 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
307 | + 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"}) |
308 | + }, |
309 | + 'teams.continent': { |
310 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Continent'}, |
311 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
312 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'}) |
313 | + }, |
314 | + 'teams.country': { |
315 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Country'}, |
316 | + 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}), |
317 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
318 | + 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'}) |
319 | + }, |
320 | + 'teams.language': { |
321 | + 'Meta': {'ordering': "('name',)", 'object_name': 'Language'}, |
322 | + 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}), |
323 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
324 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'}) |
325 | + }, |
326 | + 'teams.team': { |
327 | + 'Meta': {'ordering': "('approved', 'name')", 'object_name': 'Team', 'db_table': "'teams'"}, |
328 | + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
329 | + 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'admins'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
330 | + 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
331 | + 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
332 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
333 | + 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'contacts'", 'symmetrical': 'False', 'to': "orm['userprofiles.UserProfile']"}), |
334 | + 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}), |
335 | + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
336 | + 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), |
337 | + 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
338 | + 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
339 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
340 | + 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}), |
341 | + 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}), |
342 | + 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}), |
343 | + 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
344 | + 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
345 | + 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
346 | + 'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '80'}), |
347 | + 'override_name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True', 'blank': 'True'}), |
348 | + 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}), |
349 | + 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
350 | + 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), |
351 | + 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
352 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
353 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
354 | + 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
355 | + 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
356 | + }, |
357 | + 'userprofiles.userprofile': { |
358 | + 'Meta': {'ordering': "('user__username',)", 'object_name': 'UserProfile'}, |
359 | + 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
360 | + 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
361 | + 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
362 | + 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
363 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
364 | + 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
365 | + 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
366 | + 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
367 | + 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
368 | + 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}), |
369 | + 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}), |
370 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
371 | + 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}), |
372 | + 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}) |
373 | + }, |
374 | + 'venues.venue': { |
375 | + 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))", 'object_name': 'Venue'}, |
376 | + 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
377 | + 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), |
378 | + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
379 | + 'continent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Continent']", 'null': 'True'}), |
380 | + 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}), |
381 | + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
382 | + 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
383 | + 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), |
384 | + 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}), |
385 | + 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), |
386 | + 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}), |
387 | + 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}) |
388 | + } |
389 | + } |
390 | + |
391 | + complete_apps = ['events'] |
392 | |
393 | === modified file 'loco_directory/events/models.py' |
394 | --- loco_directory/events/models.py 2012-12-26 22:41:16 +0000 |
395 | +++ loco_directory/events/models.py 2013-02-16 00:34:21 +0000 |
396 | @@ -1,5 +1,6 @@ |
397 | # -*- coding: utf-8 -*- |
398 | from django.db import models |
399 | +from django.contrib.auth.models import User |
400 | from django.template.defaultfilters import slugify |
401 | from django.utils.translation import ugettext_lazy as _ |
402 | |
403 | @@ -85,6 +86,7 @@ |
404 | """ |
405 | a event of one or more teams |
406 | """ |
407 | + created_by = models.ForeignKey(User, null=True, blank=True) |
408 | teams = models.ManyToManyField(Team, help_text=_('teams planning this event.'), verbose_name=_('Teams Participating'), db_index=True) |
409 | contact = models.ForeignKey(UserProfile, verbose_name=_('Event Contact'), null=True, help_text=_('Contact person for this event.')) |
410 | 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) |
411 | @@ -221,3 +223,9 @@ |
412 | |
413 | def __unicode__(self): |
414 | return self.attendee_profile.user.username |
415 | + |
416 | +try: |
417 | + from south.modelsinspector import add_introspection_rules |
418 | + add_introspection_rules([], ["^events\.fields\.GuestsField"]) |
419 | +except: |
420 | + pass |
421 | |
422 | === modified file 'loco_directory/events/views.py' |
423 | --- loco_directory/events/views.py 2013-02-14 00:25:23 +0000 |
424 | +++ loco_directory/events/views.py 2013-02-16 00:34:21 +0000 |
425 | @@ -228,7 +228,9 @@ |
426 | if request.method == 'POST': |
427 | form = TeamEventForm(data=request.POST, teams=[team_object]) |
428 | if form.is_valid(): |
429 | - team_event = form.save() |
430 | + team_event = form.save(commit=False) |
431 | + team_event.created_by = request.user |
432 | + team_event.save() |
433 | team_event.teams.add(team_object) |
434 | return HttpResponseRedirect(team_event.get_absolute_url()) |
435 | else: |
436 | |
437 | === modified file 'loco_directory/templates/events/team_event_detail.inc.html' |
438 | --- loco_directory/templates/events/team_event_detail.inc.html 2012-12-16 22:39:31 +0000 |
439 | +++ loco_directory/templates/events/team_event_detail.inc.html 2013-02-16 00:34:21 +0000 |
440 | @@ -3,7 +3,7 @@ |
441 | <section class="span-9"> |
442 | <div class="box_content"> |
443 | <div class="pagelet"> |
444 | - <h3>{{ team_event_object.name }}</h3> |
445 | + <h2>{{ team_event_object.name }}</h2> |
446 | {% if team_event_object.global_event %} |
447 | <div class="event-partofglobal-event"> |
448 | {% trans "This event is part of" %} |
449 | @@ -50,7 +50,7 @@ |
450 | </div> |
451 | |
452 | <div class="map"> |
453 | - <img class="map_img" src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=640x100&scale=1&maptype=roadmap&markers=color:orange%7Clabel:S%7C40.702147,-74.015794&sensor=false"> |
454 | + <img class="map_img" src="http://maps.googleapis.com/maps/api/staticmap?center={% if team_event_object.venue.address %}{{ team_event_object.venue.address }}{% else %}{{ team_event_object.venue.latitude }},{{ team_event_object.venue.longitude }}{% endif %}&zoom=13&size=640x100&scale=1&maptype=roadmap&markers=color:orange%7Clabel:S%7C{{ team_event_object.venue.latitude }},{{ team_event_object.venue.longitude }}&sensor=false"> |
455 | </div> |
456 | |
457 | {% if team_event_object.venue %} |
458 | @@ -66,7 +66,9 @@ |
459 | </div> |
460 | |
461 | <div class="event-venue-adress"> |
462 | - {% if team_event_object.venue.address %}{{ team_event_object.venue.address }}{% endif %}{% if team_event_object.venue.spr %}, {{ team_event_object.venue.spr }}{% endif %} |
463 | + {% if team_event_object.venue.address %}{{ team_event_object.venue.address }}{% endif %} |
464 | + {% if team_event_object.venue.address and team_event_object.venue.spr%} ,{% endif %} |
465 | + {% if team_event_object.venue.spr %}{{ team_event_object.venue.spr }}{% endif %} |
466 | </div> |
467 | </div> |
468 | {% endif %} |
469 | @@ -114,6 +116,22 @@ |
470 | <a class="submit-button rsvp-link" href="{% url team-event-register team_event_object.first_team.lp_name team_event_object.id %}">{% trans 'Register' %}</a> |
471 | {% endif %} |
472 | {% endif %} |
473 | + |
474 | + {% if team_event_object.created_by %} |
475 | + <h3 class="attendees-title">{% trans 'Created by' %}</h3> |
476 | + <ul class="attendees"> |
477 | + <li class="attendee-cell"> |
478 | + <div class="attendee-mugshot"> |
479 | + <a href="{% url profile-detail team_event_object.created_by.username %}"> |
480 | + <img src="{% if team_event_object.created_by.get_profile.mugshot %}{{ team_event_object.created_by.get_profile.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}" width="32px" height="32px" alt="{{ team_event_object.created_by.get_profile.realname }}"> |
481 | + </a> |
482 | + </div> |
483 | + <div class="attendee-infos"> |
484 | + <a href="{% url profile-detail team_event_object.created_by.username %}">{{ team_event_object.created_by.get_profile.realname }}</a> |
485 | + </div> |
486 | + </li> |
487 | + </ul> |
488 | + {% endif %} |
489 | {% include "events/team_event_detail_attendees.inc.html" %} |
490 | </div> |
491 | </section> |
492 | |
493 | === modified file 'loco_directory/templates/events/team_event_detail_attendee.inc.html' |
494 | --- loco_directory/templates/events/team_event_detail_attendee.inc.html 2012-09-08 21:45:10 +0000 |
495 | +++ loco_directory/templates/events/team_event_detail_attendee.inc.html 2013-02-16 00:34:21 +0000 |
496 | @@ -1,12 +1,12 @@ |
497 | {% load i18n %} |
498 | |
499 | <li class="attendee-cell"> |
500 | - <div class="attendee-mugshot"> |
501 | - <a href="https://launchpad.net/~{{ registration.attendee_profile.user.username }}" traget="_blank"> |
502 | - <img src="{% if registration.attendee_profile.mugshot %}{{ registration.attendee_profile.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}" width="32px" height="32px" alt="{{ registration.attendee_profile.realname }}" class="Zb Gtb"> |
503 | - </a> |
504 | - </div> |
505 | - <div class="attendee-infos"> |
506 | - <a href="https://launchpad.net/~{{ registration.attendee_profile.user.username}}" target="_blank">{{ registration.attendee_profile.realname }} {% if registration.guests %}(+{{registration.guests}}){% endif %}</a> |
507 | - </div> |
508 | + <div class="attendee-mugshot"> |
509 | + <a href="{% url profile-detail registration.attendee_profile.user.username %}"> |
510 | + <img src="{% if registration.attendee_profile.mugshot %}{{ registration.attendee_profile.mugshot }}{% else %}{{MEDIA_URL}}img/default-mugshot.png{% endif %}" width="32px" height="32px" alt="{{ registration.attendee_profile.realname }}"> |
511 | + </a> |
512 | + </div> |
513 | + <div class="attendee-infos"> |
514 | + <a href="{% url profile-detail registration.attendee_profile.user.username %}">{{ registration.attendee_profile.realname }} {% if registration.guests %}(+{{registration.guests}}){% endif %}</a> |
515 | + </div> |
516 | </li> |