Renamed IncomeExpensesAccount to CurrentAccount.
This commit is contained in:
		| @@ -28,7 +28,7 @@ from wtforms.validators import DataRequired, ValidationError | ||||
| from accounting.forms import CURRENCY_REQUIRED, CurrencyExists | ||||
| from accounting.locale import lazy_gettext | ||||
| from accounting.models import Account | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount, ie_accounts | ||||
| from accounting.utils.current_account import CurrentAccount, current_accounts | ||||
| from accounting.utils.strip_text import strip_text | ||||
| from .options import Options | ||||
|  | ||||
| @@ -242,9 +242,9 @@ class OptionForm(FlaskForm): | ||||
|         obj.recurring_data = self.recurring.form.as_data | ||||
|  | ||||
|     @property | ||||
|     def ie_accounts(self) -> list[IncomeExpensesAccount]: | ||||
|         """Returns the accounts for the income and expenses log. | ||||
|     def current_accounts(self) -> list[CurrentAccount]: | ||||
|         """Returns the current accounts. | ||||
|  | ||||
|         :return: The accounts for the income and expenses log. | ||||
|         :return: The current accounts. | ||||
|         """ | ||||
|         return ie_accounts() | ||||
|         return current_accounts() | ||||
|   | ||||
| @@ -23,7 +23,7 @@ import sqlalchemy as sa | ||||
|  | ||||
| from accounting import db | ||||
| from accounting.models import Option, Account | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount | ||||
| from accounting.utils.current_account import CurrentAccount | ||||
| from accounting.utils.user import get_current_user_pk | ||||
|  | ||||
|  | ||||
| @@ -108,15 +108,15 @@ class Options: | ||||
|         self.__set_option("default_ie_account", value) | ||||
|  | ||||
|     @property | ||||
|     def default_ie_account(self) -> IncomeExpensesAccount: | ||||
|     def default_ie_account(self) -> CurrentAccount: | ||||
|         """Returns the default account code for the income and expenses log. | ||||
|  | ||||
|         :return: The default account code for the income and expenses log. | ||||
|         """ | ||||
|         if self.default_ie_account_code \ | ||||
|                 == IncomeExpensesAccount.CURRENT_AL_CODE: | ||||
|             return IncomeExpensesAccount.current_assets_and_liabilities() | ||||
|         return IncomeExpensesAccount( | ||||
|                 == CurrentAccount.CURRENT_AL_CODE: | ||||
|             return CurrentAccount.current_assets_and_liabilities() | ||||
|         return CurrentAccount( | ||||
|             Account.find_by_code(self.default_ie_account_code)) | ||||
|  | ||||
|     @property | ||||
|   | ||||
| @@ -23,7 +23,7 @@ from flask import abort | ||||
| from werkzeug.routing import BaseConverter | ||||
|  | ||||
| from accounting.models import Account | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount | ||||
| from accounting.utils.current_account import CurrentAccount | ||||
| from .period import Period, get_period | ||||
|  | ||||
|  | ||||
| @@ -55,22 +55,22 @@ class IncomeExpensesAccountConverter(BaseConverter): | ||||
|     """The supplier converter to convert the income and expenses log pseudo | ||||
|     account code from and to the corresponding pseudo account in the routes.""" | ||||
|  | ||||
|     def to_python(self, value: str) -> IncomeExpensesAccount: | ||||
|     def to_python(self, value: str) -> CurrentAccount: | ||||
|         """Converts an account code to an account. | ||||
|  | ||||
|         :param value: The account code. | ||||
|         :return: The corresponding account. | ||||
|         """ | ||||
|         if value == IncomeExpensesAccount.CURRENT_AL_CODE: | ||||
|             return IncomeExpensesAccount.current_assets_and_liabilities() | ||||
|         if value == CurrentAccount.CURRENT_AL_CODE: | ||||
|             return CurrentAccount.current_assets_and_liabilities() | ||||
|         if not re.match("^[12][12]", value): | ||||
|             abort(404) | ||||
|         account: Account | None = Account.find_by_code(value) | ||||
|         if account is None: | ||||
|             abort(404) | ||||
|         return IncomeExpensesAccount(account) | ||||
|         return CurrentAccount(account) | ||||
|  | ||||
|     def to_url(self, value: IncomeExpensesAccount) -> str: | ||||
|     def to_url(self, value: CurrentAccount) -> str: | ||||
|         """Converts an account to account code. | ||||
|  | ||||
|         :param value: The account. | ||||
|   | ||||
| @@ -38,7 +38,7 @@ from accounting.report.utils.report_chooser import ReportChooser | ||||
| from accounting.report.utils.report_type import ReportType | ||||
| from accounting.report.utils.urls import income_expenses_url | ||||
| from accounting.utils.cast import be | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount | ||||
| from accounting.utils.current_account import CurrentAccount | ||||
| from accounting.utils.pagination import Pagination | ||||
|  | ||||
|  | ||||
| @@ -84,7 +84,7 @@ class ReportLineItem: | ||||
| class LineItemCollector: | ||||
|     """The line item collector.""" | ||||
|  | ||||
|     def __init__(self, currency: Currency, account: IncomeExpensesAccount, | ||||
|     def __init__(self, currency: Currency, account: CurrentAccount, | ||||
|                  period: Period): | ||||
|         """Constructs the line item collector. | ||||
|  | ||||
| @@ -94,7 +94,7 @@ class LineItemCollector: | ||||
|         """ | ||||
|         self.__currency: Currency = currency | ||||
|         """The currency.""" | ||||
|         self.__account: IncomeExpensesAccount = account | ||||
|         self.__account: CurrentAccount = account | ||||
|         """The account.""" | ||||
|         self.__period: Period = period | ||||
|         """The period""" | ||||
| @@ -173,7 +173,7 @@ class LineItemCollector: | ||||
|  | ||||
|     @property | ||||
|     def __account_condition(self) -> sa.BinaryExpression: | ||||
|         if self.__account.code == IncomeExpensesAccount.CURRENT_AL_CODE: | ||||
|         if self.__account.code == CurrentAccount.CURRENT_AL_CODE: | ||||
|             return sa.or_(Account.base_code.startswith("11"), | ||||
|                           Account.base_code.startswith("12"), | ||||
|                           Account.base_code.startswith("21"), | ||||
| @@ -264,7 +264,7 @@ class PageParams(BasePageParams): | ||||
|     """The HTML page parameters.""" | ||||
|  | ||||
|     def __init__(self, currency: Currency, | ||||
|                  account: IncomeExpensesAccount, | ||||
|                  account: CurrentAccount, | ||||
|                  period: Period, | ||||
|                  has_data: bool, | ||||
|                  pagination: Pagination[ReportLineItem], | ||||
| @@ -283,7 +283,7 @@ class PageParams(BasePageParams): | ||||
|         """ | ||||
|         self.currency: Currency = currency | ||||
|         """The currency.""" | ||||
|         self.account: IncomeExpensesAccount = account | ||||
|         self.account: CurrentAccount = account | ||||
|         """The account.""" | ||||
|         self.period: Period = period | ||||
|         """The period.""" | ||||
| @@ -341,8 +341,8 @@ class PageParams(BasePageParams): | ||||
|  | ||||
|         :return: The account options. | ||||
|         """ | ||||
|         current_al: IncomeExpensesAccount \ | ||||
|             = IncomeExpensesAccount.current_assets_and_liabilities() | ||||
|         current_al: CurrentAccount \ | ||||
|             = CurrentAccount.current_assets_and_liabilities() | ||||
|         options: list[OptionLink] \ | ||||
|             = [OptionLink(str(current_al), | ||||
|                           income_expenses_url(self.currency, current_al, | ||||
| @@ -360,7 +360,7 @@ class PageParams(BasePageParams): | ||||
|         options.extend([OptionLink(str(x), | ||||
|                                    income_expenses_url( | ||||
|                                        self.currency, | ||||
|                                        IncomeExpensesAccount(x), | ||||
|                                        CurrentAccount(x), | ||||
|                                        self.period), | ||||
|                                    x.id == self.account.id) | ||||
|                         for x in Account.query.filter(Account.id.in_(in_use)) | ||||
| @@ -371,7 +371,7 @@ class PageParams(BasePageParams): | ||||
| class IncomeExpenses(BaseReport): | ||||
|     """The income and expenses log.""" | ||||
|  | ||||
|     def __init__(self, currency: Currency, account: IncomeExpensesAccount, | ||||
|     def __init__(self, currency: Currency, account: CurrentAccount, | ||||
|                  period: Period): | ||||
|         """Constructs an income and expenses log. | ||||
|  | ||||
| @@ -381,7 +381,7 @@ class IncomeExpenses(BaseReport): | ||||
|         """ | ||||
|         self.__currency: Currency = currency | ||||
|         """The currency.""" | ||||
|         self.__account: IncomeExpensesAccount = account | ||||
|         self.__account: CurrentAccount = account | ||||
|         """The account.""" | ||||
|         self.__period: Period = period | ||||
|         """The period.""" | ||||
|   | ||||
| @@ -30,7 +30,7 @@ from accounting.locale import gettext | ||||
| from accounting.models import Currency, Account | ||||
| from accounting.report.period import Period, get_period | ||||
| from accounting.template_globals import default_currency_code | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount | ||||
| from accounting.utils.current_account import CurrentAccount | ||||
| from .option_link import OptionLink | ||||
| from .report_type import ReportType | ||||
| from .urls import journal_url, ledger_url, income_expenses_url, \ | ||||
| @@ -113,7 +113,7 @@ class ReportChooser: | ||||
|             account: Account = Account.cash() | ||||
|         return OptionLink(gettext("Income and Expenses Log"), | ||||
|                           income_expenses_url(self.__currency, | ||||
|                                               IncomeExpensesAccount(account), | ||||
|                                               CurrentAccount(account), | ||||
|                                               self.__period), | ||||
|                           self.__active_report == ReportType.INCOME_EXPENSES, | ||||
|                           fa_icon="fa-solid fa-money-bill-wave") | ||||
|   | ||||
| @@ -23,7 +23,7 @@ from accounting.models import Currency, Account | ||||
| from accounting.option.options import options | ||||
| from accounting.report.period import Period | ||||
| from accounting.template_globals import default_currency_code | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount | ||||
| from accounting.utils.current_account import CurrentAccount | ||||
|  | ||||
|  | ||||
| def journal_url(period: Period) \ | ||||
| @@ -55,7 +55,7 @@ def ledger_url(currency: Currency, account: Account, period: Period) \ | ||||
|                    period=period) | ||||
|  | ||||
|  | ||||
| def income_expenses_url(currency: Currency, account: IncomeExpensesAccount, | ||||
| def income_expenses_url(currency: Currency, account: CurrentAccount, | ||||
|                         period: Period) -> str: | ||||
|     """Returns the URL of an income and expenses log. | ||||
|  | ||||
|   | ||||
| @@ -24,7 +24,7 @@ from accounting.models import Currency, Account | ||||
| from accounting.option.options import options | ||||
| from accounting.report.period import Period, get_period | ||||
| from accounting.template_globals import default_currency_code | ||||
| from accounting.utils.ie_account import IncomeExpensesAccount | ||||
| from accounting.utils.current_account import CurrentAccount | ||||
| from accounting.utils.permission import has_permission, can_view | ||||
| from .reports import Journal, Ledger, IncomeExpenses, TrialBalance, \ | ||||
|     IncomeStatement, BalanceSheet, Search | ||||
| @@ -127,8 +127,7 @@ def __get_ledger(currency: Currency, account: Account, period: Period) \ | ||||
| @bp.get("income-expenses/<currency:currency>/<ieAccount:account>", | ||||
|         endpoint="income-expenses-default") | ||||
| @has_permission(can_view) | ||||
| def get_default_income_expenses(currency: Currency, | ||||
|                                 account: IncomeExpensesAccount) \ | ||||
| def get_default_income_expenses(currency: Currency, account: CurrentAccount) \ | ||||
|         -> str | Response: | ||||
|     """Returns the income and expenses log in the default period. | ||||
|  | ||||
| @@ -143,7 +142,7 @@ def get_default_income_expenses(currency: Currency, | ||||
|     "income-expenses/<currency:currency>/<ieAccount:account>/<period:period>", | ||||
|     endpoint="income-expenses") | ||||
| @has_permission(can_view) | ||||
| def get_income_expenses(currency: Currency, account: IncomeExpensesAccount, | ||||
| def get_income_expenses(currency: Currency, account: CurrentAccount, | ||||
|                         period: Period) -> str | Response: | ||||
|     """Returns the income and expenses log. | ||||
|  | ||||
| @@ -155,7 +154,7 @@ def get_income_expenses(currency: Currency, account: IncomeExpensesAccount, | ||||
|     return __get_income_expenses(currency, account, period) | ||||
|  | ||||
|  | ||||
| def __get_income_expenses(currency: Currency, account: IncomeExpensesAccount, | ||||
| def __get_income_expenses(currency: Currency, account: CurrentAccount, | ||||
|                           period: Period) -> str | Response: | ||||
|     """Returns the income and expenses log. | ||||
|  | ||||
|   | ||||
| @@ -46,7 +46,7 @@ First written: 2023/3/22 | ||||
|  | ||||
|   <div class="form-floating mb-3"> | ||||
|     <select id="accounting-default-ie-account" class="form-select {% if form.default_ie_account_code.errors %} is-invalid {% endif %}" name="default_ie_account_code"> | ||||
|       {% for account in form.ie_accounts %} | ||||
|       {% for account in form.current_accounts %} | ||||
|         <option value="{{ account.code }}" {% if account.code == form.default_ie_account_code.data %} selected="selected" {% endif %}>{{ account }}</option> | ||||
|       {% endfor %} | ||||
|     </select> | ||||
|   | ||||
| @@ -14,7 +14,7 @@ | ||||
| #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| #  See the License for the specific language governing permissions and | ||||
| #  limitations under the License. | ||||
| """The pseudo account for the income and expenses log. | ||||
| """The current account. | ||||
| 
 | ||||
| """ | ||||
| import typing as t | ||||
| @@ -25,15 +25,15 @@ from accounting.models import Account | ||||
| import sqlalchemy as sa | ||||
| 
 | ||||
| 
 | ||||
| class IncomeExpensesAccount: | ||||
|     """The pseudo account for the income and expenses log.""" | ||||
| class CurrentAccount: | ||||
|     """The current account.""" | ||||
|     CURRENT_AL_CODE: str = "0000-000" | ||||
|     """The account code for the current assets and liabilities.""" | ||||
| 
 | ||||
|     def __init__(self, account: Account | None = None): | ||||
|         """Constructs the pseudo account for the income and expenses log. | ||||
|         """Constructs the current account. | ||||
| 
 | ||||
|         :param account: The actual account. | ||||
|         :param account: The account. | ||||
|         """ | ||||
|         self.account: Account | None = account | ||||
|         self.id: int = -1 if account is None else account.id | ||||
| @@ -66,14 +66,14 @@ class IncomeExpensesAccount: | ||||
|         return account | ||||
| 
 | ||||
| 
 | ||||
| def ie_accounts() -> list[IncomeExpensesAccount]: | ||||
| def current_accounts() -> list[CurrentAccount]: | ||||
|     """Returns accounts for the income and expenses log. | ||||
| 
 | ||||
|     :return: The accounts for the income and expenses log. | ||||
|     """ | ||||
|     accounts: list[IncomeExpensesAccount] \ | ||||
|         = [IncomeExpensesAccount.current_assets_and_liabilities()] | ||||
|     accounts.extend([IncomeExpensesAccount(x) | ||||
|     accounts: list[CurrentAccount] \ | ||||
|         = [CurrentAccount.current_assets_and_liabilities()] | ||||
|     accounts.extend([CurrentAccount(x) | ||||
|                      for x in db.session.query(Account) | ||||
|                     .filter(sa.or_(Account.base_code.startswith("11"), | ||||
|                                    Account.base_code.startswith("12"), | ||||
		Reference in New Issue
	
	Block a user