diff --git a/src/players/migrations/0020_auto__del_playerattribute.py b/src/players/migrations/0020_auto__del_playerattribute.py index d58c9324df..6f7b456cf6 100644 --- a/src/players/migrations/0020_auto__del_playerattribute.py +++ b/src/players/migrations/0020_auto__del_playerattribute.py @@ -104,4 +104,4 @@ class Migration(SchemaMigration): } } - complete_apps = ['players'] \ No newline at end of file + complete_apps = ['players'] diff --git a/src/players/migrations/0021_add_playerdbtmp.py b/src/players/migrations/0021_add_playerdbtmp.py index 8a51877312..85e503b327 100644 --- a/src/players/migrations/0021_add_playerdbtmp.py +++ b/src/players/migrations/0021_add_playerdbtmp.py @@ -105,17 +105,9 @@ class Migration(SchemaMigration): 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) }, - u'players.playerattribute': { - 'Meta': {'object_name': 'PlayerAttribute'}, - 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['players.PlayerDB']"}), - 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, u'players.playerdb': { 'Meta': {'object_name': 'PlayerDB'}, + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), @@ -129,10 +121,11 @@ class Migration(SchemaMigration): u'players.playerdbtmp': { 'Meta': {'ordering': "['-db_date_created', 'id', 'db_typeclass_path', 'db_key']", 'object_name': 'PlayerDBtmp'}, 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), @@ -149,6 +142,14 @@ class Migration(SchemaMigration): 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) }, + u'typeclasses.attribute': { + 'Meta': {'object_name': 'Attribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, u'players.playernick': { 'Meta': {'unique_together': "(('db_nick', 'db_type', 'db_obj'),)", 'object_name': 'PlayerNick'}, 'db_nick': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), diff --git a/src/players/migrations/0022_copy_user_profile_to_tmp.py b/src/players/migrations/0022_copy_user_profile_to_tmp.py index 030e6d21e8..2ea41dc715 100644 --- a/src/players/migrations/0022_copy_user_profile_to_tmp.py +++ b/src/players/migrations/0022_copy_user_profile_to_tmp.py @@ -11,6 +11,7 @@ class Migration(DataMigration): # Note: Remember to use orm['appname.ModelName'] rather than "from appname.models..." if not db.dry_run: for profile in orm['players.PlayerDB'].objects.all(): + print "player orig:", profile.db_key, profile.db_cmdset_storage plyr = orm['players.PlayerDBtmp'].objects.get(id=profile.user_id) plyr.db_cmdset_storage = profile.db_cmdset_storage plyr.db_date_created = profile.db_date_created @@ -62,17 +63,9 @@ class Migration(DataMigration): 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) }, - u'players.playerattribute': { - 'Meta': {'object_name': 'PlayerAttribute'}, - 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['players.PlayerDB']"}), - 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, u'players.playerdb': { 'Meta': {'object_name': 'PlayerDB'}, + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), @@ -86,6 +79,8 @@ class Migration(DataMigration): u'players.playerdbtmp': { 'Meta': {'ordering': "['-db_date_created', 'id', 'db_typeclass_path', 'db_key']", 'object_name': 'PlayerDBtmp'}, 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), + 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), @@ -104,6 +99,14 @@ class Migration(DataMigration): 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) }, + u'typeclasses.attribute': { + 'Meta': {'object_name': 'Attribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, u'players.playernick': { 'Meta': {'unique_together': "(('db_nick', 'db_type', 'db_obj'),)", 'object_name': 'PlayerNick'}, 'db_nick': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), diff --git a/src/players/migrations/0023_delete_old_profile.py b/src/players/migrations/0023_delete_old_profile.py index dd1f7c2dd8..5f84edeaf6 100644 --- a/src/players/migrations/0023_delete_old_profile.py +++ b/src/players/migrations/0023_delete_old_profile.py @@ -50,17 +50,9 @@ class Migration(SchemaMigration): 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) }, - u'players.playerattribute': { - 'Meta': {'object_name': 'PlayerAttribute'}, - 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['players.PlayerDB']"}), - 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) - }, u'players.playerdb': { 'Meta': {'object_name': 'PlayerDB'}, + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), @@ -74,10 +66,11 @@ class Migration(SchemaMigration): u'players.playerdbtmp': { 'Meta': {'ordering': "['-db_date_created', 'id', 'db_typeclass_path', 'db_key']", 'object_name': 'PlayerDBtmp'}, 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), @@ -94,6 +87,14 @@ class Migration(SchemaMigration): 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) }, + u'typeclasses.attribute': { + 'Meta': {'object_name': 'Attribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, u'players.playernick': { 'Meta': {'unique_together': "(('db_nick', 'db_type', 'db_obj'),)", 'object_name': 'PlayerNick'}, 'db_nick': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), diff --git a/src/players/migrations/0024_rename_tmp_player_to_playerdb.py b/src/players/migrations/0024_rename_tmp_to_player.py similarity index 64% rename from src/players/migrations/0024_rename_tmp_player_to_playerdb.py rename to src/players/migrations/0024_rename_tmp_to_player.py index 1a942b8be1..85db97515e 100644 --- a/src/players/migrations/0024_rename_tmp_player_to_playerdb.py +++ b/src/players/migrations/0024_rename_tmp_to_player.py @@ -4,12 +4,11 @@ from south.db import db from south.v2 import SchemaMigration from django.db import models - class Migration(SchemaMigration): def forwards(self, orm): + db.rename_table('players_PlayerDBtmp', 'players_PlayerDB') - db.send_create_signal('players', ['PlayerDB']) def backwards(self, orm): raise RuntimeError("Cannot revert this migration.") @@ -35,42 +34,37 @@ class Migration(SchemaMigration): 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) }, - u'players.playerattribute': { - 'Meta': {'object_name': 'PlayerAttribute'}, + u'players.playerdb': { + 'Meta': {'object_name': 'PlayerDB'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), + 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['players.PlayerDB']"}), - 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + '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': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + '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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) }, -# u'players.playerdbtmp': { -# 'Meta': {'ordering': "['-db_date_created', 'id', 'db_typeclass_path', 'db_key']", 'object_name': 'PlayerDBtmp'}, -# 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), -# 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), -# 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), -# 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -# 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), -# 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), -# 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), -# 'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), -# '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': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), -# u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), -# 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), -# 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -# 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), -# '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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), -# 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) -# }, - u'players.playerdb': { - 'Meta': {'ordering': "['-db_date_created', 'id', 'db_typeclass_path', 'db_key']", 'object_name': 'PlayerDB'}, + u'players.playerdbtmp': { + 'Meta': {'object_name': 'PlayerDBtmp'}, 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'db_attributes': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['typeclasses.Attribute']", 'null': 'True', 'symmetrical': 'False'}), + 'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), @@ -95,6 +89,14 @@ class Migration(SchemaMigration): 'db_real': ('django.db.models.fields.TextField', [], {}), 'db_type': ('django.db.models.fields.CharField', [], {'default': "'inputline'", 'max_length': '16', 'null': 'True', 'blank': 'True'}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + u'typeclasses.attribute': { + 'Meta': {'object_name': 'Attribute'}, + 'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'db_value': ('src.utils.picklefield.PickledObjectField', [], {'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) } } diff --git a/src/players/models.py b/src/players/models.py index 42af97a888..ca10ebb574 100644 --- a/src/players/models.py +++ b/src/players/models.py @@ -129,10 +129,6 @@ class PlayerDB(TypedObject, AbstractUser): # inherited fields (from TypedObject): # db_key, db_typeclass_path, db_date_created, db_permissions - # this is the one-to-one link between the customized Player object and - # this profile model. It is required by django. - #user = models.ForeignKey(User, unique=True, db_index=True, - # help_text="The User object holds django-specific authentication for each Player. A unique User should be created and tied to each Player, the two should never be switched or changed around. The User will be deleted automatically when the Player is.") # store a connected flag here too, not just in sessionhandler. # This makes it easier to track from various out-of-process locations db_is_connected = models.BooleanField(default=False, verbose_name="is_connected", help_text="If player is connected to game or not") @@ -559,5 +555,3 @@ class PlayerDB(TypedObject, AbstractUser): pass return matches -class PlayerDBtmp(AbstractUser): - pass diff --git a/src/utils/idmapper/base.py b/src/utils/idmapper/base.py index 10510e195f..558d5f3d81 100755 --- a/src/utils/idmapper/base.py +++ b/src/utils/idmapper/base.py @@ -136,6 +136,8 @@ class SharedMemoryModelBase(ModelBase): # dynamically create the wrapper properties for all fields not already handled for field in cls._meta.fields: fieldname = field.name + if not fieldname.startswith("db_"): + continue wrappername = fieldname == "id" and "dbid" or fieldname.replace("db_", "") if not hasattr(cls, wrappername): # makes sure not to overload manually created wrappers on the model