commit missing migrations
This commit is contained in:
parent
ef83e73a36
commit
764ed575c9
1 changed files with 92 additions and 0 deletions
92
src/c3nav/mapdata/migrations/0089_groundaltitude.py
Normal file
92
src/c3nav/mapdata/migrations/0089_groundaltitude.py
Normal file
|
@ -0,0 +1,92 @@
|
|||
# Generated by Django 4.2.7 on 2023-12-11 13:11
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
def forwards_func(apps, schema_editor):
|
||||
GroundAltitude = apps.get_model('mapdata', 'GroundAltitude')
|
||||
AltitudeMarker = apps.get_model('mapdata', 'AltitudeMarker')
|
||||
grouped = {}
|
||||
for marker in AltitudeMarker.objects.select_related('space'):
|
||||
grouped.setdefault(marker.id, []).append(marker)
|
||||
for altitude, markers in grouped.items():
|
||||
altitude = GroundAltitude.objects.create(
|
||||
altitude=altitude,
|
||||
name="(converted "+",".join(str(marker.id) for marker in markers)+") "+",".join(
|
||||
str(space.title)
|
||||
for space in set(m.space for m in markers)
|
||||
if space.title
|
||||
),
|
||||
)
|
||||
altitude.altitudemarkers.set(markers)
|
||||
|
||||
|
||||
def backwards_func(apps, schema_editor):
|
||||
AltitudeMarker = apps.get_model('mapdata', 'AltitudeMarker')
|
||||
for marker in AltitudeMarker.objects.select_related('groundaltitude'):
|
||||
marker.altitude = marker.groundaltitude.altitude
|
||||
marker.save()
|
||||
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("mapdata", "0088_remove_position_api_secret"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="GroundAltitude",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"name",
|
||||
models.CharField(max_length=70, unique=True, verbose_name="Name"),
|
||||
),
|
||||
(
|
||||
"altitude",
|
||||
models.DecimalField(
|
||||
decimal_places=2, max_digits=6, verbose_name="altitude"
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "Ground Altitude",
|
||||
"verbose_name_plural": "Ground altitudes",
|
||||
"default_related_name": "groundaltitudes",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="altitudemarker",
|
||||
name="groundaltitude",
|
||||
field=models.ForeignKey(
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="mapdata.groundaltitude",
|
||||
verbose_name="altitude",
|
||||
),
|
||||
),
|
||||
migrations.RunPython(forwards_func, backwards_func),
|
||||
migrations.RemoveField(
|
||||
model_name="altitudemarker",
|
||||
name="altitude",
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="altitudemarker",
|
||||
name="groundaltitude",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="mapdata.groundaltitude",
|
||||
verbose_name="altitude",
|
||||
),
|
||||
),
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue