split feature model – beginnings (still missing: API, Forms, Editor)

This commit is contained in:
Laura Klünder 2016-10-12 15:25:00 +02:00
parent 55a7e20df1
commit 0036b27057
15 changed files with 238 additions and 156 deletions

View file

@ -1,8 +1,10 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from c3nav.mapdata.models.base import MapdataModel
class Level(models.Model):
class Level(MapdataModel):
"""
A map level (-1, 0, 1, 2)
"""
@ -12,24 +14,29 @@ class Level(models.Model):
package = models.ForeignKey('mapdata.Package', on_delete=models.CASCADE, related_name='levels',
verbose_name=_('map package'))
path_regex = r'^levels/'
class Meta:
verbose_name = _('Level')
verbose_name_plural = _('Levels')
default_related_name = 'levels'
def tofilename(self):
return 'levels/%s.json' % self.name
@classmethod
def fromfile(cls, data, file_path):
kwargs = super().fromfile(data, file_path)
if 'altitude' not in data:
raise ValueError('missing altitude.')
if not isinstance(data['altitude'], (int, float)):
raise ValueError('altitude has to be int or float.')
return {
'altitude': data['altitude'],
}
kwargs['altitude'] = data['altitude']
return kwargs
def tofile(self):
return {
'altitude': float(self.altitude)
}
result = super().tofile()
result['altitude'] = float(self.altitude)
return result