team-3/src/c3nav/mapdata/migrations/0111_dataoverlay_dataoverlayfeature.py
2024-11-21 11:56:31 +01:00

62 lines
4.4 KiB
Python

# Generated by Django 5.0.8 on 2024-11-21 10:43
import c3nav.mapdata.fields
import django.core.serializers.json
import django.db.models.deletion
import django_pydantic_field.compat.django
import django_pydantic_field.fields
import types
import typing
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0110_theme_icon_path_theme_leaflet_marker_config'),
]
operations = [
migrations.CreateModel(
name='DataOverlay',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', c3nav.mapdata.fields.I18nField(blank=True, fallback_any=True, fallback_value='{model} {pk}', plural_name='titles', verbose_name='Title')),
('description', models.TextField(blank=True, verbose_name='Description')),
('stroke_color', models.TextField(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')),
('pull_url', models.URLField(blank=True, null=True, verbose_name='pull URL')),
('pull_headers', django_pydantic_field.fields.PydanticSchemaField(config=None, encoder=django.core.serializers.json.DjangoJSONEncoder, null=True, schema=django_pydantic_field.compat.django.GenericContainer(typing.Union, (django_pydantic_field.compat.django.GenericContainer(dict, (str, str)), types.NoneType)), verbose_name='headers for pull http request (JSON object)')),
('pull_interval', models.DurationField(blank=True, null=True, verbose_name='pull interval')),
],
options={
'verbose_name': 'Data Overlay',
'verbose_name_plural': 'Data Overlays',
'default_related_name': 'data_overlays',
},
),
migrations.CreateModel(
name='DataOverlayFeature',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', c3nav.mapdata.fields.I18nField(blank=True, fallback_any=True, fallback_value='{model} {pk}', plural_name='titles', verbose_name='Title')),
('import_tag', models.CharField(blank=True, max_length=64, null=True, verbose_name='import tag')),
('geometry', c3nav.mapdata.fields.GeometryField(default=None, help_text=None)),
('external_url', models.URLField(blank=True, null=True, verbose_name='external URL')),
('stroke_color', models.CharField(blank=True, max_length=255, null=True, verbose_name='stroke color')),
('stroke_width', models.FloatField(blank=True, null=True, verbose_name='stroke width')),
('fill_color', models.CharField(blank=True, max_length=255, null=True, verbose_name='fill color')),
('show_label', models.BooleanField(default=False, verbose_name='show label')),
('show_geometry', models.BooleanField(default=True, verbose_name='show geometry')),
('interactive', models.BooleanField(default=True, help_text='disable to make this feature click-through', verbose_name='interactive')),
('point_icon', models.CharField(blank=True, help_text='use this material icon to display points, instead of drawing a small circle (only makes sense if the geometry is a point)', max_length=255, null=True, verbose_name='point icon')),
('extra_data', django_pydantic_field.fields.PydanticSchemaField(blank=True, config=None, default=None, encoder=django.core.serializers.json.DjangoJSONEncoder, null=True, schema=django_pydantic_field.compat.django.GenericContainer(typing.Union, (django_pydantic_field.compat.django.GenericContainer(dict, (str, str)), types.NoneType)), verbose_name='extra data (JSON object)')),
('level', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='data_overlay_features', to='mapdata.level', verbose_name='level')),
('overlay', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='features', to='mapdata.dataoverlay', verbose_name='Overlay')),
],
options={
'abstract': False,
},
),
]