From 89b2d0118da568599d97b2624813aa3512dac598 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sun, 2 Nov 2025 03:03:22 -0300 Subject: [PATCH] feat: another batch of fixes --- app/WYGIWYH/settings.py | 1 + app/apps/accounts/forms.py | 4 +- app/apps/currencies/forms.py | 4 +- app/apps/dca/forms.py | 24 ++--- app/apps/insights/forms.py | 12 +-- app/apps/transactions/filters.py | 8 +- app/apps/transactions/forms.py | 88 ++++++++----------- app/apps/users/forms.py | 10 +-- .../calendar_view/pages/calendar.html | 4 +- app/templates/cotton/amount/display.html | 2 +- .../cotton/components/fab_menu_button.html | 2 +- .../components/sidebar_menu_header.html | 4 +- .../cotton/components/sidebar_menu_item.html | 2 +- .../components/sidebar_menu_url_item.html | 2 +- .../cotton/ui/percentage_distribution.html | 2 +- .../crispy-daisyui/layout/column.html | 2 +- app/templates/includes/sidebar.html | 11 +-- app/templates/insights/pages/index.html | 2 +- app/templates/layouts/base.html | 2 +- app/templates/layouts/base_auth.html | 2 +- .../mini_tools/unit_price_calculator.html | 30 +++---- .../monthly_overview/pages/overview.html | 67 +++++++------- app/templates/net_worth/net_worth.html | 58 ++++++------ .../transactions/pages/transactions.html | 2 +- app/templates/users/login.html | 8 +- .../pages/yearly_overview_base.html | 4 +- frontend/src/select.js | 15 +++- frontend/src/styles/_tom-select.scss | 8 +- frontend/src/styles/tailwind.css | 23 ++++- frontend/vite.config.js | 3 +- 30 files changed, 208 insertions(+), 198 deletions(-) diff --git a/app/WYGIWYH/settings.py b/app/WYGIWYH/settings.py index 0158fa0..38d1b29 100644 --- a/app/WYGIWYH/settings.py +++ b/app/WYGIWYH/settings.py @@ -318,6 +318,7 @@ DJANGO_VITE_ASSETS_PATH = STATIC_ROOT DJANGO_VITE_MANIFEST_PATH = DJANGO_VITE_ASSETS_PATH / "manifest.json" DJANGO_VITE_DEV_MODE = DEBUG DJANGO_VITE_DEV_SERVER_PORT = 5173 +DJANGO_VITE_DEV_SERVER_HOST = "100.118.164.62" # Default primary key field type # https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field diff --git a/app/apps/accounts/forms.py b/app/apps/accounts/forms.py index 8d33603..c67da67 100644 --- a/app/apps/accounts/forms.py +++ b/app/apps/accounts/forms.py @@ -154,8 +154,8 @@ class AccountBalanceForm(forms.Form): self.helper.layout = Layout( "new_balance", Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), Field("account_id"), diff --git a/app/apps/currencies/forms.py b/app/apps/currencies/forms.py index 0c9a732..1ef5c26 100644 --- a/app/apps/currencies/forms.py +++ b/app/apps/currencies/forms.py @@ -131,8 +131,8 @@ class ExchangeRateServiceForm(forms.ModelForm): Switch("singleton"), "api_key", Row( - Column("interval_type", css_class="md:col-span-6"), - Column("fetch_interval", css_class="md:col-span-6"), + Column("interval_type"), + Column("fetch_interval"), ), "target_currencies", "target_accounts", diff --git a/app/apps/dca/forms.py b/app/apps/dca/forms.py index 1e6d6e0..939aa39 100644 --- a/app/apps/dca/forms.py +++ b/app/apps/dca/forms.py @@ -34,8 +34,8 @@ class DCAStrategyForm(forms.ModelForm): self.helper.layout = Layout( "name", Row( - Column("payment_currency", css_class="md:col-span-6"), - Column("target_currency", css_class="md:col-span-6"), + Column("payment_currency"), + Column("target_currency"), ), "notes", ) @@ -153,8 +153,8 @@ class DCAEntryForm(forms.ModelForm): self.helper.layout = Layout( "date", Row( - Column("amount_paid", css_class="md:col-span-6"), - Column("amount_received", css_class="md:col-span-6"), + Column("amount_paid"), + Column("amount_received"), ), "notes", BS5Accordion( @@ -166,17 +166,11 @@ class DCAEntryForm(forms.ModelForm): Row( Column( "from_account", - css_class="form-group", ), - css_class="form-row", ), Row( - Column( - "from_category", - css_class="md:col-span-6 mb-0", - ), - Column("from_tags", css_class="md:col-span-6 mb-0"), - css_class="form-row", + Column("from_category"), + Column("from_tags"), ), ), css_class="p-1 mx-1 my-3 border rounded-3", @@ -188,12 +182,10 @@ class DCAEntryForm(forms.ModelForm): "to_account", css_class="form-group", ), - css_class="form-row", ), Row( - Column("to_category", css_class="md:col-span-6 mb-0"), - Column("to_tags", css_class="md:col-span-6 mb-0"), - css_class="form-row", + Column("to_category"), + Column("to_tags"), ), ), css_class="p-1 mx-1 my-3 border rounded-3", diff --git a/app/apps/insights/forms.py b/app/apps/insights/forms.py index ab23b7b..0414149 100644 --- a/app/apps/insights/forms.py +++ b/app/apps/insights/forms.py @@ -58,8 +58,8 @@ class MonthRangeForm(forms.Form): self.helper.layout = Layout( Row( - Column("month_from", css_class="md:col-span-6"), - Column("month_to", css_class="md:col-span-6"), + Column("month_from"), + Column("month_to"), ), ) @@ -81,8 +81,8 @@ class YearRangeForm(forms.Form): self.helper.layout = Layout( Row( - Column("year_from", css_class="md:col-span-6"), - Column("year_to", css_class="md:col-span-6"), + Column("year_from"), + Column("year_to"), ), ) @@ -104,8 +104,8 @@ class DateRangeForm(forms.Form): self.helper.layout = Layout( Row( - Column("date_from", css_class="md:col-span-6"), - Column("date_to", css_class="md:col-span-6"), + Column("date_from"), + Column("date_to"), css_class="mb-0", ), ) diff --git a/app/apps/transactions/filters.py b/app/apps/transactions/filters.py index 2110223..e28f4af 100644 --- a/app/apps/transactions/filters.py +++ b/app/apps/transactions/filters.py @@ -158,13 +158,13 @@ class TransactionsFilter(django_filters.FilterSet): Field("description"), Row(Column("date_start"), Column("date_end")), Row( - Column("reference_date_start", css_class="md:col-span-6 mb-0"), - Column("reference_date_end", css_class="md:col-span-6 mb-0"), + Column("reference_date_start"), + Column("reference_date_end"), css_class="form-row", ), Row( - Column("from_amount", css_class="md:col-span-6 mb-0"), - Column("to_amount", css_class="md:col-span-6 mb-0"), + Column("from_amount"), + Column("to_amount"), css_class="form-row", ), Field("account", size=1), diff --git a/app/apps/transactions/forms.py b/app/apps/transactions/forms.py index 7503d78..f240594 100644 --- a/app/apps/transactions/forms.py +++ b/app/apps/transactions/forms.py @@ -133,20 +133,20 @@ class TransactionForm(forms.ModelForm): ), Field("is_paid", template="transactions/widgets/paid_toggle_button.html"), Row( - Column("account", css_class="md:col-span-6 mb-0"), - Column("entities", css_class="md:col-span-6 mb-0"), + Column("account"), + Column("entities"), css_class="form-row", ), Row( - Column(Field("date"), css_class="md:col-span-6 mb-0"), - Column(Field("reference_date"), css_class="md:col-span-6 mb-0"), + Column(Field("date")), + Column(Field("reference_date")), css_class="form-row", ), "description", Field("amount", inputmode="decimal"), Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), "notes", @@ -163,8 +163,8 @@ class TransactionForm(forms.ModelForm): Field("is_paid", template="transactions/widgets/paid_toggle_button.html"), "account", Row( - Column(Field("date"), css_class="md:col-span-6 mb-0"), - Column(Field("reference_date"), css_class="md:col-span-6 mb-0"), + Column(Field("date")), + Column(Field("reference_date")), css_class="form-row", ), "description", @@ -174,8 +174,8 @@ class TransactionForm(forms.ModelForm): _("More"), "entities", Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), "notes", @@ -349,15 +349,15 @@ class QuickTransactionForm(forms.ModelForm): "name", HTML("
"), Row( - Column("account", css_class="md:col-span-6 mb-0"), - Column("entities", css_class="md:col-span-6 mb-0"), + Column("account"), + Column("entities"), css_class="form-row", ), "description", Field("amount", inputmode="decimal"), Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), "notes", @@ -480,20 +480,20 @@ class BulkEditTransactionForm(forms.Form): template="transactions/widgets/unselectable_paid_toggle_button.html", ), Row( - Column("account", css_class="md:col-span-6 mb-0"), - Column("entities", css_class="md:col-span-6 mb-0"), + Column("account"), + Column("entities"), css_class="form-row", ), Row( - Column(Field("date"), css_class="md:col-span-6 mb-0"), - Column(Field("reference_date"), css_class="md:col-span-6 mb-0"), + Column(Field("date")), + Column(Field("reference_date")), css_class="form-row", ), "description", Field("amount", inputmode="decimal"), Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), "notes", @@ -599,40 +599,30 @@ class TransferForm(forms.Form): self.helper.layout = Layout( Row( - Column(Field("date"), css_class="md:col-span-6 mb-0"), + Column(Field("date")), Column( Field("reference_date"), - css_class="md:col-span-6 mb-0", ), - css_class="form-row", ), Field("description"), Field("notes"), Switch("mute"), Row( - Column( - "from_account", - css_class="md:col-span-6", - ), - Column( - Field("from_amount"), - css_class="md:col-span-6", - ), - Column("from_category", css_class="md:col-span-6"), - Column("from_tags", css_class="md:col-span-6"), + Column("from_account"), + Column(Field("from_amount")), + Column("from_category"), + Column("from_tags"), css_class="bg-base-200 rounded-box p-4 border-base-content/60 border mb-3", ), Row( Column( "to_account", - css_class="md:col-span-6 mb-0", ), Column( Field("to_amount"), - css_class="md:col-span-6 mb-0", ), - Column("to_category", css_class="md:col-span-6 mb-0"), - Column("to_tags", css_class="md:col-span-6 mb-0"), + Column("to_category"), + Column("to_tags"), css_class="bg-base-200 rounded-box p-4 border-base-content/60 border mb-3", ), FormActions( @@ -824,8 +814,8 @@ class InstallmentPlanForm(forms.ModelForm): template="transactions/widgets/income_expense_toggle_buttons.html", ), Row( - Column("account", css_class="md:col-span-6 mb-0"), - Column("entities", css_class="md:col-span-6 mb-0"), + Column("account"), + Column("entities"), css_class="form-row", ), "description", @@ -833,8 +823,8 @@ class InstallmentPlanForm(forms.ModelForm): "notes", Switch("add_notes_to_transaction"), Row( - Column("number_of_installments", css_class="md:col-span-6 mb-0"), - Column("installment_start", css_class="md:col-span-6 mb-0"), + Column("number_of_installments"), + Column("installment_start"), css_class="form-row", ), Row( @@ -845,8 +835,8 @@ class InstallmentPlanForm(forms.ModelForm): ), "installment_amount", Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), ) @@ -1086,23 +1076,23 @@ class RecurringTransactionForm(forms.ModelForm): template="transactions/widgets/income_expense_toggle_buttons.html", ), Row( - Column("account", css_class="md:col-span-6 mb-0"), - Column("entities", css_class="md:col-span-6 mb-0"), + Column("account"), + Column("entities"), css_class="form-row", ), "description", Switch("add_description_to_transaction"), "amount", Row( - Column("category", css_class="md:col-span-6 mb-0"), - Column("tags", css_class="md:col-span-6 mb-0"), + Column("category"), + Column("tags"), css_class="form-row", ), "notes", Switch("add_notes_to_transaction"), Row( - Column("start_date", css_class="md:col-span-6 mb-0"), - Column("reference_date", css_class="md:col-span-6 mb-0"), + Column("start_date"), + Column("reference_date"), css_class="form-row", ), Row( diff --git a/app/apps/users/forms.py b/app/apps/users/forms.py index 3f05051..bb3aec6 100644 --- a/app/apps/users/forms.py +++ b/app/apps/users/forms.py @@ -53,7 +53,7 @@ class LoginForm(AuthenticationForm): self.helper.layout = Layout( "username", "password", - Submit("Submit", "Login", css_class="btn btn-primary w-100"), + Submit("Submit", "Login", css_class="w-full mt-3"), ) @@ -199,8 +199,8 @@ class UserUpdateForm(forms.ModelForm): # Define the layout using Crispy Forms, including the new fields self.helper.layout = Layout( Row( - Column("first_name", css_class="md:col-span-6"), - Column("last_name", css_class="md:col-span-6"), + Column("first_name"), + Column("last_name"), css_class="row", ), Field("email"), @@ -362,8 +362,8 @@ class UserAddForm(UserCreationForm): self.helper.layout = Layout( Field("email"), Row( - Column("first_name", css_class="md:col-span-6"), - Column("last_name", css_class="md:col-span-6"), + Column("first_name"), + Column("last_name"), css_class="row", ), # UserCreationForm provides 'password1' and 'password2' fields diff --git a/app/templates/calendar_view/pages/calendar.html b/app/templates/calendar_view/pages/calendar.html index b7ce09d..8868fcc 100644 --- a/app/templates/calendar_view/pages/calendar.html +++ b/app/templates/calendar_view/pages/calendar.html @@ -12,7 +12,7 @@ {% endblock %} {% block content %} -
+
{# Date picker#}
@@ -24,7 +24,7 @@
-
{% endif %} - {{ slot }} diff --git a/app/templates/cotton/components/fab_menu_button.html b/app/templates/cotton/components/fab_menu_button.html index 0234c45..959c824 100644 --- a/app/templates/cotton/components/fab_menu_button.html +++ b/app/templates/cotton/components/fab_menu_button.html @@ -2,5 +2,5 @@ hx-trigger="{{ hx_trigger }}" hx-target="{{ hx_target }}" hx-vals='{{ hx_vals }}'> - {{ title }} + {{ title }}
\ No newline at end of file diff --git a/app/templates/cotton/components/sidebar_menu_header.html b/app/templates/cotton/components/sidebar_menu_header.html index df51ecd..4212855 100644 --- a/app/templates/cotton/components/sidebar_menu_header.html +++ b/app/templates/cotton/components/sidebar_menu_header.html @@ -1,6 +1,6 @@
  • -
    +
    {{ title }} -
    +
  • diff --git a/app/templates/cotton/components/sidebar_menu_item.html b/app/templates/cotton/components/sidebar_menu_item.html index 8ea2836..dc38d2f 100644 --- a/app/templates/cotton/components/sidebar_menu_item.html +++ b/app/templates/cotton/components/sidebar_menu_item.html @@ -9,6 +9,6 @@ {% endif %}> {{ title }} + class="ms-3 font-medium">{{ title }} diff --git a/app/templates/cotton/components/sidebar_menu_url_item.html b/app/templates/cotton/components/sidebar_menu_url_item.html index 36d1a62..e7e6751 100644 --- a/app/templates/cotton/components/sidebar_menu_url_item.html +++ b/app/templates/cotton/components/sidebar_menu_url_item.html @@ -11,6 +11,6 @@ {{ title }} + class="ms-3 font-medium">{{ title }} diff --git a/app/templates/cotton/ui/percentage_distribution.html b/app/templates/cotton/ui/percentage_distribution.html index e192212..e1d20e8 100644 --- a/app/templates/cotton/ui/percentage_distribution.html +++ b/app/templates/cotton/ui/percentage_distribution.html @@ -1,5 +1,5 @@ {% load i18n %} -
    diff --git a/app/templates/crispy-daisyui/layout/column.html b/app/templates/crispy-daisyui/layout/column.html index 5c2da10..86b3a8e 100644 --- a/app/templates/crispy-daisyui/layout/column.html +++ b/app/templates/crispy-daisyui/layout/column.html @@ -1,5 +1,5 @@
    + class="{% if 'col' in div.css_class %}{{ div.css_class|default:'' }}{% else %}md:col-span-6 col-span-12{{ div.css_class|default:'' }}{% endif %}" {{ div.flat_attrs }}> {{ fields|safe }}
    diff --git a/app/templates/includes/sidebar.html b/app/templates/includes/sidebar.html index a4a93db..b135a50 100644 --- a/app/templates/includes/sidebar.html +++ b/app/templates/includes/sidebar.html @@ -11,6 +11,7 @@ id="sidebar" hx-boost="true" hx-swap="transition:true" + data-bs-scroll="true" class="offcanvas-lg offcanvas-start lg:flex flex-col fixed top-0 left-0 h-full bg-base-300! shadow-sm z-[1045]">