From 8810269b2cc225160f2eb23d7c003fe7ddaa8876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1?= <git@imaniti.org> Date: Fri, 3 Feb 2023 13:50:20 +0900 Subject: [PATCH] fix related names, add migrations --- registry/settings/base.py | 1 + shared/migrations/0001_initial.py | 199 ++++++++++++++++++++++++++++++ shared/models.py | 5 +- 3 files changed, 204 insertions(+), 1 deletion(-) create mode 100644 shared/migrations/0001_initial.py diff --git a/registry/settings/base.py b/registry/settings/base.py index 815c3c1..45262c8 100644 --- a/registry/settings/base.py +++ b/registry/settings/base.py @@ -108,6 +108,7 @@ AUTH_PASSWORD_VALIDATORS = [ "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", }, ] +AUTH_USER_MODEL = "shared.User" # Internationalization diff --git a/shared/migrations/0001_initial.py b/shared/migrations/0001_initial.py new file mode 100644 index 0000000..cbeff1c --- /dev/null +++ b/shared/migrations/0001_initial.py @@ -0,0 +1,199 @@ +# Generated by Django 4.1.4 on 2023-02-03 04:50 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import django_countries.fields +import markdownx.models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('sso_id', models.CharField(error_messages={'unique': 'A user with that SSO ID already exists.'}, max_length=150, unique=True, verbose_name='SSO ID')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + ), + migrations.CreateModel( + name='Contract', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('type', models.CharField(choices=[('primary', 'Hlavní'), ('amendment', 'Dodatek'), ('framework_order', 'Objednávka u rámcové smlouvy')], default='primary', max_length=15, verbose_name='Typ')), + ('contains_nda', models.BooleanField(default=False, verbose_name='Obsahuje NDA')), + ('is_anonymized', models.BooleanField(default=False, verbose_name='Je anonymizovaná')), + ('external_signer_signature_date', models.DateField(verbose_name='Datum podpisu druhé strany')), + ('local_signer_signature_date', models.DateField(verbose_name='Datum podpisu naší strany')), + ('all_parties_sign_date', models.DateField(verbose_name='Datum podpisu všech stran')), + ('valid_start_date', models.DateField(verbose_name='Začátek účinnosti')), + ('valid_end_date', models.DateField(verbose_name='Začátek platnosti')), + ('legal_state', models.CharField(choices=[('valid', 'Platná'), ('effective', 'Účinná'), ('not_effective', 'Neúčinná'), ('invalid', 'Neplatná')], max_length=13, verbose_name='Stav právního ujednání')), + ('public_state', models.CharField(choices=[('unknown', 'Nová'), ('yes', 'Zveřejněná'), ('no', 'Neveřejná')], max_length=7, verbose_name='Veřejnost smlouvy')), + ('paper_form_state', models.CharField(choices=[('sent', 'Odeslaná'), ('stored', 'Uložená'), ('to_shred', 'Ke skartaci'), ('shredded', 'Skartovaná')], max_length=8, verbose_name='Stav papírové formy')), + ('publishing_rejection_comment', models.CharField(blank=True, max_length=65536, null=True, verbose_name='Důvod nezveřejnění')), + ('tender_url', models.URLField(blank=True, max_length=256, null=True, verbose_name='Odkaz na výběrové řízení')), + ('identifier', models.CharField(max_length=128, verbose_name='Identifikační číslo')), + ('summary', models.CharField(blank=True, max_length=65536, null=True, verbose_name='Rekapitulace')), + ('contract_file', models.FileField(upload_to='', verbose_name='Smlouva (PDF)')), + ('expected_cost_total', models.IntegerField(verbose_name='Očekáváná celková cena')), + ('expected_cost_year', models.IntegerField(verbose_name='Očekáváná cena za rok')), + ('expected_cost_month', models.IntegerField(verbose_name='Očekáváná cena za měsíc')), + ('expected_cost_hour', models.IntegerField(verbose_name='Očekáváná cena za hodinu')), + ('intent_url', models.URLField(blank=True, max_length=256, null=True, verbose_name='Odkaz na záměr')), + ('agreement_url', models.URLField(blank=True, max_length=256, null=True, verbose_name='Odkaz na schválení')), + ], + options={ + 'verbose_name': 'Smlouva', + 'verbose_name_plural': 'Smlouvy', + }, + ), + migrations.CreateModel( + name='ContractExternalSigner', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=256, verbose_name='Jméno')), + ('is_legal_entity', models.BooleanField(verbose_name='Je právnická osoba')), + ('address_street_with_number', models.CharField(max_length=256, verbose_name='Ulice, č.p.')), + ('address_district', models.CharField(max_length=256, verbose_name='Obec')), + ('address_zip', models.CharField(max_length=16, verbose_name='PSČ')), + ('address_country', django_countries.fields.CountryField(max_length=2, verbose_name='Země')), + ('ico_number', models.CharField(blank=True, max_length=16, null=True, verbose_name='IČO')), + ('date_of_birth', models.DateField(blank=True, null=True, verbose_name='Datum narození')), + ('representative_name', models.CharField(blank=True, max_length=256, null=True, verbose_name='Zástupce')), + ('representative_role', models.CharField(blank=True, max_length=256, null=True, verbose_name='Funkce zástupce')), + ('department', models.CharField(blank=True, max_length=128, null=True, verbose_name='Organizační složka')), + ], + options={ + 'verbose_name': 'Druhá smluvní strana', + 'verbose_name_plural': 'Druhé smluvní strany', + }, + ), + migrations.CreateModel( + name='ContractFilingArea', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=32, verbose_name='Jméno')), + ('person_responsible', models.CharField(max_length=256, verbose_name='Odpovědná osoba')), + ], + options={ + 'verbose_name': 'Spisovna', + 'verbose_name_plural': 'Spisovny', + }, + ), + migrations.CreateModel( + name='ContractIssue', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=32, verbose_name='Jméno')), + ], + options={ + 'verbose_name': 'Problém se smlouvou', + 'verbose_name_plural': 'Problémy se smlouvou', + }, + ), + migrations.CreateModel( + name='ContractLocalSigner', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=256, verbose_name='Jméno')), + ('address_street_with_number', models.CharField(max_length=256, verbose_name='Ulice, č.p.')), + ('address_district', models.CharField(max_length=256, verbose_name='Obec')), + ('address_zip', models.CharField(max_length=16, verbose_name='PSČ')), + ('address_country', django_countries.fields.CountryField(max_length=2, verbose_name='Země')), + ('ico_number', models.CharField(blank=True, max_length=16, null=True, verbose_name='IČO')), + ('color', models.CharField(max_length=6, verbose_name='Barva')), + ], + options={ + 'verbose_name': 'Naše smluvní strana', + 'verbose_name_plural': 'Naše smlouvní strany', + }, + ), + migrations.CreateModel( + name='ContractSubtype', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=32, verbose_name='Jméno')), + ], + options={ + 'verbose_name': 'Podtyp smlouvy', + 'verbose_name_plural': 'Podtypy smlouvy', + }, + ), + migrations.CreateModel( + name='ContractNote', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_date', models.DateTimeField(verbose_name='Datum vytvoření')), + ('content', markdownx.models.MarkdownxField(verbose_name='Obsah')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contract_notes', to=settings.AUTH_USER_MODEL, verbose_name='Autor')), + ('contract', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='shared.contract')), + ], + options={ + 'verbose_name': 'Poznámka ke smlouvě', + 'verbose_name_plural': 'Poznámky ke smlouvě', + }, + ), + migrations.AddField( + model_name='contract', + name='external_signer', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='shared.contractexternalsigner'), + ), + migrations.AddField( + model_name='contract', + name='filing_area', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='shared.contractfilingarea'), + ), + migrations.AddField( + model_name='contract', + name='issues', + field=models.ManyToManyField(to='shared.contractissue'), + ), + migrations.AddField( + model_name='contract', + name='local_signer', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='shared.contractlocalsigner'), + ), + migrations.AddField( + model_name='contract', + name='primary_contract', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='shared.contract', verbose_name='Hlavní smlouva'), + ), + migrations.AddField( + model_name='contract', + name='public_status_set_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='public_status_altered_contracts', to=settings.AUTH_USER_MODEL, verbose_name='Zveřejněno / nezveřejněno uživatelem'), + ), + migrations.AddField( + model_name='contract', + name='subtype', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='shared.contractsubtype', verbose_name='Podtyp'), + ), + migrations.AddField( + model_name='contract', + name='uploaded_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='uploaded_contracts', to=settings.AUTH_USER_MODEL, verbose_name='Nahráno uživatelem'), + ), + ] diff --git a/shared/models.py b/shared/models.py index 8612a55..55273bc 100644 --- a/shared/models.py +++ b/shared/models.py @@ -178,7 +178,7 @@ class Contract(models.Model): AMENDMENT = "amendment", "Dodatek" FRAMEWORK_ORDER = "framework_order", "Objednávka u rámcové smlouvy" - type_ = models.CharField( + type = models.CharField( max_length=15, choices=ContractTypes.choices, default=ContractTypes.PRIMARY, @@ -238,6 +238,7 @@ class Contract(models.Model): uploaded_by = models.ForeignKey( User, on_delete=models.CASCADE, + related_name="uploaded_contracts", verbose_name="Nahráno uživatelem", ) @@ -281,6 +282,7 @@ class Contract(models.Model): public_status_set_by = models.ForeignKey( User, on_delete=models.CASCADE, + related_name="public_status_altered_contracts", verbose_name="Zveřejněno / nezveřejněno uživatelem", ) @@ -385,6 +387,7 @@ class ContractNote(models.Model): author = models.ForeignKey( User, + related_name="contract_notes", on_delete=models.CASCADE, verbose_name="Autor", ) -- GitLab