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):
enabled = False
@abstractmethod
def get_cell_for_point(self, x, y) -> Optional[str]:
pass
@ -17,6 +19,8 @@ class AbstractGrid(ABC):
class Grid(AbstractGrid):
enabled = True
def __init__(self, rows, cols):
rows = tuple(float(y) for y in rows)
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 c3nav.mapdata.fields import I18nField
from c3nav.mapdata.grid import grid
from c3nav.mapdata.models.access import AccessRestrictionMixin
from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
from c3nav.mapdata.utils.models import get_submodels
@ -137,9 +138,10 @@ class SpecificLocation(Location, models.Model):
def _serialize(self, detailed=True, **kwargs):
result = super()._serialize(detailed=detailed, **kwargs)
grid_cell = self.grid_cell
if grid_cell is not None:
result['cell'] = grid_cell or None
if grid.enabled:
grid_cell = self.grid_cell
if grid_cell is not None:
result['cell'] = grid_cell or None
if detailed:
groups = {}
for group in self.groups.all():
@ -157,10 +159,11 @@ class SpecificLocation(Location, models.Model):
for group in self.groups.all():
groupcategories.setdefault(group.category, []).append(group)
grid_cell = self.grid_cell
if grid_cell is not 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))
if grid.enabled:
grid_cell = self.grid_cell
if grid_cell is not 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):
result['display'].insert(3, (