remove property "public", add AccessRestriction model

This commit is contained in:
Laura Klünder 2017-07-13 18:43:03 +02:00
parent 945b5a7e0e
commit 20924b9845
6 changed files with 140 additions and 10 deletions

View file

@ -4,3 +4,4 @@ from c3nav.mapdata.models.level import Level # noqa
from c3nav.mapdata.models.locations import Location, LocationSlug, LocationGroup, LocationGroupCategory # noqa
from c3nav.mapdata.models.source import Source # noqa
from c3nav.mapdata.models.update import MapUpdate # noqa
from c3nav.mapdata.models.access import AccessRestriction # noqa

View file

@ -0,0 +1,28 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
class AccessRestriction(TitledMixin, models.Model):
"""
An access restriction, currently without finetuning
"""
class Meta:
verbose_name = _('Access Restriction')
verbose_name_plural = _('Access Restrictions')
default_related_name = 'accessrestrictions'
class AccessRestrictionMixin(SerializableMixin, models.Model):
access_restriction = models.ForeignKey(AccessRestriction, null=True, blank=True,
verbose_name=_('Access Restriction'))
class Meta:
abstract = True
def _serialize(self, **kwargs):
result = super()._serialize(**kwargs)
result['access_restriction'] = self.access_restriction_id
return result

View file

@ -54,12 +54,6 @@ class Space(SpecificLocation, LevelGeometryMixin, models.Model):
verbose_name_plural = _('Spaces')
default_related_name = 'spaces'
def _serialize(self, space=True, **kwargs):
result = super()._serialize(**kwargs)
if space:
result['public'] = self.public
return result
class Door(LevelGeometryMixin, models.Model):
"""

View file

@ -4,6 +4,7 @@ from django.apps import apps
from django.db import models
from django.utils.translation import ugettext_lazy as _
from c3nav.mapdata.models.access import AccessRestrictionMixin
from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
from c3nav.mapdata.utils.models import get_submodels
@ -50,10 +51,9 @@ class LocationSlug(SerializableMixin, models.Model):
default_related_name = 'locationslugs'
class Location(LocationSlug, TitledMixin, models.Model):
class Location(LocationSlug, AccessRestrictionMixin, TitledMixin, models.Model):
can_search = models.BooleanField(default=True, verbose_name=_('can be searched'))
can_describe = models.BooleanField(default=True, verbose_name=_('can be used to describe a position'))
public = models.BooleanField(verbose_name=_('public'), default=True)
class Meta:
abstract = True
@ -75,7 +75,6 @@ class Location(LocationSlug, TitledMixin, models.Model):
result = super()._serialize(**kwargs)
result['can_search'] = self.can_search
result['can_describe'] = self.can_search
result['public'] = self.public
return result
def get_slug(self):

View file

@ -4,10 +4,11 @@ from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from c3nav.mapdata.models.access import AccessRestrictionMixin
from c3nav.mapdata.models.base import BoundsMixin
class Source(BoundsMixin, models.Model):
class Source(BoundsMixin, AccessRestrictionMixin, models.Model):
"""
A map source, images of levels that can be useful as backgrounds for the map editor
"""