add new fields to WayType
This commit is contained in:
parent
94a51f8159
commit
95fc1253bc
3 changed files with 95 additions and 6 deletions
|
@ -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]
|
||||
|
|
73
src/c3nav/mapdata/migrations/0057_waytype_fields.py
Normal file
73
src/c3nav/mapdata/migrations/0057_waytype_fields.py
Normal 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'),
|
||||
),
|
||||
]
|
|
@ -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')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue