From fb29533a60375aeb792d4718fc8ca14cc7c25034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sun, 29 Dec 2024 17:41:47 +0100 Subject: [PATCH] add Position.short_name --- .../migrations/0137_position_short_name.py | 31 +++++++++++++++++++ src/c3nav/mapdata/models/locations.py | 1 + src/c3nav/site/forms.py | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/c3nav/mapdata/migrations/0137_position_short_name.py diff --git a/src/c3nav/mapdata/migrations/0137_position_short_name.py b/src/c3nav/mapdata/migrations/0137_position_short_name.py new file mode 100644 index 00000000..faf062a7 --- /dev/null +++ b/src/c3nav/mapdata/migrations/0137_position_short_name.py @@ -0,0 +1,31 @@ +# Generated by Django 5.0.8 on 2024-12-29 16:38 + +from django.db import migrations, models + + +def generate_short_name(apps, schema_editor): + Position = apps.get_model('mapdata', 'position') + for position in Position.objects.all(): + position.short_name = position.name[:2] + position.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('mapdata', '0136_wifi_bssids_to_addresses_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='position', + name='short_name', + field=models.CharField(help_text='two characters maximum', max_length=2, null=True, verbose_name='abbreviation'), + ), + migrations.RunPython(generate_short_name, migrations.RunPython.noop), + migrations.AlterField( + model_name='position', + name='short_name', + field=models.CharField(help_text='two characters maximum', max_length=2, verbose_name='abbreviation'), + ), + ] diff --git a/src/c3nav/mapdata/models/locations.py b/src/c3nav/mapdata/models/locations.py index b2995223..8d8d79dd 100644 --- a/src/c3nav/mapdata/models/locations.py +++ b/src/c3nav/mapdata/models/locations.py @@ -587,6 +587,7 @@ class Position(CustomLocationProxyMixin, models.Model): owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) name = models.CharField(_('name'), max_length=32) + short_name = models.CharField(_('abbreviation'), help_text=_('two characters maximum'), max_length=2) secret = models.CharField(_('secret'), unique=True, max_length=32, default=get_position_secret) last_coordinates_update = models.DateTimeField(_('last coordinates update'), null=True) timeout = models.PositiveSmallIntegerField(_('timeout (in seconds)'), default=0, blank=True, diff --git a/src/c3nav/site/forms.py b/src/c3nav/site/forms.py index fc51eeb2..1f98071f 100644 --- a/src/c3nav/site/forms.py +++ b/src/c3nav/site/forms.py @@ -80,7 +80,7 @@ class ReportUpdateForm(ModelForm): class PositionForm(ModelForm): class Meta: model = Position - fields = ['name', 'timeout'] + fields = ['name' ,"short_name", 'timeout'] class PositionSetForm(Form):