split feature model – beginnings (still missing: API, Forms, Editor)
This commit is contained in:
parent
55a7e20df1
commit
0036b27057
15 changed files with 238 additions and 156 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue