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:
		| @@ -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: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user