diff --git a/ircbot/modules/Races.py b/ircbot/modules/Races.py index 7f53b26..7519b4c 100644 --- a/ircbot/modules/Races.py +++ b/ircbot/modules/Races.py @@ -143,7 +143,7 @@ class Races(Module): racer.save() # create an event for this too - RaceUpdate.objects.create(racer=racer, update="Started the race.") + RaceUpdate.objects.create(race=race, racer=racer, update="Started the race.") return self.irc.reply(event, "you have started {0:s}.".format(race.name)) except Racer.DoesNotExist: @@ -172,7 +172,7 @@ class Races(Module): racer.save() # create an event for this too - RaceUpdate.objects.create(racer=racer, update="Finished the race.") + RaceUpdate.objects.create(race=race, racer=racer, update="Finished the race.") return self.irc.reply(event, "you have finished {0:s}.".format(race.name)) except Racer.DoesNotExist: @@ -198,7 +198,7 @@ class Races(Module): "".format(race.name)) # create an event - RaceUpdate.objects.create(racer=racer, update=update) + RaceUpdate.objects.create(race=race, racer=racer, update=update) return self.irc.reply(event, "update logged.") except Racer.DoesNotExist: diff --git a/races/migrations/0002_raceupdate_fk_to_race.py b/races/migrations/0002_raceupdate_fk_to_race.py new file mode 100644 index 0000000..0d7437d --- /dev/null +++ b/races/migrations/0002_raceupdate_fk_to_race.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'RaceUpdate.race' + db.add_column(u'races_raceupdate', 'race', + self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['races.Race']), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'RaceUpdate.race' + db.delete_column(u'races_raceupdate', 'race_id') + + + models = { + u'races.race': { + 'Meta': {'object_name': 'Race'}, + 'description': ('django.db.models.fields.TextField', [], {}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '16', 'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + u'races.racer': { + 'Meta': {'unique_together': "(('nick', 'race'),)", 'object_name': 'Racer'}, + 'finished': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'joined': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'nick': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'race': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['races.Race']"}), + 'started': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'races.raceupdate': { + 'Meta': {'object_name': 'RaceUpdate'}, + 'event_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'race': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['races.Race']"}), + 'racer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['races.Racer']"}), + 'update': ('django.db.models.fields.TextField', [], {}) + } + } + + complete_apps = ['races'] \ No newline at end of file diff --git a/races/migrations/0003_associate_raceupdates_with_racer_races.py b/races/migrations/0003_associate_raceupdates_with_racer_races.py new file mode 100644 index 0000000..b986792 --- /dev/null +++ b/races/migrations/0003_associate_raceupdates_with_racer_races.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import DataMigration +from django.db import models + +class Migration(DataMigration): + + def forwards(self, orm): + "Write your forwards methods here." + # Note: Don't use "from appname.models import ModelName". + # Use orm.ModelName to refer to models in this application, + # and orm['appname.ModelName'] for models in other applications. + for update in orm.RaceUpdate.objects.all(): + update.race = update.racer.race + update.save() + + def backwards(self, orm): + "Write your backwards methods here." + + models = { + u'races.race': { + 'Meta': {'object_name': 'Race'}, + 'description': ('django.db.models.fields.TextField', [], {}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '16', 'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + u'races.racer': { + 'Meta': {'unique_together': "(('nick', 'race'),)", 'object_name': 'Racer'}, + 'finished': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'joined': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'nick': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'race': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['races.Race']"}), + 'started': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'races.raceupdate': { + 'Meta': {'object_name': 'RaceUpdate'}, + 'event_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'race': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['races.Race']"}), + 'racer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['races.Racer']"}), + 'update': ('django.db.models.fields.TextField', [], {}) + } + } + + complete_apps = ['races'] + symmetrical = True diff --git a/races/models.py b/races/models.py index 913f3c8..b943993 100644 --- a/races/models.py +++ b/races/models.py @@ -40,6 +40,7 @@ class RaceUpdate(models.Model): """Periodic updates for a racer.""" + race = models.ForeignKey(Race) racer = models.ForeignKey(Racer) update = models.TextField() event_time = models.DateTimeField(default=timezone.now) @@ -48,7 +49,7 @@ class RaceUpdate(models.Model): """Text representation of a race update.""" local_time = timezone.localtime(self.event_time) - return u"{0:s} in {1:s} @ {2:s}".format(self.racer.nick, self.racer.race.name, + return u"{0:s} in {1:s} @ {2:s}".format(self.racer.nick, self.race.name, local_time.strftime('%Y-%m-%d %H:%M:%S %Z')) # vi:tabstop=4:expandtab:autoindent