Merge lp:~daker/loco-team-portal/fix.team.details into lp:loco-team-portal

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
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

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>

Subscribers

People subscribed via source and target branches