diff --git a/inventory/mixins.py b/inventory/mixins.py index 474d679e..02f2dc52 100644 --- a/inventory/mixins.py +++ b/inventory/mixins.py @@ -84,3 +84,8 @@ class AuthorizedEntityMixin: user_model=dealer.entity.admin, authorized_superuser=self.get_superuser_authorization(), ) + def get_queryset(self): + dealer = get_object_or_404(models.Dealer,slug=self.kwargs["dealer_slug"]) + self.queryset = EntityModel.objects.for_user( + user_model=dealer.entity.admin).select_related('default_coa') + return super().get_queryset() diff --git a/inventory/templatetags/custom_filters.py b/inventory/templatetags/custom_filters.py index b5adad28..c4405acd 100644 --- a/inventory/templatetags/custom_filters.py +++ b/inventory/templatetags/custom_filters.py @@ -48,11 +48,13 @@ def attr(field, args): "ledger/reports/components/period_navigator.html", takes_context=True ) def period_navigation(context, base_url: str): - print(context, base_url) kwargs = dict() + dealer_slug = context["view"].kwargs["dealer_slug"] entity_slug = context["view"].kwargs["entity_slug"] + kwargs["dealer_slug"] = dealer_slug kwargs["entity_slug"] = entity_slug + if context["view"].kwargs.get("ledger_pk"): kwargs["ledger_pk"] = context["view"].kwargs.get("ledger_pk") @@ -86,6 +88,7 @@ def period_navigation(context, base_url: str): dt = get_localdate() KWARGS_CURRENT_MONTH = { + "dealer_slug": context["view"].kwargs["dealer_slug"], "entity_slug": context["view"].kwargs["entity_slug"], "year": dt.year, "month": dt.month, @@ -100,7 +103,7 @@ def period_navigation(context, base_url: str): if "coa_slug" in kwargs: KWARGS_CURRENT_MONTH["coa_slug"] = kwargs["coa_slug"] - ctx["current_month_url"] = reverse(f"{base_url}-month", kwargs=KWARGS_CURRENT_MONTH) + ctx["current_month_url"] = reverse(f"{base_url}-month" ,kwargs=KWARGS_CURRENT_MONTH) quarter_urls = list() ctx["quarter"] = context.get("quarter") diff --git a/inventory/urls.py b/inventory/urls.py index 40b5fdee..5360fdc4 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -940,54 +940,54 @@ urlpatterns = [ # BALANCE SHEET Reports... # Entities... path( - "entity//balance-sheet/", + "/entity//balance-sheet/", views.BaseBalanceSheetRedirectView.as_view(), name="entity-bs", ), path( - "entity//balance-sheet/year//", + "/entity//balance-sheet/year//", views.FiscalYearBalanceSheetViewBase.as_view(), name="entity-bs-year", ), path( - "entity//balance-sheet/quarter///", + "/entity//balance-sheet/quarter///", views.QuarterlyBalanceSheetView.as_view(), name="entity-bs-quarter", ), path( - "entity//balance-sheet/month///", + "/entity//balance-sheet/month///", views.MonthlyBalanceSheetView.as_view(), name="entity-bs-month", ), path( - "entity//balance-sheet/date////", + "/entity//balance-sheet/date////", views.DateBalanceSheetView.as_view(), name="entity-bs-date", ), # INCOME STATEMENT Reports ---- # Entity ..... path( - "entity//income-statement/", + "/entity//income-statement/", views.BaseIncomeStatementRedirectViewBase.as_view(), name="entity-ic", ), path( - "entity//income-statement/year//", + "/entity//income-statement/year//", views.FiscalYearIncomeStatementViewBase.as_view(), name="entity-ic-year", ), path( - "entity//income-statement/quarter///", + "/entity//income-statement/quarter///", views.QuarterlyIncomeStatementView.as_view(), name="entity-ic-quarter", ), path( - "entity//income-statement/month///", + "/entity//income-statement/month///", views.MonthlyIncomeStatementView.as_view(), name="entity-ic-month", ), path( - "entity//income-statement/date////", + "/entity//income-statement/date////", views.MonthlyIncomeStatementView.as_view(), name="entity-ic-date", ), @@ -1004,17 +1004,17 @@ urlpatterns = [ name="entity-cf-year", ), path( - "entity//cash-flow-statement/quarter///", + "/entity//cash-flow-statement/quarter///", views.QuarterlyCashFlowStatementView.as_view(), name="entity-cf-quarter", ), path( - "entity//cash-flow-statement/month///", + "/entity//cash-flow-statement/month///", views.MonthlyCashFlowStatementView.as_view(), name="entity-cf-month", ), path( - "entity//cash-flow-statement/date////", + "/entity//cash-flow-statement/date////", views.DateCashFlowStatementView.as_view(), name="entity-cf-date", ), diff --git a/inventory/views.py b/inventory/views.py index d9ece06e..96533139 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -7442,9 +7442,10 @@ class BaseBalanceSheetRedirectView(RedirectView): def get_redirect_url(self, *args, **kwargs): year = get_localdate().year + dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"]) return reverse( "entity-bs-year", - kwargs={"entity_slug": self.kwargs["entity_slug"], "year": year}, + kwargs={"dealer_slug": self.kwargs["dealer_slug"],"entity_slug": self.kwargs["entity_slug"], "year": year}, ) def get_login_url(self): @@ -7452,7 +7453,7 @@ class BaseBalanceSheetRedirectView(RedirectView): class FiscalYearBalanceSheetViewBase( - FiscalYearBalanceSheetView + AuthorizedEntityMixin,FiscalYearBalanceSheetView ): """ Defines a base view for the fiscal year balance sheet. @@ -7555,7 +7556,7 @@ class DateBalanceSheetView( class BaseIncomeStatementRedirectViewBase( - BaseIncomeStatementRedirectView + AuthorizedEntityMixin,BaseIncomeStatementRedirectView ): """ The BaseIncomeStatementRedirectViewBase class provides functionality for handling @@ -7574,9 +7575,9 @@ class BaseIncomeStatementRedirectViewBase( def get_redirect_url(self, *args, **kwargs): year = get_localdate().year - dealer = get_user_type(self.request) + dealer = get_object_or_404(models.Dealer, slug=kwargs["dealer_slug"]) return reverse( - "entity-ic-year", kwargs={"entity_slug": dealer.entity.slug, "year": year} + "entity-ic-year", kwargs={"dealer_slug": dealer.slug,"entity_slug": dealer.entity.slug, "year": year} ) def get_login_url(self): @@ -7584,7 +7585,7 @@ class BaseIncomeStatementRedirectViewBase( class FiscalYearIncomeStatementViewBase( - FiscalYearIncomeStatementView + AuthorizedEntityMixin,FiscalYearIncomeStatementView ): """ Represents a base view for fiscal year income statement. @@ -7704,8 +7705,8 @@ class BaseCashFlowStatementRedirectViewBase( """ def get_redirect_url(self, *args, **kwargs): - dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"]) year = get_localdate().year + dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"]) return reverse( "entity-cf-year", kwargs={"dealer_slug": dealer.slug,"entity_slug": dealer.entity.slug, "year": year} ) @@ -7741,8 +7742,6 @@ class FiscalYearCashFlowStatementViewBase( - - class QuarterlyCashFlowStatementView( FiscalYearCashFlowStatementViewBase, QuarterlyReportMixIn, ): diff --git a/templates/header.html b/templates/header.html index 93556f1b..98d859e8 100644 --- a/templates/header.html +++ b/templates/header.html @@ -306,10 +306,8 @@ {% trans 'Cash Flow'|capfirst %} - {% if request.user.is_authenticated and request.is_dealer %} - - {% elif request.user.is_authenticated and request.is_staff %} - + {% if request.user.is_authenticated %} + {% else %} {% endif %} @@ -317,10 +315,8 @@ {% trans 'Income Statement'|capfirst %} - {% if request.user.is_authenticated and request.is_dealer %} - - {% elif request.user.is_authenticated and request.is_staff %} - + {% if request.user.is_authenticated %} + {% else %} {% endif %}