From c24faafd2d787180e8e03bcb2378b7fd54e56930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org> Date: Wed, 19 Jul 2023 23:15:49 +0900 Subject: [PATCH] delete to-be-approved notice --- contracts/admin.py | 91 +++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/contracts/admin.py b/contracts/admin.py index 80659a7..52dda10 100644 --- a/contracts/admin.py +++ b/contracts/admin.py @@ -314,6 +314,7 @@ class ContractAdmin( def save_model(self, request, obj, form, change): is_new = obj.created_by is None + print(is_new) # Need to generate primary keys first parent_save_response = super().save_model(request, obj, form, change) @@ -336,56 +337,56 @@ class ContractAdmin( from users.models import User - if is_new or obj.status != form.initial["status"]: - headers = { - "Authorization": f"Token {settings.NASTENKA_API_TOKEN}", - "Content-Type": "application/json", - } - - if obj.status == obj.StatusTypes.WORK_IN_PROGRESS: - try: - user = User.objects.filter(id=obj.created_by.id).first() - - notice = requests.post( - settings.NASTENKA_API_URL, - data=json.dumps( - { - "name": f"Smlouva vrácena k úpravě - {obj.name}", - "description": ( - obj.summary - if obj.summary not in (None, "") - else "Bez popisu." - ), - "contract_id": obj.id, - "sso_ids": [user.sso_id], - } - ), + headers = { + "Authorization": f"Token {settings.NASTENKA_API_TOKEN}", + "Content-Type": "application/json", + } + + if not is_new and obj.status == obj.StatusTypes.WORK_IN_PROGRESS: + try: + user = User.objects.filter(id=obj.created_by.id).first() + + notice = requests.post( + settings.NASTENKA_API_URL, + data=json.dumps( + { + "name": f"Smlouva vrácena k úpravě - {obj.name}", + "description": ( + obj.summary + if obj.summary not in (None, "") + else "Bez popisu." + ), + "contract_id": obj.id, + "sso_ids": [user.sso_id], + } + ), + headers=headers, + ).raise_for_status() + + if obj.after_approval_nastenka_notice_id is not None: + requests.delete( + f"{settings.NASTENKA_API_URL}/{obj.after_approval_nastenka_notice_id}", headers=headers, ).raise_for_status() - if obj.after_approval_nastenka_notice_id is not None: - requests.delete( - f"{settings.NASTENKA_API_URL}/{obj.after_approval_nastenka_notice_id}", - headers=headers, - ).raise_for_status() - - obj.after_approval_nastenka_notice_id = None - obj.save() + obj.after_approval_nastenka_notice_id = None + obj.save() - if obj.to_be_approved_nastenka_notice_id is not None: - requests.delete( - f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}", - headers=headers, - ).raise_for_status() + if obj.to_be_approved_nastenka_notice_id is not None: + requests.delete( + f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}", + headers=headers, + ).raise_for_status() - obj.to_be_approved_nastenka_notice_id = None - obj.save() - except Exception as exception: - logger.error( - 'Failed to send out "contract returned for editing" Nástěnka notification: %s', - str(exception), - ) - elif obj.status == obj.StatusTypes.TO_BE_APPROVED: + obj.to_be_approved_nastenka_notice_id = None + obj.save() + except Exception as exception: + logger.error( + 'Failed to send out "contract returned for editing" Nástěnka notification: %s', + str(exception), + ) + elif is_new or obj.status != form.initial["status"]: + if obj.status == obj.StatusTypes.TO_BE_APPROVED: try: sso_ids = [] -- GitLab