Skip to content

Commit f830646

Browse files
committed
v0.7.6
Refactor mixin usage for base views in `django_ledger`. Replaces multiple redundant mixins with unified base view classes (`EntityUnitModelModelBaseView` and `VendorModelModelBaseView`) to streamline inheritance and improve code maintainability. Updated version to `0.7.6` to reflect these changes.
1 parent ad8a001 commit f830646

File tree

4 files changed

+23
-24
lines changed

4 files changed

+23
-24
lines changed

django_ledger/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
default_app_config = 'django_ledger.apps.DjangoLedgerConfig'
77

88
"""Django Ledger"""
9-
__version__ = '0.7.5.2'
9+
__version__ = '0.7.6'
1010
__license__ = 'GPLv3 License'
1111

1212
__author__ = 'Miguel Sanda'

django_ledger/views/unit.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
PDFReportMixIn)
2323

2424

25-
class EntityUnitModelModelViewQuerySetMixIn:
25+
class EntityUnitModelModelBaseView(DjangoLedgerSecurityMixIn):
2626
queryset = None
2727

2828
def get_queryset(self):
@@ -34,7 +34,7 @@ def get_queryset(self):
3434
return super().get_queryset()
3535

3636

37-
class EntityUnitModelListView(DjangoLedgerSecurityMixIn, EntityUnitModelModelViewQuerySetMixIn, ListView):
37+
class EntityUnitModelListView(EntityUnitModelModelBaseView, ListView):
3838
template_name = 'django_ledger/unit/unit_list.html'
3939
PAGE_TITLE = _('Entity Unit List')
4040
extra_context = {
@@ -45,7 +45,7 @@ class EntityUnitModelListView(DjangoLedgerSecurityMixIn, EntityUnitModelModelVie
4545
context_object_name = 'unit_list'
4646

4747

48-
class EntityUnitModelDetailView(DjangoLedgerSecurityMixIn, EntityUnitModelModelViewQuerySetMixIn, DetailView):
48+
class EntityUnitModelDetailView(EntityUnitModelModelBaseView, DetailView):
4949
template_name = 'django_ledger/unit/unit_detail.html'
5050
PAGE_TITLE = _('Entity Unit Detail')
5151
slug_url_kwarg = 'unit_slug'
@@ -57,7 +57,7 @@ class EntityUnitModelDetailView(DjangoLedgerSecurityMixIn, EntityUnitModelModelV
5757
context_object_name = 'unit'
5858

5959

60-
class EntityUnitModelCreateView(DjangoLedgerSecurityMixIn, EntityUnitModelModelViewQuerySetMixIn, CreateView):
60+
class EntityUnitModelCreateView(EntityUnitModelModelBaseView, CreateView):
6161
template_name = 'django_ledger/unit/unit_create.html'
6262
PAGE_TITLE = _('Entity Unit Create')
6363
extra_context = {
@@ -88,7 +88,7 @@ def form_valid(self, form):
8888
return HttpResponseRedirect(self.get_success_url())
8989

9090

91-
class EntityUnitUpdateView(DjangoLedgerSecurityMixIn, EntityUnitModelModelViewQuerySetMixIn, UpdateView):
91+
class EntityUnitUpdateView(EntityUnitModelModelBaseView, UpdateView):
9292
template_name = 'django_ledger/unit/unit_update.html'
9393
PAGE_TITLE = _('Entity Unit Update')
9494
slug_url_kwarg = 'unit_slug'
@@ -123,7 +123,7 @@ def form_valid(self, form):
123123

124124

125125
# BALANCE SHEET.....
126-
class BaseEntityUnitModelBalanceSheetView(DjangoLedgerSecurityMixIn, RedirectView):
126+
class BaseEntityUnitModelBalanceSheetView(EntityUnitModelModelBaseView, RedirectView):
127127

128128
def get_redirect_url(self, *args, **kwargs):
129129
year = get_localdate().year
@@ -135,8 +135,7 @@ def get_redirect_url(self, *args, **kwargs):
135135
})
136136

137137

138-
class FiscalYearEntityUnitModelBalanceSheetView(DjangoLedgerSecurityMixIn,
139-
EntityUnitModelModelViewQuerySetMixIn,
138+
class FiscalYearEntityUnitModelBalanceSheetView(EntityUnitModelModelBaseView,
140139
BaseDateNavigationUrlMixIn,
141140
EntityUnitMixIn,
142141
YearlyReportMixIn,
@@ -176,7 +175,7 @@ class DateEntityUnitModelBalanceSheetView(MonthlyEntityUnitModelBalanceSheetView
176175

177176

178177
# INCOME STATEMENT....
179-
class BaseEntityUnitModelIncomeStatementView(DjangoLedgerSecurityMixIn, RedirectView):
178+
class BaseEntityUnitModelIncomeStatementView(EntityUnitModelModelBaseView, RedirectView):
180179

181180
def get_redirect_url(self, *args, **kwargs):
182181
year = get_localdate().year
@@ -188,8 +187,7 @@ def get_redirect_url(self, *args, **kwargs):
188187
})
189188

190189

191-
class FiscalYearEntityUnitModelIncomeStatementView(DjangoLedgerSecurityMixIn,
192-
EntityUnitModelModelViewQuerySetMixIn,
190+
class FiscalYearEntityUnitModelIncomeStatementView(EntityUnitModelModelBaseView,
193191
BaseDateNavigationUrlMixIn,
194192
EntityUnitMixIn,
195193
YearlyReportMixIn,
@@ -225,7 +223,7 @@ class DateIncomeStatementView(FiscalYearIncomeStatementView, DateReportMixIn):
225223

226224

227225
# CASHFLOW STATEMENT
228-
class BaseEntityUnitModelCashFlowStatementView(DjangoLedgerSecurityMixIn, RedirectView):
226+
class BaseEntityUnitModelCashFlowStatementView(EntityUnitModelModelBaseView, RedirectView):
229227

230228
def get_redirect_url(self, *args, **kwargs):
231229
year = get_localdate().year
@@ -237,8 +235,7 @@ def get_redirect_url(self, *args, **kwargs):
237235
})
238236

239237

240-
class FiscalYearEntityUnitModelCashFlowStatementView(DjangoLedgerSecurityMixIn,
241-
EntityUnitModelModelViewQuerySetMixIn,
238+
class FiscalYearEntityUnitModelCashFlowStatementView(EntityUnitModelModelBaseView,
242239
BaseDateNavigationUrlMixIn,
243240
EntityUnitMixIn,
244241
YearlyReportMixIn,

django_ledger/views/vendor.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from django_ledger.views.mixins import DjangoLedgerSecurityMixIn
1717

1818

19-
class VendorModelModelViewQuerySetMixIn:
19+
class VendorModelModelBaseView(DjangoLedgerSecurityMixIn):
2020
queryset = None
2121

2222
def get_queryset(self):
@@ -28,7 +28,7 @@ def get_queryset(self):
2828
return super().get_queryset()
2929

3030

31-
class VendorModelListView(DjangoLedgerSecurityMixIn, VendorModelModelViewQuerySetMixIn, ListView):
31+
class VendorModelListView(VendorModelModelBaseView, ListView):
3232
template_name = 'django_ledger/vendor/vendor_list.html'
3333
context_object_name = 'vendors'
3434
PAGE_TITLE = _('Vendor List')
@@ -38,8 +38,14 @@ class VendorModelListView(DjangoLedgerSecurityMixIn, VendorModelModelViewQuerySe
3838
'header_subtitle_icon': 'bi:person-lines-fill'
3939
}
4040

41+
def get_context_data(self, **kwargs):
42+
context = super().get_context_data(**kwargs)
43+
entity_model: EntityModel = self.get_authorized_entity_instance()
44+
context['header_subtitle'] = entity_model.name
45+
return context
46+
4147

42-
class VendorModelCreateView(DjangoLedgerSecurityMixIn, VendorModelModelViewQuerySetMixIn, CreateView):
48+
class VendorModelCreateView(VendorModelModelBaseView, CreateView):
4349
template_name = 'django_ledger/vendor/vendor_create.html'
4450
PAGE_TITLE = _('Create New Vendor')
4551
form_class = VendorModelForm
@@ -66,7 +72,7 @@ def form_valid(self, form):
6672
return super().form_valid(form)
6773

6874

69-
class VendorModelUpdateView(DjangoLedgerSecurityMixIn, VendorModelModelViewQuerySetMixIn, UpdateView):
75+
class VendorModelUpdateView(VendorModelModelBaseView, UpdateView):
7076
template_name = 'django_ledger/vendor/vendor_update.html'
7177
PAGE_TITLE = _('Vendor Update')
7278
context_object_name = 'vendor'
@@ -89,7 +95,3 @@ def get_success_url(self):
8995
kwargs={
9096
'entity_slug': self.kwargs['entity_slug']
9197
})
92-
93-
def form_valid(self, form):
94-
form.save()
95-
return super().form_valid(form)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "django-ledger"
3-
version = "0.7.5.2"
3+
version = "0.7.6"
44
readme = "README.md"
55
requires-python = ">=3.10"
66
description = "Double entry accounting system built on the Django Web Framework."

0 commit comments

Comments
 (0)