Renamed the get_multi_language_attr() method to get_multi_lingual_attr(), and renamed the multi-lingual model fields from _zhtw to _zh_hant, and _zhcn to _zh_hans.
This commit is contained in:
parent
a58f6d6d11
commit
418dcd9803
@ -23,7 +23,7 @@ from django.db import models
|
|||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
from mia_core.templatetags.mia_core import smart_month
|
from mia_core.templatetags.mia_core import smart_month
|
||||||
from mia_core.utils import get_multi_language_attr
|
from mia_core.utils import get_multi_lingual_attr
|
||||||
|
|
||||||
|
|
||||||
class Subject(models.Model):
|
class Subject(models.Model):
|
||||||
@ -33,10 +33,11 @@ class Subject(models.Model):
|
|||||||
"self", on_delete=models.PROTECT, null=True, blank=True,
|
"self", on_delete=models.PROTECT, null=True, blank=True,
|
||||||
db_column="parent_sn")
|
db_column="parent_sn")
|
||||||
code = models.CharField(max_length=5)
|
code = models.CharField(max_length=5)
|
||||||
title_zhtw = models.CharField(max_length=32)
|
title_zh_hant = models.CharField(
|
||||||
|
max_length=32, db_column="title_zhtw")
|
||||||
title_en = models.CharField(max_length=128, null=True, blank=True)
|
title_en = models.CharField(max_length=128, null=True, blank=True)
|
||||||
title_zhcn = models.CharField(
|
title_zh_hans = models.CharField(
|
||||||
max_length=32, null=True, blank=True)
|
max_length=32, null=True, blank=True, db_column="title_zhcn")
|
||||||
created_at = models.DateTimeField(
|
created_at = models.DateTimeField(
|
||||||
auto_now_add=True, db_column="created")
|
auto_now_add=True, db_column="created")
|
||||||
created_by = models.ForeignKey(
|
created_by = models.ForeignKey(
|
||||||
@ -60,7 +61,7 @@ class Subject(models.Model):
|
|||||||
@property
|
@property
|
||||||
def title(self):
|
def title(self):
|
||||||
if self._title is None:
|
if self._title is None:
|
||||||
self._title = get_multi_language_attr(self, "title")
|
self._title = get_multi_lingual_attr(self, "title")
|
||||||
return self._title
|
return self._title
|
||||||
|
|
||||||
@title.setter
|
@title.setter
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from mia_core.utils import get_multi_language_attr
|
from mia_core.utils import get_multi_lingual_attr
|
||||||
|
|
||||||
|
|
||||||
class Country(models.Model):
|
class Country(models.Model):
|
||||||
@ -29,8 +29,10 @@ class Country(models.Model):
|
|||||||
sn = models.PositiveIntegerField(primary_key=True)
|
sn = models.PositiveIntegerField(primary_key=True)
|
||||||
code = models.CharField(max_length=2, unique=True)
|
code = models.CharField(max_length=2, unique=True)
|
||||||
name_en = models.CharField(max_length=64)
|
name_en = models.CharField(max_length=64)
|
||||||
name_zhtw = models.CharField(max_length=32, null=True)
|
name_zh_hant = models.CharField(
|
||||||
name_zhcn = models.CharField(max_length=32, null=True)
|
max_length=32, null=True, db_column="name_zhtw")
|
||||||
|
name_zh_hans = models.CharField(
|
||||||
|
max_length=32, null=True, db_column="name_zhcn")
|
||||||
is_special = models.BooleanField(
|
is_special = models.BooleanField(
|
||||||
default=False, db_column="special")
|
default=False, db_column="special")
|
||||||
created_at = models.DateTimeField(
|
created_at = models.DateTimeField(
|
||||||
@ -46,19 +48,19 @@ class Country(models.Model):
|
|||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"""Returns the string representation of this country."""
|
"""Returns the string representation of this country."""
|
||||||
return self.code.__str__() + " " + self.name_zhtw.__str__()
|
return self.code.__str__() + " " + self.name.__str__()
|
||||||
|
|
||||||
_title = None
|
_name = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def title(self):
|
def name(self):
|
||||||
if self._title is None:
|
if self._name is None:
|
||||||
self._title = get_multi_language_attr(self, "title")
|
self._name = get_multi_lingual_attr(self, "name")
|
||||||
return self._title
|
return self._name
|
||||||
|
|
||||||
@title.setter
|
@name.setter
|
||||||
def title(self, value):
|
def name(self, value):
|
||||||
self._title = value
|
self._name = value
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = "countries"
|
db_table = "countries"
|
||||||
|
@ -41,15 +41,13 @@ class Language:
|
|||||||
is_default = False
|
is_default = False
|
||||||
|
|
||||||
def __init__(self, language):
|
def __init__(self, language):
|
||||||
|
self.db = "_" + language.lower().replace("-", "_")
|
||||||
if language == "zh-hant":
|
if language == "zh-hant":
|
||||||
self.locale = "zh-TW"
|
self.locale = "zh-TW"
|
||||||
self.db = "zhtw"
|
|
||||||
elif language == "zh-hans":
|
elif language == "zh-hans":
|
||||||
self.locale = "zh-CN"
|
self.locale = "zh-CN"
|
||||||
self.db = "zhcn"
|
|
||||||
else:
|
else:
|
||||||
self.locale = language
|
self.locale = language
|
||||||
self.db = language
|
|
||||||
self.is_default = (language == settings.LANGUAGE_CODE)
|
self.is_default = (language == settings.LANGUAGE_CODE)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -61,8 +59,8 @@ class Language:
|
|||||||
return Language(get_language())
|
return Language(get_language())
|
||||||
|
|
||||||
|
|
||||||
def get_multi_language_attr(model, name):
|
def get_multi_lingual_attr(model, name):
|
||||||
"""Returns a multi-language attribute of a data model.
|
"""Returns a multi-lingual attribute of a data model.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
model (object): The data model.
|
model (object): The data model.
|
||||||
@ -73,12 +71,12 @@ def get_multi_language_attr(model, name):
|
|||||||
language if there is no content in the current language.
|
language if there is no content in the current language.
|
||||||
"""
|
"""
|
||||||
language = Language.current()
|
language = Language.current()
|
||||||
title = getattr(model, name + "_" + language.db)
|
title = getattr(model, name + language.db)
|
||||||
if language.is_default:
|
if language.is_default:
|
||||||
return title
|
return title
|
||||||
if title is not None:
|
if title is not None:
|
||||||
return title
|
return title
|
||||||
return getattr(model, name + "_" + Language.default().db)
|
return getattr(model, name + Language.default().db)
|
||||||
|
|
||||||
|
|
||||||
class UrlBuilder:
|
class UrlBuilder:
|
||||||
|
Loading…
Reference in New Issue
Block a user