Chris Johnston has proposed merging lp:~chrisjohnston/loco-directory/vevent
into lp:loco-directory.
Requested reviews:
loco-directory-dev (loco-directory-dev)
Related bugs:
Bug #673831 in loco-directory: "LD fails to support virtual events"
https://bugs.launchpad.net/loco-directory/+bug/673831
For more details, see:
https://code.launchpad.net/~chrisjohnston/loco-directory/vevent/+merge/61021
--
https://code.launchpad.net/~chrisjohnston/loco-directory/vevent/+merge/61021
Your team loco-directory-dev is requested to review the proposed merge of
lp:~chrisjohnston/loco-directory/vevent into lp:loco-directory.
=== modified file '.bzrignore'
--- .bzrignore 2010-08-28 19:27:47 +0000
+++ .bzrignore 2011-05-15 14:23:30 +0000
@@ -10,3 +10,9 @@
local_settings.py
loco_directory/ubuntu_website
data
+loco_directory/docs
+loco_directory/south
+loco_directory/.hg_archival.txt
+loco_directory/.hgignore
+loco_directory/.hgtags
+loco_directory/setup.py
=== added file 'loco_directory/events/migrations/0006_event_channel.py'
--- loco_directory/events/migrations/0006_event_channel.py 1970-01-01 00:00:00 +0000
+++ loco_directory/events/migrations/0006_event_channel.py 2011-05-15 14:23:30 +0000
@@ -0,0 +1,169 @@
+
+from south.db import db
+from django.db import models
+from events.models import *
+
+class Migration:
+
+ def forwards(self, orm):
+
+ # Adding field 'TeamEvent.channel'
+ db.add_column('events_teamevent', 'channel', orm['events.teamevent:channel'])
+
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'TeamEvent.channel'
+ db.delete_column('events_teamevent', 'channel')
+
+
+
+ models = {
+ 'auth.group': {
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'unique_together': "(('content_type', 'codename'),)"},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'events.attendee': {
+ 'Meta': {'unique_together': "(('team_event', 'attendee_profile'),)"},
+ 'attendee_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}),
+ 'guests': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'promise': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
+ 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"})
+ },
+ 'events.baseevent': {
+ 'announce': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'date_begin': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
+ 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 5, 14, 12, 33, 17, 45383)', 'db_index': 'True'}),
+ 'date_end': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'})
+ },
+ 'events.globalevent': {
+ 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}),
+ 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'pictag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'})
+ },
+ 'events.teamevent': {
+ 'baseevent_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['events.BaseEvent']", 'unique': 'True', 'primary_key': 'True'}),
+ 'channel': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}),
+ 'global_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.GlobalEvent']", 'null': 'True', 'blank': 'True'}),
+ 'registration': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'teams': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Team']", 'db_index': 'True', 'symmetrical': 'False'}),
+ 'venue': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['venues.Venue']", 'null': 'True', 'blank': 'True'})
+ },
+ 'events.teameventcomment': {
+ 'comment': ('django.db.models.fields.TextField', [], {'db_index': 'True'}),
+ 'commenter_profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['userprofiles.UserProfile']", 'null': 'True'}),
+ 'date_created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 5, 14, 12, 33, 17, 48101)', 'db_index': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'team_event': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['events.TeamEvent']"})
+ },
+ 'teams.continent': {
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'max_length': '50'})
+ },
+ 'teams.country': {
+ 'continents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Continent']", 'symmetrical': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'max_length': '100'})
+ },
+ 'teams.language': {
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True'})
+ },
+ 'teams.team': {
+ 'Meta': {'db_table': "'teams'"},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'admin_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['userprofiles.UserProfile']", 'symmetrical': 'False'}),
+ 'approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'approved_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'contact_profiles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['userprofiles.UserProfile']", 'symmetrical': 'False'}),
+ 'countries': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Country']", 'symmetrical': 'False'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'expires_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'flickr_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'forum_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'irc_chan': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}),
+ 'languages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['teams.Language']", 'symmetrical': 'False'}),
+ 'lp_name': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True'}),
+ 'microbloghashtag': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'ml_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'mugshot_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'null': 'True'}),
+ 'owner_profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owner'", 'null': 'True', 'to': "orm['userprofiles.UserProfile']"}),
+ 'picasa_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'pixie_id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'provides_support': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'wiki_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+ },
+ 'userprofiles.userprofile': {
+ 'aim': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'blog': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'facebook': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'flickr': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'identica': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'irc': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'mugshot': ('django.db.models.fields.URLField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}),
+ 'picasa': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'realname': ('django.db.models.fields.CharField', [], {'max_length': '150', 'blank': 'True'}),
+ 'twitter': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
+ 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}),
+ 'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'}),
+ 'xmpp': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'})
+ },
+ 'venues.venue': {
+ 'Meta': {'unique_together': "(('name', 'country', 'city'), ('longitude', 'latitude'))"},
+ 'address': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['teams.Country']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '150'}),
+ 'spr': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'tz': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '32'}),
+ 'venue_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['events']
=== modified file 'loco_directory/events/models.py'
--- loco_directory/events/models.py 2011-03-16 18:52:30 +0000
+++ loco_directory/events/models.py 2011-05-15 14:23:30 +0000
@@ -117,10 +117,11 @@
"""
teams = models.ManyToManyField(Team, help_text=_('teams of this event.'), verbose_name=_('Teams Participating'), db_index=True)
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)
- venue = models.ForeignKey(Venue, help_text=_('Venue of the Event'), verbose_name=_('Event Venue'), blank=True, null=True)
+ venue = models.ForeignKey(Venue, help_text=_('Venue for the Event'), verbose_name=_('Event Venue'), blank=True, null=True)
+ 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)
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)
template = 'events/team_event_li.inc.html'
-
+
def __unicode__(self):
return "%s %s %s" % (self.name, self.venue, self.date_begin or "")
=== modified file 'loco_directory/teams/models.py'
--- loco_directory/teams/models.py 2011-01-18 20:49:15 +0000
+++ loco_directory/teams/models.py 2011-05-15 14:23:30 +0000
@@ -80,7 +80,7 @@
irc_chan = models.CharField(_("IRC Channel"),
max_length=25, null=True, blank=True,
help_text=_("IRC Channel name that is hosted on "
- "the freenode IRC network. Ex. #ubuntu-chicago"))
+ "the freenode IRC network. Ex. #ubuntu-us-fl"))
provides_support = models.BooleanField(_("Provides local support"),
default=True)
approved = models.BooleanField(_("Approved Team"), default=False)
=== modified file 'loco_directory/templates/events/team_event_detail_basic.inc.html'
--- loco_directory/templates/events/team_event_detail_basic.inc.html 2011-01-20 14:36:48 +0000
+++ loco_directory/templates/events/team_event_detail_basic.inc.html 2011-05-15 14:23:30 +0000
@@ -21,6 +21,13 @@
</tr>
{% endif %}
+ {% if team_event_object.channel %}
+ <tr>
+ <th class="form-item-label" scope="row"><label>{% trans "IRC Channel:" %}</label></th>
+ <td class="form-item-value">{{ team_event_object.channel }}</td>
+ </tr>
+ {% endif %}
+
{% if team_event_object.teams.all %}
<tr>
<th class="form-item-label" scope="row"><label>{% trans "Organizing Team(s):" %}</label></th>
_______________________________________________
Mailing list: https://launchpad.net/~loco-directory-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~loco-directory-dev
More help : https://help.launchpad.net/ListHelp