From 4e97f0523b03c17f304aebc0c33eb28cc628a112 Mon Sep 17 00:00:00 2001 From: Faheedkhan Date: Sun, 6 Jul 2025 13:45:48 +0300 Subject: [PATCH 1/4] update --- inventory/models.py | 36 +++++++++++------------- inventory/views.py | 11 ++++---- templates/ledger/ledger/ledger_list.html | 10 +++++++ 3 files changed, 31 insertions(+), 26 deletions(-) diff --git a/inventory/models.py b/inventory/models.py index 2ba6e7cc..16be4d52 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -2550,6 +2550,15 @@ class CustomGroup(models.Model): pass def set_default_permissions(self): + Permission.objects.get_or_create(name="Can approve estimate",codename="can_approve_estimatemodel",content_type=ContentType.objects.get_for_model(EstimateModel)) + Permission.objects.get_or_create(name="Can approve bill",codename="can_approve_billmodel",content_type=ContentType.objects.get_for_model(BillModel)) + + Permission.objects.get_or_create(name="Can view inventory",codename="can_view_inventory",content_type=ContentType.objects.get_for_model(Car)) + Permission.objects.get_or_create(name="Can view sales",codename="can_view_sales",content_type=ContentType.objects.get_for_model(EstimateModel)) + Permission.objects.get_or_create(name="Can view crm",codename="can_view_crm",content_type=ContentType.objects.get_for_model(Lead)) + Permission.objects.get_or_create(name="Can view financials",codename="can_view_financials",content_type=ContentType.objects.get_for_model(AccountModel)) + Permission.objects.get_or_create(name="Can view reports",codename="can_view_reports",content_type=ContentType.objects.get_for_model(LedgerModel)) + self.clear_permissions() ###################################### ###################################### @@ -2599,6 +2608,8 @@ class CustomGroup(models.Model): "vendormodel", "journalentrymodel", "purchaseordermodel", + "ledgermodel", + "transactionmodel" ], other_perms=["can_approve_estimatemodel","can_approve_billmodel","can_view_inventory","can_view_sales","can_view_crm","can_view_financials","can_view_reports"], @@ -2689,6 +2700,7 @@ class CustomGroup(models.Model): "view_carcolors", "view_cartransfer", "view_saleorder", + ], ) self.set_permissions( @@ -2706,7 +2718,9 @@ class CustomGroup(models.Model): "estimatemodel", "customermodel", "vendormodel", - "TransactionModel" + "ledgermodel", + "transactionmodel" + ], other_perms=["view_customermodel", "view_estimatemodel","can_view_inventory","can_view_sales","can_view_crm","can_view_financials","can_view_reports"], ) @@ -2956,22 +2970,4 @@ class ExtraInfo(models.Model): verbose_name_plural = "Extra Info" def __str__(self): - return f"ExtraInfo for {self.content_object} ({self.content_type})" - - @classmethod - def get_sale_orders(cls, staff=None,is_dealer=False): - if not staff and not is_dealer: - return [] - if is_dealer: - qs = ExtraInfo.objects.filter( - content_type=ContentType.objects.get_for_model(EstimateModel), - related_content_type=ContentType.objects.get_for_model(Staff), - ) - else: - qs = ExtraInfo.objects.filter( - content_type=ContentType.objects.get_for_model(EstimateModel), - related_content_type=ContentType.objects.get_for_model(Staff), - related_object_id=staff.pk, - ) - - return [x.content_object.sale_orders.first for x in qs] + return f"ExtraInfo for {self.content_object} ({self.content_type})" \ No newline at end of file diff --git a/inventory/views.py b/inventory/views.py index 641c7f9e..8c7004a3 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -8638,7 +8638,7 @@ class LedgerModelListView(LoginRequiredMixin,PermissionRequiredMixin, ListView, show_visible = False allow_empty = True paginate_by = 30 - permission_required = "ledger.view_ledgermodel" + permission_required = "django_ledger.view_ledgermodel" def get_queryset(self): qs = super().get_queryset() @@ -8683,7 +8683,7 @@ class LedgerModelDetailView(LoginRequiredMixin, PermissionRequiredMixin,DetailVi model = LedgerModel context_object_name = "ledger" template_name = "ledger/ledger/ledger_detail.html" - permission_required = "ledger.view_ledgermodel" + permission_required = "django_ledger.view_ledgermodel" class LedgerModelCreateView(LedgerModelCreateViewBase): @@ -8712,9 +8712,8 @@ class LedgerModelCreateView(LedgerModelCreateViewBase): ) def form_valid(self, form): - dealer = get_user_type(self.request) - instance = form.save(commit=False) - instance.entity = dealer.entity + dealer = get_user_type(self.request) + form.field["entity"] = dealer.entity return super().form_valid(form) def get_success_url(self): @@ -8808,7 +8807,7 @@ class JournalEntryListView(LoginRequiredMixin,PermissionRequiredMixin, ListView) template_name = "ledger/journal_entry/journal_entry_list.html" permission_required = ["django_ledger.view_journalentrymodel"] ordering = ["-timestamp"] - permission_required = "ledger.view_ledger" + permission_required = "django_ledger.view_ledger" def get_queryset(self): qs = super().get_queryset() diff --git a/templates/ledger/ledger/ledger_list.html b/templates/ledger/ledger/ledger_list.html index 256f0139..bb670c8e 100644 --- a/templates/ledger/ledger/ledger_list.html +++ b/templates/ledger/ledger/ledger_list.html @@ -10,7 +10,9 @@

{% trans "Ledger" %}

+ {% if perms.django_ledger.add_ledgermodel%} {% trans 'Create Ledger' %} + {% endif %}
@@ -32,14 +34,19 @@ -- 2.39.5 From b66e1dd0ed8d4a5734a182df7949cb7e951cb9b8 Mon Sep 17 00:00:00 2001 From: Faheedkhan Date: Sun, 6 Jul 2025 13:55:12 +0300 Subject: [PATCH 2/4] update --- templates/ledger/ledger/ledger_list.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/ledger/ledger/ledger_list.html b/templates/ledger/ledger/ledger_list.html index e595b5a5..118a388b 100644 --- a/templates/ledger/ledger/ledger_list.html +++ b/templates/ledger/ledger/ledger_list.html @@ -10,7 +10,9 @@

{% trans "Ledger" %}

+ {% if perms.django_ledger.add_ledgermodel %} {% trans 'Create Ledger' %} + {% endif %}
{% if ledger.invoicemodel %} + {% if perms.django_ledger.view_invoicemodel%} {{ ledger.get_wrapped_model_instance }} + {% endif %} {% elif ledger.billmodel %} + {% if perms.django_ledger.view_billmodel %} {{ ledger.get_wrapped_model_instance }} + {% endif %} {% else %} {{ ledger.name }} {% endif %} + {% if perms.django_ledger.view_journalentrymodel %} @@ -48,6 +55,7 @@ {{ _('Journal Entries') }} + {% endif %} {{ ledger.created |date }} @@ -79,6 +87,7 @@
-- 2.39.5 From b33d928bccbc244be428f432f52f9135cceb0256 Mon Sep 17 00:00:00 2001 From: Faheedkhan Date: Mon, 7 Jul 2025 13:58:55 +0300 Subject: [PATCH 3/4] update --- inventory/models.py | 8 +++++--- inventory/views.py | 1 - templates/bill/bill_detail.html | 4 ++++ templates/bill/includes/card_bill.html | 4 ++-- templates/crm/leads/lead_detail.html | 2 +- templates/ledger/bank_accounts/bank_account_detail.html | 4 ++++ templates/ledger/coa_accounts/account_detail.html | 8 +++++++- templates/ledger/coa_accounts/account_list.html | 4 ++++ 8 files changed, 27 insertions(+), 8 deletions(-) diff --git a/inventory/models.py b/inventory/models.py index 9a04991f..96459291 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -2662,11 +2662,12 @@ class CustomGroup(models.Model): "staff", "schedule", "activity", + "lead", "opportunity", "customer", "organization", "notes", - "taska", + "tasks", "activity", ], other_perms=[ @@ -2692,7 +2693,8 @@ class CustomGroup(models.Model): "carfinance", "notes", "tasks", - "activity",], + "activity", + "vendor"], other_perms=[ "view_car", "view_carlocation", @@ -2713,11 +2715,11 @@ class CustomGroup(models.Model): "itemmodel", "invoicemodel", "vendormodel", + "journalentrymodel", "purchaseordermodel", "estimatemodel", "customermodel", - "vendormodel", "ledgermodel", "transactionmodel" ], diff --git a/inventory/views.py b/inventory/views.py index cf2dd08a..d79db58d 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -10234,7 +10234,6 @@ class BillModelActionForceMigrateView(BaseBillActionView): @login_required -@permission_required("inventory.view_poitemsuploaded", raise_exception=True) def view_items_inventory(request, dealer_slug, entity_slug, po_pk): get_object_or_404(models.Dealer, slug=dealer_slug) po = PurchaseOrderModel.objects.get(pk=po_pk) diff --git a/templates/bill/bill_detail.html b/templates/bill/bill_detail.html index 56e78a9e..0ecab405 100644 --- a/templates/bill/bill_detail.html +++ b/templates/bill/bill_detail.html @@ -184,10 +184,12 @@ @@ -231,9 +233,11 @@
{% trans 'Bill Notes' %}
+ {% if perms.django_ledger.change_billmodel%}
{% include 'bill/includes/card_markdown.html' with style='card_1' title='' notes_html=bill.notes_html %}
+ {% endif %} diff --git a/templates/bill/includes/card_bill.html b/templates/bill/includes/card_bill.html index c50c4a24..bb799424 100644 --- a/templates/bill/includes/card_bill.html +++ b/templates/bill/includes/card_bill.html @@ -207,7 +207,7 @@ {% if perms.django_ledger.change_billmodel%} {% trans 'Update' %} - + {% if bill.can_draft %} {% endif %} diff --git a/templates/ledger/bank_accounts/bank_account_detail.html b/templates/ledger/bank_accounts/bank_account_detail.html index 75d68280..3513577b 100644 --- a/templates/ledger/bank_accounts/bank_account_detail.html +++ b/templates/ledger/bank_accounts/bank_account_detail.html @@ -52,16 +52,20 @@ {% endfor %} @@ -135,17 +137,21 @@ diff --git a/templates/ledger/coa_accounts/account_list.html b/templates/ledger/coa_accounts/account_list.html index bc688690..6923a48f 100644 --- a/templates/ledger/coa_accounts/account_list.html +++ b/templates/ledger/coa_accounts/account_list.html @@ -11,7 +11,9 @@

{% trans "Accounts" %}

+ {% if perms.django_ledger.create_chartofaccountmodel %} {% trans 'New Account' %} + {% endif %}
@@ -105,10 +107,12 @@
{% if bill_item.po_model_id %} + {% if perms.django_ledger.view_purchaseordermodel%} {% trans 'View PO' %} + {% endif %} {% endif %}
+ {% if perms.django_ledger.view_transactionmodel%} + {% endif %}