add models for space-based route description

This commit is contained in:
Laura Klünder 2017-12-18 15:31:28 +01:00
parent c1fe2e02e0
commit 0bbcc400ca
2 changed files with 79 additions and 1 deletions

View file

@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.7 on 2017-12-18 14:30
from __future__ import unicode_literals
import c3nav.mapdata.fields
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0060_access_permission_id'),
]
operations = [
migrations.CreateModel(
name='CrossDecription',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', c3nav.mapdata.fields.I18nField(verbose_name='description')),
('origin_space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leave_cross_descriptions', to='mapdata.Space', verbose_name='origin space')),
('space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cross_descriptions', to='mapdata.Space', verbose_name='space')),
('target_space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cross_enter_descriptions', to='mapdata.Space', verbose_name='target space')),
],
options={
'verbose_name': 'Cross description',
'verbose_name_plural': 'Cross descriptions',
'default_related_name': 'cross_descriptions',
},
),
migrations.CreateModel(
name='LeaveDecription',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', c3nav.mapdata.fields.I18nField(verbose_name='description')),
('space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leave_descriptions', to='mapdata.Space', verbose_name='space')),
('target_space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enter_descriptions', to='mapdata.Space', verbose_name='target space')),
],
options={
'verbose_name': 'Leave description',
'verbose_name_plural': 'Leave descriptions',
'default_related_name': 'leave_descriptions',
},
),
]

View file

@ -9,7 +9,7 @@ from django.utils.text import format_lazy
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from shapely.geometry import CAP_STYLE, JOIN_STYLE, mapping from shapely.geometry import CAP_STYLE, JOIN_STYLE, mapping
from c3nav.mapdata.fields import GeometryField, JSONField, I18nField from c3nav.mapdata.fields import GeometryField, I18nField, JSONField
from c3nav.mapdata.models.geometry.base import GeometryMixin from c3nav.mapdata.models.geometry.base import GeometryMixin
from c3nav.mapdata.models.locations import SpecificLocation from c3nav.mapdata.models.locations import SpecificLocation
from c3nav.mapdata.utils.cache.changes import changed_geometries from c3nav.mapdata.utils.cache.changes import changed_geometries
@ -243,6 +243,38 @@ class AltitudeMarker(SpaceGeometryMixin, models.Model):
return '%s (%sm)' % (super().title, self.altitude) return '%s (%sm)' % (super().title, self.altitude)
class LeaveDecription(SpaceGeometryMixin, models.Model):
"""
A description for leaving a space to another space
"""
space = models.ForeignKey('mapdata.Space', on_delete=models.CASCADE, verbose_name=_('space'))
target_space = models.ForeignKey('mapdata.Space', on_delete=models.CASCADE, verbose_name=_('target space'),
related_name='enter_descriptions')
description = I18nField(_('description'))
class Meta:
verbose_name = _('Leave description')
verbose_name_plural = _('Leave descriptions')
default_related_name = 'leave_descriptions'
class CrossDecription(SpaceGeometryMixin, models.Model):
"""
A description for crossing a space from one space to another space
"""
space = models.ForeignKey('mapdata.Space', on_delete=models.CASCADE, verbose_name=_('space'))
origin_space = models.ForeignKey('mapdata.Space', on_delete=models.CASCADE, verbose_name=_('origin space'),
related_name='leave_cross_descriptions')
target_space = models.ForeignKey('mapdata.Space', on_delete=models.CASCADE, verbose_name=_('target space'),
related_name='cross_enter_descriptions')
description = I18nField(_('description'))
class Meta:
verbose_name = _('Cross description')
verbose_name_plural = _('Cross descriptions')
default_related_name = 'cross_descriptions'
class WifiMeasurement(SpaceGeometryMixin, models.Model): class WifiMeasurement(SpaceGeometryMixin, models.Model):
""" """
A Wi-Fi measurement A Wi-Fi measurement