diff --git a/inventory/models.py b/inventory/models.py index 047fa251..95a447e5 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -2554,6 +2554,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() ###################################### ###################################### @@ -2637,7 +2646,7 @@ class CustomGroup(models.Model): allowed_models=[], other_perms=[ "view_purchaseordermodel", - "can_view_financials", + ] ) ###################################### @@ -2658,6 +2667,7 @@ class CustomGroup(models.Model): "staff", "schedule", "activity", + "lead", "opportunity", "customer", "organization", @@ -2693,10 +2703,7 @@ class CustomGroup(models.Model): "carfinance", "notes", "tasks", - "activity", - "vendor", - "poitemsuploaded" - ], + "activity",], other_perms=[ "view_car", "view_carlocation", @@ -2704,6 +2711,7 @@ class CustomGroup(models.Model): "view_carcolors", "view_cartransfer", "view_saleorder", + ], ) self.set_permissions( @@ -2715,6 +2723,7 @@ class CustomGroup(models.Model): "itemmodel", "invoicemodel", "vendormodel", + "journalentrymodel", "purchaseordermodel", "estimatemodel", @@ -2972,22 +2981,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/signals.py b/inventory/signals.py index c66e1acd..393dd871 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -963,7 +963,11 @@ def create_po_fulfilled_notification(sender,instance,created,**kwargs): @receiver(post_save, sender=models.Car) def car_created_notification(sender, instance, created, **kwargs): if created: +<<<<<<< HEAD + accountants = models.CustomGroup.objects.filter(dealer=instance.dealer,name__in=["Manager","Accountant","Inventory"]).first().group.user_set.all().distinct() +======= accountants = models.CustomGroup.objects.filter(dealer=instance.dealer,name__in=["Manager","Accountant"]).first().group.user_set.all().distinct() +>>>>>>> b23e84331fbb3a8ce0814a04b68cd3380b93d3a2 for accountant in accountants: models.Notification.objects.create( user=accountant, @@ -972,6 +976,9 @@ def car_created_notification(sender, instance, created, **kwargs): View """, ) + + + @receiver(post_save, sender=PurchaseOrderModel) def po_fullfilled_notification(sender, instance, created, **kwargs): if instance.is_fulfilled(): diff --git a/inventory/views.py b/inventory/views.py index 27db9df7..d15e4db2 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -8678,9 +8678,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): @@ -10052,7 +10051,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 @@