add new fields to WayType

This commit is contained in:
Laura Klünder 2017-12-11 15:34:07 +01:00
parent 94a51f8159
commit 95fc1253bc
3 changed files with 95 additions and 6 deletions

View file

@ -135,10 +135,11 @@ class EditorFormBase(I18nModelFormMixin, ModelForm):
def create_editor_form(editor_model): def create_editor_form(editor_model):
possible_fields = ['slug', 'name', 'title', 'title_plural', possible_fields = ['slug', 'name', 'title', 'title_plural', 'join_edges', 'up_separate', 'walk',
'ordering', 'category', 'width', 'groups', 'color', 'priority', 'ordering', 'category', 'width', 'groups', 'color', 'priority', 'icon_name',
'base_altitude', 'waytype', 'access_restriction', 'height', 'default_height', 'door_height', 'base_altitude', 'waytype', 'access_restriction', 'height', 'default_height', 'door_height',
'outside', 'can_search', 'can_describe', 'geometry', 'single', 'altitude', 'short_label', 'outside', 'can_search', 'can_describe', 'geometry', 'single', 'altitude', 'short_label',
'extra_time', 'speed', 'description', 'speed_up', 'description_up',
'allow_levels', 'allow_spaces', 'allow_areas', 'allow_pois', 'left', 'top', 'right', 'bottom'] 'allow_levels', 'allow_spaces', 'allow_areas', 'allow_pois', 'left', 'top', 'right', 'bottom']
field_names = [field.name for field in editor_model._meta.get_fields() if not field.one_to_many] field_names = [field.name for field in editor_model._meta.get_fields() if not field.one_to_many]
existing_fields = [name for name in possible_fields if name in field_names] existing_fields = [name for name in possible_fields if name in field_names]

View file

@ -0,0 +1,73 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-12-11 14:23
from __future__ import unicode_literals
import c3nav.mapdata.fields
from decimal import Decimal
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('mapdata', '0056_accesspermissiontoken'),
]
operations = [
migrations.AddField(
model_name='waytype',
name='description',
field=c3nav.mapdata.fields.I18nField(fallback_any=True, verbose_name='description'),
),
migrations.AddField(
model_name='waytype',
name='description_up',
field=c3nav.mapdata.fields.I18nField(fallback_any=True, verbose_name='description upwards'),
),
migrations.AddField(
model_name='waytype',
name='extra_seconds',
field=models.PositiveSmallIntegerField(default=0, verbose_name='extra seconds per edge'),
),
migrations.AddField(
model_name='waytype',
name='icon_name',
field=models.CharField(blank=True, max_length=32, null=True, verbose_name='icon name'),
),
migrations.AddField(
model_name='waytype',
name='join_edges',
field=models.BooleanField(default=True, verbose_name='join consecutive edges'),
),
migrations.AddField(
model_name='waytype',
name='speed',
field=models.DecimalField(decimal_places=1, default=1, max_digits=3, validators=[django.core.validators.MinValueValidator(Decimal('0.1'))], verbose_name='speed (m/s)'),
),
migrations.AddField(
model_name='waytype',
name='speed_up',
field=models.DecimalField(decimal_places=1, default=1, max_digits=3, validators=[django.core.validators.MinValueValidator(Decimal('0.1'))], verbose_name='speed upwards (m/s)'),
),
migrations.AddField(
model_name='waytype',
name='title_plural',
field=c3nav.mapdata.fields.I18nField(fallback_any=True, plural_name='titles_plural', verbose_name='Title (Plural)'),
),
migrations.AddField(
model_name='waytype',
name='up_separate',
field=models.BooleanField(default=True, verbose_name='upwards separately'),
),
migrations.AddField(
model_name='waytype',
name='walk',
field=models.BooleanField(default=False, verbose_name='walking'),
),
migrations.AlterField(
model_name='waytype',
name='title',
field=c3nav.mapdata.fields.I18nField(fallback_any=True, plural_name='titles', verbose_name='Title'),
),
]

View file

@ -1,11 +1,13 @@
from collections import OrderedDict from collections import OrderedDict
from decimal import Decimal
from django.core.validators import MinValueValidator
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from c3nav.mapdata.fields import GeometryField from c3nav.mapdata.fields import GeometryField, I18nField
from c3nav.mapdata.models.access import AccessRestrictionMixin from c3nav.mapdata.models.access import AccessRestrictionMixin
from c3nav.mapdata.models.base import TitledMixin from c3nav.mapdata.models.base import SerializableMixin
from c3nav.mapdata.models.geometry.space import SpaceGeometryMixin from c3nav.mapdata.models.geometry.space import SpaceGeometryMixin
@ -25,11 +27,24 @@ class GraphNode(SpaceGeometryMixin, models.Model):
return result return result
class WayType(TitledMixin, models.Model): class WayType(SerializableMixin, models.Model):
""" """
A special way type A special way type
""" """
title = I18nField(_('Title'), plural_name='titles', fallback_any=True)
title_plural = I18nField(_('Title (Plural)'), plural_name='titles_plural', fallback_any=True)
join_edges = models.BooleanField(_('join consecutive edges'), default=True)
up_separate = models.BooleanField(_('upwards separately'), default=True)
walk = models.BooleanField(_('walking'), default=False)
color = models.CharField(max_length=32, verbose_name=_('edge color')) color = models.CharField(max_length=32, verbose_name=_('edge color'))
icon_name = models.CharField(_('icon name'), max_length=32, null=True, blank=True)
extra_seconds = models.PositiveSmallIntegerField(_('extra seconds per edge'), default=0)
speed = models.DecimalField(_('speed (m/s)'), max_digits=3, decimal_places=1, default=1,
validators=[MinValueValidator(Decimal('0.1'))])
description = I18nField(_('description'), fallback_any=True)
speed_up = models.DecimalField(_('speed upwards (m/s)'), max_digits=3, decimal_places=1, default=1,
validators=[MinValueValidator(Decimal('0.1'))])
description_up = I18nField(_('description upwards'), fallback_any=True)
class Meta: class Meta:
verbose_name = _('Way Type') verbose_name = _('Way Type')