From c60555b70a833c79290d747fbb7149323e85a432 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 6 Jun 2017 19:34:56 +0200 Subject: [PATCH] Add migrations to django 1.11. --- .../migrations/0011_auto_20170606_1731.py | 81 +++++++++++++++++++ evennia/comms/models.py | 22 ++--- .../migrations/0002_auto_20170606_1731.py | 20 +++++ evennia/help/models.py | 2 +- .../migrations/0006_auto_20170606_1731.py | 32 ++++++++ evennia/objects/models.py | 4 +- .../migrations/0006_auto_20170606_1731.py | 31 +++++++ .../migrations/0008_auto_20170606_1731.py | 25 ++++++ evennia/typeclasses/models.py | 4 +- 9 files changed, 206 insertions(+), 15 deletions(-) create mode 100644 evennia/comms/migrations/0011_auto_20170606_1731.py create mode 100644 evennia/help/migrations/0002_auto_20170606_1731.py create mode 100644 evennia/objects/migrations/0006_auto_20170606_1731.py create mode 100644 evennia/players/migrations/0006_auto_20170606_1731.py create mode 100644 evennia/scripts/migrations/0008_auto_20170606_1731.py diff --git a/evennia/comms/migrations/0011_auto_20170606_1731.py b/evennia/comms/migrations/0011_auto_20170606_1731.py new file mode 100644 index 000000000..6d99ae85b --- /dev/null +++ b/evennia/comms/migrations/0011_auto_20170606_1731.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.2 on 2017-06-06 17:31 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('comms', '0010_auto_20161206_1912'), + ] + + operations = [ + migrations.AlterField( + model_name='channeldb', + name='db_attributes', + field=models.ManyToManyField(help_text=b'attributes on this object. An attribute can hold any pickle-able python object (see docs for special cases).', to='typeclasses.Attribute'), + ), + migrations.AlterField( + model_name='channeldb', + name='db_object_subscriptions', + field=models.ManyToManyField(blank=True, db_index=True, related_name='object_subscription_set', to='objects.ObjectDB', verbose_name=b'subscriptions'), + ), + migrations.AlterField( + model_name='channeldb', + name='db_subscriptions', + field=models.ManyToManyField(blank=True, db_index=True, related_name='subscription_set', to=settings.AUTH_USER_MODEL, verbose_name=b'subscriptions'), + ), + migrations.AlterField( + model_name='channeldb', + name='db_tags', + field=models.ManyToManyField(help_text=b'tags on this object. Tags are simple string markers to identify, group and alias objects.', to='typeclasses.Tag'), + ), + migrations.AlterField( + model_name='msg', + name='db_hide_from_channels', + field=models.ManyToManyField(blank=True, related_name='hide_from_channels_set', to='comms.ChannelDB'), + ), + migrations.AlterField( + model_name='msg', + name='db_hide_from_objects', + field=models.ManyToManyField(blank=True, related_name='hide_from_objects_set', to='objects.ObjectDB'), + ), + migrations.AlterField( + model_name='msg', + name='db_hide_from_players', + field=models.ManyToManyField(blank=True, related_name='hide_from_players_set', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='msg', + name='db_receivers_channels', + field=models.ManyToManyField(blank=True, help_text=b'channel recievers', related_name='channel_set', to='comms.ChannelDB'), + ), + migrations.AlterField( + model_name='msg', + name='db_receivers_objects', + field=models.ManyToManyField(blank=True, help_text=b'object receivers', related_name='receiver_object_set', to='objects.ObjectDB'), + ), + migrations.AlterField( + model_name='msg', + name='db_receivers_players', + field=models.ManyToManyField(blank=True, help_text=b'player receivers', related_name='receiver_player_set', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='msg', + name='db_sender_objects', + field=models.ManyToManyField(blank=True, db_index=True, related_name='sender_object_set', to='objects.ObjectDB', verbose_name=b'sender(object)'), + ), + migrations.AlterField( + model_name='msg', + name='db_sender_players', + field=models.ManyToManyField(blank=True, db_index=True, related_name='sender_player_set', to=settings.AUTH_USER_MODEL, verbose_name=b'sender(player)'), + ), + migrations.AlterField( + model_name='msg', + name='db_tags', + field=models.ManyToManyField(blank=True, help_text=b'tags on this message. Tags are simple string markers to identify, group and alias messages.', to='typeclasses.Tag'), + ), + ] diff --git a/evennia/comms/models.py b/evennia/comms/models.py index c7b5e8d7b..5465e51c6 100644 --- a/evennia/comms/models.py +++ b/evennia/comms/models.py @@ -79,9 +79,9 @@ class Msg(SharedMemoryModel): # an IRC channel; normally there is only one, but if co-modification of # a message is allowed, there may be more than one "author" db_sender_players = models.ManyToManyField("players.PlayerDB", related_name='sender_player_set', - null=True, blank=True, verbose_name='sender(player)', db_index=True) + blank=True, verbose_name='sender(player)', db_index=True) db_sender_objects = models.ManyToManyField("objects.ObjectDB", related_name='sender_object_set', - null=True, blank=True, verbose_name='sender(object)', db_index=True) + blank=True, verbose_name='sender(object)', db_index=True) db_sender_external = models.CharField('external sender', max_length=255, null=True, blank=True, db_index=True, help_text="identifier for external sender, for example a sender over an " "IRC connection (i.e. someone who doesn't have an exixtence in-game).") @@ -89,11 +89,11 @@ class Msg(SharedMemoryModel): # comma-separated string of object dbrefs. Can be defined along # with channels below. db_receivers_players = models.ManyToManyField('players.PlayerDB', related_name='receiver_player_set', - null=True, blank=True, help_text="player receivers") + blank=True, help_text="player receivers") db_receivers_objects = models.ManyToManyField('objects.ObjectDB', related_name='receiver_object_set', - null=True, blank=True, help_text="object receivers") + blank=True, help_text="object receivers") db_receivers_channels = models.ManyToManyField("ChannelDB", related_name='channel_set', - null=True, blank=True, help_text="channel recievers") + blank=True, help_text="channel recievers") # header could be used for meta-info about the message if your system needs # it, or as a separate store for the mail subject line maybe. @@ -107,11 +107,11 @@ class Msg(SharedMemoryModel): help_text='access locks on this message.') # these can be used to filter/hide a given message from supplied objects/players/channels - db_hide_from_players = models.ManyToManyField("players.PlayerDB", related_name='hide_from_players_set', null=True, blank=True) - db_hide_from_objects = models.ManyToManyField("objects.ObjectDB", related_name='hide_from_objects_set', null=True, blank=True) - db_hide_from_channels = models.ManyToManyField("ChannelDB", related_name='hide_from_channels_set', null=True, blank=True) + db_hide_from_players = models.ManyToManyField("players.PlayerDB", related_name='hide_from_players_set', blank=True) + db_hide_from_objects = models.ManyToManyField("objects.ObjectDB", related_name='hide_from_objects_set', blank=True) + db_hide_from_channels = models.ManyToManyField("ChannelDB", related_name='hide_from_channels_set', blank=True) - db_tags = models.ManyToManyField(Tag, null=True, blank=True, + db_tags = models.ManyToManyField(Tag, blank=True, help_text='tags on this message. Tags are simple string markers to identify, group and alias messages.') # Database manager @@ -580,10 +580,10 @@ class ChannelDB(TypedObject): """ db_subscriptions = models.ManyToManyField("players.PlayerDB", - related_name="subscription_set", null=True, blank=True, verbose_name='subscriptions', db_index=True) + related_name="subscription_set", blank=True, verbose_name='subscriptions', db_index=True) db_object_subscriptions = models.ManyToManyField("objects.ObjectDB", - related_name="object_subscription_set", null=True, blank=True, verbose_name='subscriptions', db_index=True) + related_name="object_subscription_set", blank=True, verbose_name='subscriptions', db_index=True) # Database manager objects = managers.ChannelDBManager() diff --git a/evennia/help/migrations/0002_auto_20170606_1731.py b/evennia/help/migrations/0002_auto_20170606_1731.py new file mode 100644 index 000000000..65ab4a5ee --- /dev/null +++ b/evennia/help/migrations/0002_auto_20170606_1731.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.2 on 2017-06-06 17:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('help', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='helpentry', + name='db_tags', + field=models.ManyToManyField(blank=True, help_text=b'tags on this object. Tags are simple string markers to identify, group and alias objects.', to='typeclasses.Tag'), + ), + ] diff --git a/evennia/help/models.py b/evennia/help/models.py index 48c16ed8b..2433963b8 100644 --- a/evennia/help/models.py +++ b/evennia/help/models.py @@ -58,7 +58,7 @@ class HelpEntry(SharedMemoryModel): # lock string storage db_lock_storage = models.TextField('locks', blank=True, help_text='normally view:all().') # tags are primarily used for permissions - db_tags = models.ManyToManyField(Tag, null=True, + db_tags = models.ManyToManyField(Tag, blank=True, help_text='tags on this object. Tags are simple string markers to identify, group and alias objects.') # (deprecated, only here to allow MUX helpfile load (don't use otherwise)). # TODO: remove this when not needed anymore. diff --git a/evennia/objects/migrations/0006_auto_20170606_1731.py b/evennia/objects/migrations/0006_auto_20170606_1731.py new file mode 100644 index 000000000..74d48b29b --- /dev/null +++ b/evennia/objects/migrations/0006_auto_20170606_1731.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.2 on 2017-06-06 17:31 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models +import re + + +class Migration(migrations.Migration): + + dependencies = [ + ('objects', '0005_auto_20150403_2339'), + ] + + operations = [ + migrations.AlterField( + model_name='objectdb', + name='db_attributes', + field=models.ManyToManyField(help_text=b'attributes on this object. An attribute can hold any pickle-able python object (see docs for special cases).', to='typeclasses.Attribute'), + ), + migrations.AlterField( + model_name='objectdb', + name='db_sessid', + field=models.CharField(help_text=b'csv list of session ids of connected Player, if any.', max_length=32, null=True, validators=[django.core.validators.RegexValidator(re.compile('^\\d+(?:\\,\\d+)*\\Z'), code='invalid', message='Enter only digits separated by commas.')], verbose_name=b'session id'), + ), + migrations.AlterField( + model_name='objectdb', + name='db_tags', + field=models.ManyToManyField(help_text=b'tags on this object. Tags are simple string markers to identify, group and alias objects.', to='typeclasses.Tag'), + ), + ] diff --git a/evennia/objects/models.py b/evennia/objects/models.py index 009bae0b9..b3b00ce55 100644 --- a/evennia/objects/models.py +++ b/evennia/objects/models.py @@ -18,6 +18,7 @@ from builtins import object from django.conf import settings from django.db import models from django.core.exceptions import ObjectDoesNotExist +from django.core.validators import validate_comma_separated_integer_list from evennia.typeclasses.models import TypedObject from evennia.objects.manager import ObjectDBManager @@ -172,7 +173,8 @@ class ObjectDB(TypedObject): db_player = models.ForeignKey("players.PlayerDB", null=True, verbose_name='player', on_delete=models.SET_NULL, help_text='a Player connected to this object, if any.') # the session id associated with this player, if any - db_sessid = models.CommaSeparatedIntegerField(null=True, max_length=32, verbose_name="session id", + db_sessid = models.CharField(null=True, max_length=32, validators=[validate_comma_separated_integer_list], + verbose_name="session id", help_text="csv list of session ids of connected Player, if any.") # The location in the game world. Since this one is likely # to change often, we set this with the 'location' property diff --git a/evennia/players/migrations/0006_auto_20170606_1731.py b/evennia/players/migrations/0006_auto_20170606_1731.py new file mode 100644 index 000000000..bff35ca15 --- /dev/null +++ b/evennia/players/migrations/0006_auto_20170606_1731.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.2 on 2017-06-06 17:31 +from __future__ import unicode_literals + +import django.contrib.auth.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('players', '0005_auto_20160905_0902'), + ] + + operations = [ + migrations.AlterField( + model_name='playerdb', + name='db_attributes', + field=models.ManyToManyField(help_text=b'attributes on this object. An attribute can hold any pickle-able python object (see docs for special cases).', to='typeclasses.Attribute'), + ), + migrations.AlterField( + model_name='playerdb', + name='db_tags', + field=models.ManyToManyField(help_text=b'tags on this object. Tags are simple string markers to identify, group and alias objects.', to='typeclasses.Tag'), + ), + migrations.AlterField( + model_name='playerdb', + name='username', + field=models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.ASCIIUsernameValidator()], verbose_name='username'), + ), + ] diff --git a/evennia/scripts/migrations/0008_auto_20170606_1731.py b/evennia/scripts/migrations/0008_auto_20170606_1731.py new file mode 100644 index 000000000..b4a7f3201 --- /dev/null +++ b/evennia/scripts/migrations/0008_auto_20170606_1731.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.2 on 2017-06-06 17:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scripts', '0007_auto_20150403_2339'), + ] + + operations = [ + migrations.AlterField( + model_name='scriptdb', + name='db_attributes', + field=models.ManyToManyField(help_text=b'attributes on this object. An attribute can hold any pickle-able python object (see docs for special cases).', to='typeclasses.Attribute'), + ), + migrations.AlterField( + model_name='scriptdb', + name='db_tags', + field=models.ManyToManyField(help_text=b'tags on this object. Tags are simple string markers to identify, group and alias objects.', to='typeclasses.Tag'), + ), + ] diff --git a/evennia/typeclasses/models.py b/evennia/typeclasses/models.py index 4fbbe891d..c163a95e4 100644 --- a/evennia/typeclasses/models.py +++ b/evennia/typeclasses/models.py @@ -172,9 +172,9 @@ class TypedObject(SharedMemoryModel): db_lock_storage = models.TextField('locks', blank=True, help_text="locks limit access to an entity. A lock is defined as a 'lock string' on the form 'type:lockfunctions', defining what functionality is locked and how to determine access. Not defining a lock means no access is granted.") # many2many relationships - db_attributes = models.ManyToManyField(Attribute, null=True, + db_attributes = models.ManyToManyField(Attribute, help_text='attributes on this object. An attribute can hold any pickle-able python object (see docs for special cases).') - db_tags = models.ManyToManyField(Tag, null=True, + db_tags = models.ManyToManyField(Tag, help_text='tags on this object. Tags are simple string markers to identify, group and alias objects.') # Database manager