only show grid squares if there is a grid
This commit is contained in:
parent
fc0f35eb25
commit
8824026ce0
2 changed files with 14 additions and 7 deletions
|
@ -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)
|
||||||
|
|
|
@ -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, (
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue