only show grid squares if there is a grid

This commit is contained in:
Laura Klünder 2018-12-10 19:35:59 +01:00
parent fc0f35eb25
commit 8824026ce0
2 changed files with 14 additions and 7 deletions

View file

@ -7,6 +7,8 @@ from django.conf import settings
class AbstractGrid(ABC): class AbstractGrid(ABC):
enabled = False
@abstractmethod @abstractmethod
def get_cell_for_point(self, x, y) -> Optional[str]: def get_cell_for_point(self, x, y) -> Optional[str]:
pass pass
@ -17,6 +19,8 @@ class AbstractGrid(ABC):
class Grid(AbstractGrid): class Grid(AbstractGrid):
enabled = True
def __init__(self, rows, cols): def __init__(self, rows, cols):
rows = tuple(float(y) for y in rows) rows = tuple(float(y) for y in rows)
cols = tuple(float(x) for x in cols) cols = tuple(float(x) for x in cols)

View file

@ -11,6 +11,7 @@ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy from django.utils.translation import ungettext_lazy
from c3nav.mapdata.fields import I18nField from c3nav.mapdata.fields import I18nField
from c3nav.mapdata.grid import grid
from c3nav.mapdata.models.access import AccessRestrictionMixin from c3nav.mapdata.models.access import AccessRestrictionMixin
from c3nav.mapdata.models.base import SerializableMixin, TitledMixin from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
from c3nav.mapdata.utils.models import get_submodels from c3nav.mapdata.utils.models import get_submodels
@ -137,9 +138,10 @@ class SpecificLocation(Location, models.Model):
def _serialize(self, detailed=True, **kwargs): def _serialize(self, detailed=True, **kwargs):
result = super()._serialize(detailed=detailed, **kwargs) result = super()._serialize(detailed=detailed, **kwargs)
grid_cell = self.grid_cell if grid.enabled:
if grid_cell is not None: grid_cell = self.grid_cell
result['cell'] = grid_cell or None if grid_cell is not None:
result['cell'] = grid_cell or None
if detailed: if detailed:
groups = {} groups = {}
for group in self.groups.all(): for group in self.groups.all():
@ -157,10 +159,11 @@ class SpecificLocation(Location, models.Model):
for group in self.groups.all(): for group in self.groups.all():
groupcategories.setdefault(group.category, []).append(group) groupcategories.setdefault(group.category, []).append(group)
grid_cell = self.grid_cell if grid.enabled:
if grid_cell is not None: grid_cell = self.grid_cell
grid_square_title = (_('Grid Squares') if grid_cell and '-' in grid_cell else _('Grid Square')) if grid_cell is not None:
result['display'].insert(3, (grid_square_title, grid_cell or None)) grid_square_title = (_('Grid Squares') if grid_cell and '-' in grid_cell else _('Grid Square'))
result['display'].insert(3, (grid_square_title, grid_cell or None))
for category, groups in sorted(groupcategories.items(), key=lambda item: item[0].priority): for category, groups in sorted(groupcategories.items(), key=lambda item: item[0].priority):
result['display'].insert(3, ( result['display'].insert(3, (