From c7d22fbc356102a3d1474de9b6a5df9e3df930f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Sun, 23 Apr 2023 23:11:08 +0200
Subject: [PATCH] normalization, files

---
 .../commands/import_old_contracts.py          | 61 +++++++++++++++++--
 1 file changed, 56 insertions(+), 5 deletions(-)

diff --git a/contracts/management/commands/import_old_contracts.py b/contracts/management/commands/import_old_contracts.py
index 74c4a69..6af1031 100644
--- a/contracts/management/commands/import_old_contracts.py
+++ b/contracts/management/commands/import_old_contracts.py
@@ -276,10 +276,38 @@ class Command(BaseCommand):
                 r"^(Předsednictvo krajského sdružení |Předsednictvo |Místní předsednictvo )",
                 ""
             ),
+            (
+                r"^Krajské předsednictvo ",
+                "Krajské sdružení "
+            ),
             (
                 r"ého kraje$",
                 "ý kraj"
-            )
+            ),
+            (
+                r"^Olomouc$",
+                "Místní sdružení Olomouc"
+            ),
+            (
+                r"^Olomoucký kraj$",
+                "Krajské sdružení Olomoucký kraj"
+            ),
+            (
+                r"^Pardubický kraj$",
+                "Krajské sdružení Pardubický kraj"
+            ),
+            (
+                r"^Jihočeský kraj$",
+                "Krajské sdružení Jihočeský kraj"
+            ),
+            (
+                r"^Královehradecký kraj$",
+                "Krajské sdružení Královehradecký kraj"
+            ),
+            (
+                r"^Pardubický kraj$",
+                "Krajské sdružení Pardubický kraj"
+            ),
         )
 
         for pattern in patterns:
@@ -584,7 +612,7 @@ class Command(BaseCommand):
                 signing_party_value = signing_party_value.strip()
 
             match signing_party_key:
-                case "sídlo":
+                case ["sídlo" | "bydliště"]:
                     if is_contractee:
                         continue
 
@@ -648,7 +676,7 @@ class Command(BaseCommand):
 
                         continue
 
-                    instance.ico_number = signing_party_value
+                    instance.ico_number = str(signing_party_value)
                 case "zástupce":
                     if not isinstance(signing_party_value, str|list):
                         issue_count += 1
@@ -787,7 +815,14 @@ class Command(BaseCommand):
         ).first()
 
         if existing_instance is not None:
-            instance = existing_instance
+            if existing_instance.ico_number is None and instance.ico_number is not None:
+                existing_instance.ico_number = instance.ico_number
+                existing_instance.save()
+                instance = existing_instance
+            elif existing_instance.ico_number == instance.ico_number or instance.ico_number is None:
+                instance = existing_instance
+            else:
+                instance.save()
         else:
             instance.save()
 
@@ -1019,7 +1054,6 @@ class Command(BaseCommand):
                                         f"Contract {slug} has an invalid filing area: {value}."
                                     )
                                 )
-
                 case "smluvní strany":
                     if not isinstance(value, list):
                         observed_issues_count += 1
@@ -1061,6 +1095,23 @@ class Command(BaseCommand):
                             contractees.append(instance)
                         else:
                             signees.append(instance)
+                case "soubory":
+                    if not isinstance(value, list):
+                        observed_issues_count += 1
+                        contract.notes += f"Špatně zadané soubory.\n"
+
+                        if self.verbosity >= 2:
+                            self.stderr.write(
+                                self.style.NOTICE(
+                                    f"Files for {slug} are not a list: {value}."
+                                )
+                            )
+
+                        continue
+
+                    for filename in value:
+                        if not isinstance(filename, str):
+                            
 
         if not is_already_imported:
             if contract.name in (None, "") or (
-- 
GitLab