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):
possible_fields = ['slug', 'name', 'title', 'title_plural',
'ordering', 'category', 'width', 'groups', 'color', 'priority',
possible_fields = ['slug', 'name', 'title', 'title_plural', 'join_edges', 'up_separate', 'walk',
'ordering', 'category', 'width', 'groups', 'color', 'priority', 'icon_name',
'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']
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]

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 decimal import Decimal
from django.core.validators import MinValueValidator
from django.db import models
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.base import TitledMixin
from c3nav.mapdata.models.base import SerializableMixin
from c3nav.mapdata.models.geometry.space import SpaceGeometryMixin
@ -25,11 +27,24 @@ class GraphNode(SpaceGeometryMixin, models.Model):
return result
class WayType(TitledMixin, models.Model):
class WayType(SerializableMixin, models.Model):
"""
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'))
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:
verbose_name = _('Way Type')