Revised the calculation of "today" to use the client's timezone instead of the server's timezone.
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| # The Mia! Accounting Demonstration Website. | ||||
| # Author: imacat@mail.imacat.idv.tw (imacat), 2023/4/13 | ||||
|  | ||||
| #  Copyright (c) 2023 imacat. | ||||
| #  Copyright (c) 2023-2024 imacat. | ||||
| # | ||||
| #  Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| #  you may not use this file except in compliance with the License. | ||||
| @@ -28,6 +28,7 @@ from typing import Any | ||||
| import sqlalchemy as sa | ||||
| from flask import Flask | ||||
|  | ||||
| from accounting.utils.timezone import get_tz_today | ||||
| from . import db | ||||
| from .auth import User | ||||
|  | ||||
| @@ -44,6 +45,17 @@ class Accounts: | ||||
|     MEAL: str = "6272-001" | ||||
|  | ||||
|  | ||||
| def get_today() -> dt.date: | ||||
|     """Returns today, based on the context. | ||||
|  | ||||
|     :return: Today. | ||||
|     """ | ||||
|     try: | ||||
|         return get_tz_today() | ||||
|     except RuntimeError: | ||||
|         return dt.date.today() | ||||
|  | ||||
|  | ||||
| class JournalEntryLineItemData: | ||||
|     """The journal entry line item data.""" | ||||
|  | ||||
| @@ -183,7 +195,7 @@ class JournalEntryData: | ||||
|         :param is_update: True for an update operation, or False otherwise | ||||
|         :return: The journal entry as a form. | ||||
|         """ | ||||
|         date: dt.date = dt.date.today() - dt.timedelta(days=self.days) | ||||
|         date: dt.date = get_today() - dt.timedelta(days=self.days) | ||||
|         form: dict[str, str] = {"csrf_token": csrf_token, | ||||
|                                 "next": encoded_next_uri, | ||||
|                                 "date": date.isoformat()} | ||||
| @@ -260,8 +272,7 @@ class BaseTestData(ABC): | ||||
|         existing_j_id: set[int] = {x["id"] for x in self.__journal_entries} | ||||
|         existing_l_id: set[int] = {x["id"] for x in self.__line_items} | ||||
|         journal_entry_data.id = self.__new_id(existing_j_id) | ||||
|         date: dt.date \ | ||||
|             = dt.date.today() - dt.timedelta(days=journal_entry_data.days) | ||||
|         date: dt.date = get_today() - dt.timedelta(days=journal_entry_data.days) | ||||
|         self.__journal_entries.append( | ||||
|             {"id": journal_entry_data.id, | ||||
|              "date": date, | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| # The Mia! Accounting Demonstration Website. | ||||
| # Author: imacat@mail.imacat.idv.tw (imacat), 2023/4/12 | ||||
|  | ||||
| #  Copyright (c) 2023 imacat. | ||||
| #  Copyright (c) 2023-2024 imacat. | ||||
| # | ||||
| #  Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| #  you may not use this file except in compliance with the License. | ||||
| @@ -23,6 +23,7 @@ from flask import Flask, Blueprint, url_for, flash, redirect, session, \ | ||||
|     render_template, current_app | ||||
| from flask_babel import lazy_gettext | ||||
|  | ||||
| from accounting.utils.timezone import get_tz_today | ||||
| from . import db | ||||
| from .auth import admin_required | ||||
| from .lib import Accounts, JournalEntryLineItemData, JournalEntryData, \ | ||||
| @@ -117,7 +118,7 @@ class SampleData(BaseTestData): | ||||
|  | ||||
|         :return: None. | ||||
|         """ | ||||
|         today: dt.date = dt.date.today() | ||||
|         today: dt.date = get_tz_today() | ||||
|         days: int | ||||
|         year: int | ||||
|         month: int | ||||
| @@ -160,7 +161,7 @@ class SampleData(BaseTestData): | ||||
|  | ||||
|         :return: None. | ||||
|         """ | ||||
|         today: dt.date = dt.date.today() | ||||
|         today: dt.date = get_tz_today() | ||||
|  | ||||
|         year: int = today.year - 5 | ||||
|         month: int = today.month | ||||
|   | ||||
		Reference in New Issue
	
	Block a user