Changed Period to use the current language instead of expecting the language passed by the caller.

This commit is contained in:
依瑪貓 2020-07-14 22:10:27 +08:00
parent fa034b9a6a
commit e895de3abc
2 changed files with 7 additions and 14 deletions

View File

@ -73,8 +73,7 @@ def cash(request, subject_code, period_spec):
data_start = first_txn.date if first_txn is not None else None data_start = first_txn.date if first_txn is not None else None
last_txn = Transaction.objects.order_by("-date").first() last_txn = Transaction.objects.order_by("-date").first()
data_end = last_txn.date if last_txn is not None else None data_end = last_txn.date if last_txn is not None else None
period = Period( period = Period(period_spec, data_start, data_end)
period_spec, data_start, data_end, get_language())
subjects = list(Subject.objects.raw("""SELECT s.* subjects = list(Subject.objects.raw("""SELECT s.*
FROM accounting_subjects AS s FROM accounting_subjects AS s
WHERE s.code IN (SELECT s1.code WHERE s.code IN (SELECT s1.code

View File

@ -26,7 +26,9 @@ from django.core.serializers.json import DjangoJSONEncoder
from django.template import defaultfilters from django.template import defaultfilters
from django.utils import dateformat from django.utils import dateformat
from django.utils.timezone import localdate from django.utils.timezone import localdate
from django.utils.translation import gettext from django.utils.translation import gettext, get_language
from mia_core.utils import Language
class Period: class Period:
@ -36,7 +38,6 @@ class Period:
spec (str): The current period specification spec (str): The current period specification
data_start (date): The available first day of the data. data_start (date): The available first day of the data.
data_end (date): The available last day of the data. data_end (date): The available last day of the data.
language (str): The current language.
Attributes: Attributes:
spec (date): The currently-working period specification. spec (date): The currently-working period specification.
@ -83,12 +84,11 @@ class Period:
_period = None _period = None
def __init__( def __init__(
self, spec = None, self, spec = None, data_start = None, data_end = None):
data_start = None, data_end = None, language = None):
self._period = self.Parser(spec) self._period = self.Parser(spec)
self._data_start = data_start self._data_start = data_start
self._data_end = data_end self._data_end = data_end
self._language = language self._language = Language(get_language())
@property @property
def spec(self): def spec(self):
@ -306,15 +306,9 @@ class Period:
def month_picker_params(self): def month_picker_params(self):
if self._data_start is None: if self._data_start is None:
return None return None
if self._language == "zh-Hant":
locale = "zh_TW"
elif self._language == "zh-Hans":
locale = "zh_CN"
else:
locale = self._language.replace("-", "_")
start = date(self._data_start.year, self._data_start.month, 1) start = date(self._data_start.year, self._data_start.month, 1)
return DjangoJSONEncoder().encode({ return DjangoJSONEncoder().encode({
"locale": locale, "locale": self._language.locale,
"minDate": start, "minDate": start,
"maxDate": self._data_end, "maxDate": self._data_end,
"defaultDate": self.chosen_month, "defaultDate": self.chosen_month,