add I18nField and replace the title JSONField with it
This commit is contained in:
parent
968fc3885d
commit
f94be40470
4 changed files with 174 additions and 18 deletions
|
@ -5,7 +5,7 @@ from django.db import models
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import get_language, get_language_info
|
||||
|
||||
from c3nav.mapdata.fields import JSONField
|
||||
from c3nav.mapdata.fields import I18nField
|
||||
from c3nav.mapdata.models import MapUpdate
|
||||
|
||||
|
||||
|
@ -47,7 +47,7 @@ class SerializableMixin(models.Model):
|
|||
|
||||
|
||||
class TitledMixin(SerializableMixin, models.Model):
|
||||
titles = JSONField(default={})
|
||||
title = I18nField(plural_name='titles', fallback_any=True, fallback_value='{model_name} {pk}')
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
@ -75,15 +75,6 @@ class TitledMixin(SerializableMixin, models.Model):
|
|||
result['display'].append((language, title))
|
||||
return result
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
lang = get_language()
|
||||
if self.titles:
|
||||
if lang in self.titles:
|
||||
return self.titles[lang]
|
||||
return next(iter(self.titles.values()))
|
||||
return super().title
|
||||
|
||||
|
||||
class BoundsMixin(SerializableMixin, models.Model):
|
||||
bottom = models.DecimalField(_('bottom coordinate'), max_digits=6, decimal_places=2)
|
||||
|
|
|
@ -117,12 +117,6 @@ class Location(LocationSlug, AccessRestrictionMixin, TitledMixin, models.Model):
|
|||
return code+':'+str(self.id)
|
||||
return self.slug
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
if not self.titles and self.slug:
|
||||
return self._meta.verbose_name + ' ' + self.slug
|
||||
return super().title
|
||||
|
||||
@property
|
||||
def subtitle(self):
|
||||
return ''
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue