From ab65e990a2faf3f4c70dc14218b2e3b29a780b5a Mon Sep 17 00:00:00 2001 From: Serge Travin Date: Sat, 30 Jul 2011 14:59:12 +0400 Subject: [PATCH] [R] Switch Game model to uuid pk. --- ...__del_field_game_uid__chg_field_game_id.py | 51 +++++++++++++++++++ setwithme/apps/game/models.py | 2 +- setwithme/apps/game/views.py | 10 ++-- 3 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 setwithme/apps/game/migrations/0008_auto__del_field_game_uid__chg_field_game_id.py diff --git a/setwithme/apps/game/migrations/0008_auto__del_field_game_uid__chg_field_game_id.py b/setwithme/apps/game/migrations/0008_auto__del_field_game_uid__chg_field_game_id.py new file mode 100644 index 0000000..f595b90 --- /dev/null +++ b/setwithme/apps/game/migrations/0008_auto__del_field_game_uid__chg_field_game_id.py @@ -0,0 +1,51 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Deleting field 'Game.uid' + db.delete_column('game_game', 'uid') + + # Changing field 'Game.id' + db.alter_column('game_game', 'id', self.gf('django.db.models.fields.CharField')(max_length=36, primary_key=True)) + + + def backwards(self, orm): + + # User chose to not deal with backwards NULL issues for 'Game.uid' + raise RuntimeError("Cannot reverse this migration. 'Game.uid' and its values cannot be restored.") + + # Changing field 'Game.id' + db.alter_column('game_game', 'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)) + + + models = { + 'game.game': { + 'Meta': {'object_name': 'Game'}, + 'desk_cards': ('django.db.models.fields.CommaSeparatedIntegerField', [], {'default': "''", 'max_length': '250'}), + 'end': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True'}), + 'finished': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.CharField', [], {'max_length': '36', 'primary_key': 'True'}), + 'remaining_cards': ('django.db.models.fields.CommaSeparatedIntegerField', [], {'max_length': '250'}), + 'start': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}) + }, + 'game.gamesession': { + 'Meta': {'object_name': 'GameSession'}, + 'client_state': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'failures': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'game': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['game.Game']", 'null': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_access': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'set_pressed_dt': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'sets_found': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'state': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'user': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + } + } + + complete_apps = ['game'] diff --git a/setwithme/apps/game/models.py b/setwithme/apps/game/models.py index 2dfdb1e..2af0ce9 100644 --- a/setwithme/apps/game/models.py +++ b/setwithme/apps/game/models.py @@ -18,7 +18,7 @@ class Game(models.Model): - uid = models.CharField(max_length=36, unique=True) + id = models.CharField(max_length=36, primary_key=True) finished = models.BooleanField(default=False) start = models.DateTimeField(default=datetime.datetime.now) end = models.DateTimeField(null=True, default=None) diff --git a/setwithme/apps/game/views.py b/setwithme/apps/game/views.py index 746f580..fa6129b 100644 --- a/setwithme/apps/game/views.py +++ b/setwithme/apps/game/views.py @@ -20,7 +20,7 @@ def start_game(request): if qs.count(): gs = qs.all()[0] return {'status': 302, - 'url': reverse(game_screen, kwargs={'game_id': gs.game.uid})} + 'url': reverse(game_screen, kwargs={'game_id': gs.game.id})} wu = WaitingUser.objects.get_or_create(user=user_id)[0].update() last_poll_guard = datetime.datetime.now() - WAITING_USER_TIMEOUT opponents = WaitingUser.objects.\ @@ -29,7 +29,7 @@ def start_game(request): if opponents: opponent = opponents[0] game_id = get_uid() - game = Game.objects.create(uid=game_id) + game = Game.objects.create(id=game_id) GameSession.objects.create(game=game, user=user_id) GameSession.objects.create(game=game, user=opponent.user) wu.delete() @@ -41,7 +41,7 @@ def start_game(request): @ajax_request def get_status(request, game_id): - game = Game.objects.get(uid=game_id) + game = Game.objects.get(id=game_id) self_id = request.session.session_key GameSession.objects.get(game=game, user=self_id).update() users = [gs.serialize(self_id) for gs in \ @@ -56,7 +56,7 @@ def get_status(request, game_id): @ajax_request def put_set_mark(request, game_id): - game = Game.objects.get(uid=game_id) + game = Game.objects.get(id=game_id) self_id = request.session.session_key if not game.gamesession_set.filter(state=State.SET_PRESSED).count(): gs = game.gamesession_set.get(user=self_id) @@ -66,7 +66,7 @@ def put_set_mark(request, game_id): @ajax_request def check_set(request, game_id): - game = Game.objects.get(uid=game_id) + game = Game.objects.get(id=game_id) self_id = request.session.session_key gs = game.gamesession_set.get(user=self_id) if gs.set_in_time():