From 4998888172bc3c3ef4019fa6c62dc5d39cda40f8 Mon Sep 17 00:00:00 2001 From: ismail Date: Sun, 7 Sep 2025 15:32:26 +0300 Subject: [PATCH] update the coa filter --- inventory/templatetags/custom_filters.py | 16 +++++++++--- inventory/views.py | 26 ++++++------------- .../chart_of_accounts/includes/coa_card.html | 7 ++--- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/inventory/templatetags/custom_filters.py b/inventory/templatetags/custom_filters.py index ed69ae5c..fb73e6d3 100644 --- a/inventory/templatetags/custom_filters.py +++ b/inventory/templatetags/custom_filters.py @@ -21,8 +21,8 @@ def is_negative(value): try: return float(value) < 0 except (ValueError, TypeError): - return False - + return False + @register.filter def get_percentage(value, total): try: @@ -498,7 +498,7 @@ def bill_item_formset_table(context, item_formset): form.fields["item_model"].queryset = form.fields["item_model"].queryset.exclude( item_role="product" ) - for item in item_formset: + for item in item_formset: if item: print(item.fields["item_model"]) item.initial["quantity"] = item.instance.po_quantity if item.instance.po_quantity else item.instance.quantity @@ -710,3 +710,13 @@ def invoice_item_formset_table(context, itemtxs_formset): "total_amount__sum": context["total_amount__sum"], "itemtxs_formset": itemtxs_formset, } + + +@register.filter +def filter_by_status(queryset, status): + if status == "active": + return queryset.filter(active=True) + elif status == "locked": + return queryset.filter(locked=True) + else: + return queryset diff --git a/inventory/views.py b/inventory/views.py index ec3759f3..dbbc7399 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -4360,7 +4360,7 @@ class AccountListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): def get_queryset(self): query = self.request.GET.get("q") dealer = get_user_type(self.request) - coa = ChartOfAccountModel.objects.get(entity=dealer.entity,pk=self.kwargs["coa_pk"]) or self.request.entity.get_default_coa() + coa = ChartOfAccountModel.objects.get(entity=dealer.entity,pk=self.kwargs["coa_pk"]) or self.request.entity.get_default_coa() accounts = coa.get_coa_accounts() return apply_search_filters(accounts, query) def get_context_data(self, **kwargs): @@ -4411,18 +4411,8 @@ class AccountCreateView( permission_required = ["django_ledger.add_accountmodel"] def form_valid(self, form): - dealer = get_user_type(self.request) - instance = form.save(commit=False) + dealer = get_user_type(self.request) coa = ChartOfAccountModel.objects.get(entity=dealer.entity,pk=self.kwargs["coa_pk"]) or self.request.entity.get_default_coa() - # coa.insert_account(account_model=instance) - account = coa.entity.create_account( - coa_model=coa, - code=instance.code, - name=instance.name, - role=instance.role, - balance_type=_(instance.balance_type), - active=True, - ) form.instance.entity_model = dealer.entity form.instance.coa_model = coa form.instance.depth = 0 @@ -4450,13 +4440,13 @@ class AccountCreateView( def get_context_data(self,**kwargs): context = super().get_context_data(**kwargs) context["url_kwargs"] = self.kwargs - coa_pk = context["url_kwargs"]["coa_pk"] + coa_pk = context["url_kwargs"]["coa_pk"] try: context["coa_model"] = ChartOfAccountModel.objects.get(entity=self.request.entity,pk=coa_pk) except Exception: context["coa_model"] = self.request.entity.get_default_coa() return context - + class AccountDetailView(LoginRequiredMixin, PermissionRequiredMixin, DetailView): """ Represents the detailed view for an account with additional context data related to account @@ -4555,11 +4545,11 @@ class AccountUpdateView( form.fields["_ref_node_id"].widget = HiddenInput() form.fields["_position"].widget = HiddenInput() return form - + def form_valid(self, form): form.instance.coa_model = ChartOfAccountModel.objects.get(pk=self.kwargs['coa_pk']) or self.request.entity.get_default_coa() return super().form_valid(form) - + def get_success_url(self): return reverse_lazy( "account_list", kwargs={"dealer_slug": self.kwargs["dealer_slug"],"coa_pk":self.kwargs["coa_pk"]} @@ -11454,7 +11444,7 @@ def staff_password_reset_view(request, dealer_slug, user_pk): if request.method == 'POST': form = forms.CustomSetPasswordForm(staff.user, request.POST) - + if form.is_valid(): print(form.cleaned_data['new_password1']) print(form.cleaned_data['new_password2']) @@ -11703,7 +11693,7 @@ def ticket_update(request, ticket_id): # permission_required = 'django_ledger.view_chartofaccountmodel' class ChartOfAccountModelCreateView(ChartOfAccountModelCreateViewBase): template_name = 'chart_of_accounts/coa_create.html' - permission_required = 'django_ledger.add_chartofaccountmodel' + permission_required = 'django_ledger.add_chartofaccountmodel' class ChartOfAccountModelListView(ChartOfAccountModelListViewBase): template_name = 'chart_of_accounts/coa_list.html' permission_required = 'django_ledger.view_chartofaccountmodel' diff --git a/templates/chart_of_accounts/includes/coa_card.html b/templates/chart_of_accounts/includes/coa_card.html index 6240d177..c3f079f0 100644 --- a/templates/chart_of_accounts/includes/coa_card.html +++ b/templates/chart_of_accounts/includes/coa_card.html @@ -1,4 +1,5 @@ {% load django_ledger %} +{% load custom_filters %} {% load i18n %} {% now "Y" as current_year %}
@@ -47,15 +48,15 @@
{% trans 'Total Accounts' %}: - {{ coa_model.accountmodel_total__count }} + {{ coa_model.accountmodel_set.all|length }}
{% trans 'Active Accounts' %}: - {{ coa_model.accountmodel_active__count }} + {{ coa_model.accountmodel_set|filter_by_status:'active'|length }}
{% trans 'Locked Accounts' %}: - {{ coa_model.accountmodel_locked__count }} + {{ coa_model.accountmodel_set|filter_by_status:'locked'|length }}