diff --git a/src/c3nav/mapdata/migrations/0117_alter_dataoverlay_fill_color_and_more.py b/src/c3nav/mapdata/migrations/0117_alter_dataoverlay_fill_color_and_more.py new file mode 100644 index 00000000..91bc6a36 --- /dev/null +++ b/src/c3nav/mapdata/migrations/0117_alter_dataoverlay_fill_color_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.1.3 on 2024-12-16 10:23 + +from django.db import migrations, models + +def change_empty_to_null(apps, schema_editor): + DataOverlay = apps.get_model('mapdata', 'DataOverlay') + DataOverlay.objects.filter(fill_color='').update(fill_color=None) + DataOverlay.objects.filter(stroke_color='').update(stroke_color=None) + +class Migration(migrations.Migration): + + dependencies = [ + ('mapdata', '0116_waytype_avoid_by_default_alter_waytype_description'), + ] + + operations = [ + migrations.AlterField( + model_name='dataoverlay', + name='fill_color', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='default fill color'), + ), + migrations.AlterField( + model_name='dataoverlay', + name='stroke_color', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='default stroke color'), + ), + migrations.RunPython(change_empty_to_null, migrations.RunPython.noop), + ] diff --git a/src/c3nav/mapdata/models/overlay.py b/src/c3nav/mapdata/models/overlay.py index 864daafd..8c465e79 100644 --- a/src/c3nav/mapdata/models/overlay.py +++ b/src/c3nav/mapdata/models/overlay.py @@ -14,9 +14,9 @@ from c3nav.mapdata.utils.json import format_geojson class DataOverlay(TitledMixin, AccessRestrictionMixin, models.Model): description = models.TextField(blank=True, verbose_name=_('Description')) - stroke_color = models.TextField(blank=True, null=True, verbose_name=_('default stroke color')) + stroke_color = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('default stroke color')) stroke_width = models.FloatField(blank=True, null=True, verbose_name=_('default stroke width')) - fill_color = models.TextField(blank=True, null=True, verbose_name=_('default fill color')) + fill_color = models.CharField(max_length=255, blank=True, null=True, verbose_name=_('default fill color')) pull_url = models.URLField(blank=True, null=True, verbose_name=_('pull URL')) pull_headers: dict[str, str] = SchemaField(schema=dict[str, str], null=True, verbose_name=_('headers for pull http request (JSON object)')) diff --git a/src/c3nav/mapdata/schemas/models.py b/src/c3nav/mapdata/schemas/models.py index 8108b52b..295f59df 100644 --- a/src/c3nav/mapdata/schemas/models.py +++ b/src/c3nav/mapdata/schemas/models.py @@ -365,7 +365,10 @@ class DataOverlaySchema(TitledSchema, DjangoModelSchema): """ Represents a collection of geometries to be displayed as an optional overlay to the map. """ - pass + description: Optional[str] + stroke_color: Optional[str] + stroke_width: Optional[float] + fill_color: Optional[str] @@ -384,7 +387,6 @@ class DataOverlayFeatureSchema(TitledSchema, WithGeometrySchema, DjangoModelSche point_icon: Optional[str] external_url: Optional[str] extra_data: Optional[dict[str, str]] - # TODO class SourceSchema(WithAccessRestrictionSchema, DjangoModelSchema):