rewrite loadmap implementation

This commit is contained in:
Laura Klünder 2016-09-24 14:09:52 +02:00
parent e074f70799
commit 995ccffc67
9 changed files with 190 additions and 182 deletions

View file

@ -1,6 +1,8 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from c3nav.mapdata.models import Package
class Level(models.Model):
"""
@ -9,20 +11,20 @@ class Level(models.Model):
name = models.SlugField(_('level name'), primary_key=True, max_length=50,
help_text=_('Usually just an integer (e.g. -1, 0, 1, 2)'))
altitude = models.DecimalField(_('level altitude'), null=True, max_digits=6, decimal_places=2)
package = models.ForeignKey('Package', on_delete=models.CASCADE, related_name='levels',
package = models.ForeignKey(Package, on_delete=models.CASCADE, related_name='levels',
verbose_name=_('map package'))
path_regex = r'^levels/'
@classmethod
def fromfile(cls, data, package, name):
def fromfile(cls, data):
if 'altitude' not in data:
raise ValueError('%s.json: missing altitude.' % name)
raise ValueError('missing altitude.')
if not isinstance(data['altitude'], (int, float)):
raise ValueError('%s.json: altitude has to be in or float.')
raise ValueError('altitude has to be int or float.')
return {
'name': name,
'package': package,
'altitude': data['altitude'],
}