diff --git a/contracts/management/commands/import_old_contracts.py b/contracts/management/commands/import_old_contracts.py index 36a3b9e416f290261f1736fd9e15495626ec8f46..55dfbf6674dc590579b067dc08098656e72b01dd 100644 --- a/contracts/management/commands/import_old_contracts.py +++ b/contracts/management/commands/import_old_contracts.py @@ -74,11 +74,12 @@ class Command(BaseCommand): help="Purge all previous contracts, types and filing areas before the import.", ) - def use_issue(self, contract, name: str) -> None: - try: - issue = ContractIssue.objects.get(name=name) - except ContractIssue.DoesNotExist: + def use_issue(self, name: str) -> None: + issue = ContractIssue.objects.filter(name=name).first() + + if issue is None: issue = ContractIssue(name=name) + issue.save() return issue @@ -385,7 +386,7 @@ class Command(BaseCommand): contract.notes += ( f"Nepojmenovaná smluvní strana, zdrojová data: {signing_party}\n" ) - issues.append(self.use_issue(contract, "Špatně pojmenovaná smluvní strana")) + issues.append(self.use_issue("Špatně pojmenovaná smluvní strana")) if self.verbosity >= 2: self.stderr.write( @@ -473,9 +474,7 @@ class Command(BaseCommand): issue_count += 1 contract.notes += f"Špatně zadané sídlo smluvní strany: {signing_party_value}\n" issues.append( - self.use_issue( - contract, "Špatně zadané sídlo smluvní strany" - ) + self.use_issue("Špatně zadané sídlo smluvní strany") ) if self.verbosity >= 2: @@ -537,7 +536,7 @@ class Command(BaseCommand): f"Špatně zadané IČO smluvní strany: {signing_party_value}\n" ) issues.append( - self.use_issue(contract, "Špatně zadané IČO smluvní strany") + self.use_issue("Špatně zadané IČO smluvní strany") ) if self.verbosity >= 2: @@ -555,9 +554,7 @@ class Command(BaseCommand): issue_count += 1 contract.notes += f"Špatně zadaný zástupce smluvní strany: {signing_party_value}\n" issues.append( - self.use_issue( - contract, "Špatně zadaný zástupce smluvní strany" - ) + self.use_issue("Špatně zadaný zástupce smluvní strany") ) if self.verbosity >= 2: @@ -583,10 +580,7 @@ class Command(BaseCommand): issue_count += 1 contract.notes += f"Špatně zadaná funkce zástupce smluvní strany: {signing_party['funkce']}\n" issues.append( - self.use_issue( - contract, - "Špatně zadaná funkce zástupce smluvní strany", - ) + self.use_issue("Špatně zadaná funkce zástupce smluvní strany") ) if self.verbosity >= 2: @@ -606,10 +600,7 @@ class Command(BaseCommand): issue_count += 1 contract.notes += f"Špatně zadaný jeden ze zástupců smluvní strany: {representative_name}\n" issues.append( - self.use_issue( - contract, - "Špatně zadaný zástupce smluvní strany", - ) + self.use_issue("Špatně zadaný zástupce smluvní strany") ) if self.verbosity >= 2: @@ -633,9 +624,7 @@ class Command(BaseCommand): issue_count += 1 contract.notes += f"Špatně zadaný orgán smluvní strany: {signing_party_value}\n" issues.append( - self.use_issue( - contract, "Špatně zadaný orgán smluvní strany" - ) + self.use_issue("Špatně zadaný orgán smluvní strany") ) if self.verbosity >= 2: @@ -783,7 +772,7 @@ class Command(BaseCommand): observed_issues_count += 1 contract.notes += f"Špatně zadaný začátek platnosti: {value}\n" issues.append( - self.use_issue(contract, "Špatně zadaný začátek platnosti") + self.use_issue("Špatně zadaný začátek platnosti") ) if self.verbosity >= 2: @@ -802,7 +791,7 @@ class Command(BaseCommand): observed_issues_count += 1 contract.notes += f"Špatně zadaný konec platnosti: {value}\n" issues.append( - self.use_issue(contract, "Špatně zadaný konec platnosti") + self.use_issue("Špatně zadaný konec platnosti") ) if self.verbosity >= 2: @@ -839,7 +828,7 @@ class Command(BaseCommand): elif not isinstance(value, list): observed_issues_count += 1 contract.notes += f"Špatně zadané typy: {value}\n" - issues.append(self.use_issue(contract, "Špatně zadané typy")) + issues.append(self.use_issue("Špatně zadané typy")) if self.verbosity >= 2: self.stderr.write( @@ -854,7 +843,7 @@ class Command(BaseCommand): if not isinstance(type_name, str): observed_issues_count += 1 contract.notes += f"Špatně zadaný typ: {type_name}\n" - issues.append(self.use_issue(contract, "Špatně zadaný typ")) + issues.append(self.use_issue("Špatně zadaný typ")) if self.verbosity >= 2: self.stderr.write( @@ -896,7 +885,7 @@ class Command(BaseCommand): else: observed_issues_count += 1 contract.notes += f"Neznámý stav: {value}\n" - issues.append(self.use_issue(contract, "Neznámý právní stav")) + issues.append(self.use_issue("Neznámý právní stav")) if self.verbosity >= 2: self.stderr.write( @@ -918,7 +907,7 @@ class Command(BaseCommand): f"Původní, špatně zadané náklady: {value}\n" ) issues.append( - self.use_issue(contract, "Špatně zadané náklady") + self.use_issue("Špatně zadané náklady") ) if self.verbosity >= 2: @@ -948,7 +937,7 @@ class Command(BaseCommand): observed_issues_count += 1 contract.notes += f"Původní, neropoznané náklady: {value}\n" issues.append( - self.use_issue(contract, "Špatně zadané náklady") + self.use_issue("Špatně zadané náklady") ) if self.verbosity >= 2: @@ -965,7 +954,7 @@ class Command(BaseCommand): elif value not in (None, "0"): observed_issues_count += 1 contract.notes += f"Původní, neropoznané náklady: {value}\n" - issues.append(self.use_issue(contract, "Špatně zadané náklady")) + issues.append(self.use_issue("Špatně zadané náklady")) if self.verbosity >= 2: self.stderr.write( @@ -991,7 +980,7 @@ class Command(BaseCommand): observed_issues_count += 1 contract.notes += f"Špatně zadaná spisovna: {value}\n" issues.append( - self.use_issue(contract, "Špatně zadaná spisovna") + self.use_issue("Špatně zadaná spisovna") ) if self.verbosity >= 2: @@ -1007,7 +996,7 @@ class Command(BaseCommand): f"Špatně zadané smluvní strany, nejsou seznam: {value}\n" ) issues.append( - self.use_issue(contract, "Špatně zadaný smluvní strany") + self.use_issue("Špatně zadaný smluvní strany") ) if self.verbosity >= 2: @@ -1026,7 +1015,7 @@ class Command(BaseCommand): f"Špatně zadaná smluvní strana: {signing_party}\n" ) issues.append( - self.use_issue(contract, "Špatně zadaná smluvní strana") + self.use_issue("Špatně zadaná smluvní strana") ) if self.verbosity >= 2: @@ -1062,7 +1051,7 @@ class Command(BaseCommand): if not isinstance(value, list): observed_issues_count += 1 contract.notes += f"Špatně zadané soubory.\n" - issues.append(self.use_issue(contract, "Špatně zadané soubory")) + issues.append(self.use_issue("Špatně zadané soubory")) if self.verbosity >= 2: self.stderr.write( @@ -1080,9 +1069,7 @@ class Command(BaseCommand): f"Špatně zadané informace o souboru: {file_data}.\n" ) issues.append( - self.use_issue( - contract, "Špatně zadané informace o souboru" - ) + self.use_issue("Špatně zadané informace o souboru") ) if self.verbosity >= 2: @@ -1104,7 +1091,7 @@ class Command(BaseCommand): observed_issues_count += 1 contract.notes += f"Špatně zadaný název souboru {file_key}: {file_value}.\n" issues.append( - self.use_issue(contract, "Neplatný název souboru") + self.use_issue("Neplatný název souboru") ) if self.verbosity >= 2: @@ -1124,7 +1111,7 @@ class Command(BaseCommand): f"Neexistující soubor: {file_value}.\n" ) issues.append( - self.use_issue(contract, "Neexistující soubor") + self.use_issue("Neexistující soubor") ) if self.verbosity >= 2: @@ -1215,9 +1202,6 @@ class Command(BaseCommand): for file in files: file.save() - for issue in issues: - issue.save() - contract.filing_area = filing_area contract.types.set(types) contract.issues.set(issues)