diff --git a/src/ets/models.py b/src/ets/models.py index 70fbb028..a9b99333 100644 --- a/src/ets/models.py +++ b/src/ets/models.py @@ -1018,6 +1018,10 @@ def has_receive_permission(self, user): def has_dispatch_permission(self, user): return (not hasattr(user, 'person') or user.person.dispatch) and Waybill.dispatches(user).filter(pk=self.pk).exists() + + def has_delete_permission(self, user): + return (user.pk == self.dispatcher_person.pk or self.order.warehouse.compas.officers.filter(pk=user.pk).exists()) \ + and not self.transport_dispach_signed_date class LoadingDetail(models.Model): diff --git a/src/ets/templatetags/extra_tags.py b/src/ets/templatetags/extra_tags.py index 91e8c9b5..8830a03f 100644 --- a/src/ets/templatetags/extra_tags.py +++ b/src/ets/templatetags/extra_tags.py @@ -85,7 +85,7 @@ def waybill_delete(waybill, user, text=_("Delete"), redirect_to=''): return { 'text': text, 'url': "%s?%s" % (reverse('waybill_delete', kwargs={'waybill_pk': waybill.pk}), urlencode({'redirect_to': redirect_to})), - 'success': waybill.has_dispatch_permission(user), + 'success': waybill.has_delete_permission(user), 'dialog_question': _("Are you sure you want to delete this waybill?"), } diff --git a/src/ets/views.py b/src/ets/views.py index 833dff76..0d1096a4 100644 --- a/src/ets/views.py +++ b/src/ets/views.py @@ -210,7 +210,7 @@ def table_waybills(request, queryset=ets.models.Waybill.objects.all(), filtering "%s/%s" % (item.sent_compas and "D" or "-", item.receipt_sent_compas and "R" or "-", ), fill_link(reverse('waybill_delete', kwargs={'waybill_pk': item.pk}) \ - if item.has_dispatch_permission(request.user) else '', + if item.has_delete_permission(request.user) else '', _("Delete"), "delete_waybill"), ])