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