Skip to content
Snippets Groups Projects
Commit c230a766 authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

squash migrations, finish single contract view for the most part

parent 31ad3ebc
Branches
No related tags found
No related merge requests found
# Generated by Django 4.1.4 on 2023-02-16 03:36
# Generated by Django 4.1.4 on 2023-02-20 11:46
import colorfield.fields
import contracts.models
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django_countries.fields
import markdownx.models
from django.conf import settings
from django.db import migrations, models
import shared.models
class Migration(migrations.Migration):
initial = True
dependencies = [
......@@ -18,669 +20,211 @@ class Migration(migrations.Migration):
operations = [
migrations.CreateModel(
name="Contract",
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"),
),
(
"all_parties_sign_date",
models.DateField(
blank=True, null=True, verbose_name="Datum podpisu všech stran"
),
),
(
"valid_start_date",
models.DateField(verbose_name="Začátek účinnosti"),
),
("valid_end_date", models.DateField(verbose_name="Konec 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=[("yes", "Veřejná"), ("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,
help_text="Obsah není veřejně přístupný.",
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"
),
),
(
"notes",
markdownx.models.MarkdownxField(
blank=True,
help_text="Poznámky jsou viditelné pro všechny, kteří mohou smlouvu spravovat.",
null=True,
verbose_name="Poznámky",
),
),
(
"summary",
markdownx.models.MarkdownxField(
blank=True,
help_text="Obsah není veřejně přístupný.",
null=True,
verbose_name="Rekapitulace",
),
),
(
"expected_cost_total",
models.IntegerField(
blank=True, null=True, verbose_name="Očekáváná celková cena"
),
),
(
"expected_cost_year",
models.IntegerField(
blank=True, null=True, verbose_name="Očekáváná cena za rok"
),
),
(
"expected_cost_month",
models.IntegerField(
blank=True, null=True, verbose_name="Očekáváná cena za měsíc"
),
),
(
"expected_cost_hour",
models.IntegerField(
blank=True, null=True, verbose_name="Očekáváná cena za hodinu"
),
),
(
"agreement_url",
models.URLField(
blank=True,
max_length=256,
null=True,
verbose_name="Odkaz na schválení",
),
),
(
"created_by",
models.ForeignKey(
blank=True,
help_text="Informace není veřejně přístupná. Pokud vytváříš novou smlouvu, budeš to ty.",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="uploaded_contracts",
to=settings.AUTH_USER_MODEL,
verbose_name="Vytvořena uživatelem",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('all_parties_sign_date', models.DateField(blank=True, null=True, verbose_name='Datum podpisu všech stran')),
('valid_start_date', models.DateField(verbose_name='Začátek účinnosti')),
('valid_end_date', models.DateField(verbose_name='Konec 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=[('yes', 'Veřejná'), ('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á'), ('lost', 'Ztracená')], max_length=8, verbose_name='Stav papírové formy')),
('publishing_rejection_comment', models.CharField(blank=True, help_text='Obsah není veřejně přístupný.', 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í')),
('agreement_url', models.URLField(blank=True, max_length=256, null=True, verbose_name='Odkaz na schválení')),
('identifier', models.CharField(max_length=128, verbose_name='Identifikační číslo')),
('notes', markdownx.models.MarkdownxField(blank=True, help_text='Poznámky jsou viditelné pro všechny, kteří mohou smlouvu spravovat.', null=True, verbose_name='Poznámky')),
('summary', markdownx.models.MarkdownxField(blank=True, help_text='Obsah není veřejně přístupný.', null=True, verbose_name='Rekapitulace')),
('created_by', models.ForeignKey(blank=True, help_text='Informace není veřejně přístupná. Pokud vytváříš novou smlouvu, budeš to ty.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='uploaded_contracts', to=settings.AUTH_USER_MODEL, verbose_name='Vytvořena uživatelem')),
],
options={
"verbose_name": "Smlouva",
"verbose_name_plural": "Smlouvy",
'verbose_name': 'Smlouva',
'verbose_name_plural': 'Smlouvy',
},
),
migrations.CreateModel(
name="Contractee",
name='Contractee',
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"name",
models.CharField(
default="Česká pirátská strana",
max_length=256,
verbose_name="Jméno",
),
),
(
"address_street_with_number",
models.CharField(
default="Na Moráni 360/3",
max_length=256,
verbose_name="Ulice, č.p.",
),
),
(
"address_district",
models.CharField(
default="Praha 2", max_length=256, verbose_name="Obec"
),
),
(
"address_zip",
models.CharField(
default="128 00", max_length=16, verbose_name="PSČ"
),
),
(
"address_country",
django_countries.fields.CountryField(
default="CZ", max_length=2, verbose_name="Země"
),
),
(
"ico_number",
models.CharField(
blank=True,
default="71339698",
max_length=16,
null=True,
verbose_name="IČO",
),
),
(
"department",
models.CharField(
blank=True,
max_length=128,
null=True,
verbose_name="Organizační složka",
),
),
(
"color",
models.CharField(
blank=True, max_length=6, null=True, verbose_name="Barva"
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(default='Česká pirátská strana', max_length=256, verbose_name='Jméno')),
('address_street_with_number', models.CharField(default='Na Moráni 360/3', max_length=256, verbose_name='Ulice, č.p.')),
('address_district', models.CharField(default='Praha 2', max_length=256, verbose_name='Obec')),
('address_zip', models.CharField(default='128 00', max_length=16, verbose_name='PSČ')),
('address_country', django_countries.fields.CountryField(default='CZ', max_length=2, verbose_name='Země')),
('ico_number', models.CharField(blank=True, default='71339698', max_length=16, null=True, verbose_name='IČO')),
('department', models.CharField(blank=True, max_length=128, null=True, verbose_name='Organizační složka')),
('color', colorfield.fields.ColorField(blank=True, default=None, image_field=None, max_length=18, null=True, samples=None, verbose_name='Barva')),
],
options={
"verbose_name": "Naše smluvní strana",
"verbose_name_plural": "Naše smluvní strany",
'verbose_name': 'Naše smluvní strana',
'verbose_name_plural': 'Naše smluvní strany',
},
),
migrations.CreateModel(
name="ContractFilingArea",
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"),
),
('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",
'verbose_name': 'Spisovna',
'verbose_name_plural': 'Spisovny',
},
bases=(shared.models.NameStrMixin, models.Model),
),
migrations.CreateModel(
name="ContractIssue",
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")),
('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 smlouvami",
'verbose_name': 'Problém se smlouvou',
'verbose_name_plural': 'Problémy se smlouvami',
},
bases=(shared.models.NameStrMixin, models.Model),
),
migrations.CreateModel(
name="ContractSubtype",
name='ContractType',
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")),
('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",
'verbose_name': 'Typ smlouvy',
'verbose_name_plural': 'Typy smlouvy',
},
bases=(shared.models.NameStrMixin, models.Model),
),
migrations.CreateModel(
name="Signee",
name='Signee',
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(
help_text="Důležité označit správně! Pokud není osoba právnická, zveřejňujeme pouze obec a zemi.",
verbose_name="Je právnická osoba",
),
),
(
"address_street_with_number",
models.CharField(
help_text="Viditelné pouze u právnických osob.",
max_length=256,
verbose_name="Ulice, č.p.",
),
),
(
"address_district",
models.CharField(max_length=256, verbose_name="Obec"),
),
(
"address_zip",
models.CharField(
help_text="Viditelné pouze u právnických osob.",
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í"
),
),
(
"department",
models.CharField(
blank=True,
max_length=128,
null=True,
verbose_name="Organizační složka",
),
),
(
"color",
models.CharField(
blank=True, max_length=6, null=True, verbose_name="Barva"
),
),
('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(help_text='Důležité označit správně! Pokud není osoba právnická, zveřejňujeme pouze obec a zemi.', verbose_name='Je právnická osoba')),
('address_street_with_number', models.CharField(help_text='Viditelné pouze u právnických osob.', max_length=256, verbose_name='Ulice, č.p.')),
('address_district', models.CharField(max_length=256, verbose_name='Obec')),
('address_zip', models.CharField(help_text='Viditelné pouze u právnických osob.', 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í')),
('department', models.CharField(blank=True, max_length=128, null=True, verbose_name='Organizační složka')),
('color', colorfield.fields.ColorField(blank=True, default=None, image_field=None, max_length=18, null=True, samples=None, verbose_name='Barva')),
],
options={
"verbose_name": "Jiná smluvní strana",
"verbose_name_plural": "Ostatní smluvní strany",
'verbose_name': 'Jiná smluvní strana',
'verbose_name_plural': 'Ostatní smluvní strany',
},
),
migrations.CreateModel(
name="SigneeSignature",
name='SigneeSignature',
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("date", models.DateField(verbose_name="Datum podpisu")),
(
"contract",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="signee_signatures",
to="contracts.contract",
verbose_name="Podpisy jiných smluvních stran",
),
),
(
"signee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="signatures",
to="contracts.signee",
verbose_name="Smluvní strana",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField(verbose_name='Datum podpisu')),
('contract', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='signee_signatures', to='contracts.contract', verbose_name='Podpisy jiných smluvních stran')),
('signee', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='signatures', to='contracts.signee', verbose_name='Smluvní strana')),
],
options={
"verbose_name": "Podpis jiné smluvní strany",
"verbose_name_plural": "Podpisy ostatních smluvních stran",
'verbose_name': 'Podpis jiné smluvní strany',
'verbose_name_plural': 'Podpisy ostatních smluvních stran',
},
),
migrations.CreateModel(
name="SigneeRepresentative",
name='SigneeRepresentative',
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")),
(
"function",
models.CharField(
blank=True, max_length=256, null=True, verbose_name="Funkce"
),
),
(
"role",
models.CharField(
blank=True, max_length=256, null=True, verbose_name="Role"
),
),
(
"signee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="representatives",
to="contracts.signee",
verbose_name="Smluvní strana",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=256, verbose_name='Jméno')),
('function', models.CharField(blank=True, max_length=256, null=True, verbose_name='Funkce')),
('role', models.CharField(blank=True, max_length=256, null=True, verbose_name='Role')),
('signee', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='representatives', to='contracts.signee', verbose_name='Smluvní strana')),
],
options={
"verbose_name": "Zástupce",
"verbose_name_plural": "Zástupci",
'verbose_name': 'Zástupce',
'verbose_name_plural': 'Zástupci',
},
bases=(contracts.models.RepresentativeMixin, models.Model),
),
migrations.CreateModel(
name="ContractIntent",
name='ContractIntent',
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"url",
models.URLField(
blank=True, max_length=256, null=True, verbose_name="Odkaz"
),
),
(
"contract",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="intents",
to="contracts.contract",
verbose_name="Smlouva",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=128, verbose_name='Jméno')),
('url', models.URLField(max_length=256, verbose_name='Odkaz')),
('contract', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='intents', to='contracts.contract', verbose_name='Smlouva')),
],
options={
"verbose_name": "Záměr",
"verbose_name_plural": "Záměry",
'verbose_name': 'Záměr',
'verbose_name_plural': 'Záměry',
},
bases=(shared.models.NameStrMixin, models.Model),
),
migrations.CreateModel(
name="ContractFile",
name='ContractFile',
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"name",
models.CharField(
blank=True, max_length=128, null=True, verbose_name="Jméno"
),
),
(
"is_public",
models.BooleanField(default=False, verbose_name="Veřejně dostupný"),
),
("file", models.FileField(upload_to="", verbose_name="Soubor")),
(
"contract",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="files",
to="contracts.contract",
verbose_name="Soubory",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(blank=True, max_length=128, null=True, verbose_name='Jméno')),
('is_public', models.BooleanField(default=False, verbose_name='Veřejně dostupný')),
('file', models.FileField(upload_to='', verbose_name='Soubor')),
('contract', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='contracts.contract', verbose_name='Soubory')),
],
options={
"verbose_name": "Soubor",
"verbose_name_plural": "Soubory",
'verbose_name': 'Soubor',
'verbose_name_plural': 'Soubory',
},
bases=(shared.models.NameStrMixin, models.Model),
),
migrations.CreateModel(
name="ContracteeSignature",
name='ContracteeSignature',
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("date", models.DateField(verbose_name="Datum podpisu")),
(
"contract",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="contractee_signatures",
to="contracts.contract",
verbose_name="Podpisy našich smluvních stran",
),
),
(
"contractee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="signatures",
to="contracts.contractee",
verbose_name="Smluvní strana",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField(verbose_name='Datum podpisu')),
('contract', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contractee_signatures', to='contracts.contract', verbose_name='Podpisy našich smluvních stran')),
('contractee', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='signatures', to='contracts.contractee', verbose_name='Smluvní strana')),
],
options={
"verbose_name": "Podpis naší smluvní strany",
"verbose_name_plural": "Podpisy našich smluvních stran",
'verbose_name': 'Podpis naší smluvní strany',
'verbose_name_plural': 'Podpisy našich smluvních stran',
},
),
migrations.CreateModel(
name="ContracteeRepresentative",
name='ContracteeRepresentative',
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")),
(
"function",
models.CharField(
blank=True, max_length=256, null=True, verbose_name="Funkce"
),
),
(
"role",
models.CharField(
blank=True, max_length=256, null=True, verbose_name="Role"
),
),
(
"contractee",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="representatives",
to="contracts.contractee",
verbose_name="Smluvní strana",
),
),
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=256, verbose_name='Jméno')),
('function', models.CharField(blank=True, max_length=256, null=True, verbose_name='Funkce')),
('role', models.CharField(blank=True, max_length=256, null=True, verbose_name='Role')),
('contractee', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='representatives', to='contracts.contractee', verbose_name='Smluvní strana')),
],
options={
"verbose_name": "Zástupce",
"verbose_name_plural": "Zástupci",
'verbose_name': 'Zástupce',
'verbose_name_plural': 'Zástupci',
},
bases=(contracts.models.RepresentativeMixin, models.Model),
),
migrations.AddField(
model_name="contract",
name="filing_area",
field=models.ForeignKey(
blank=True,
help_text="Obsah není veřejně přístupný.",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="filed_contracts",
to="contracts.contractfilingarea",
verbose_name="Spisovna",
),
model_name='contract',
name='filing_area',
field=models.ForeignKey(blank=True, help_text='Obsah není veřejně přístupný.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filed_contracts', to='contracts.contractfilingarea', verbose_name='Spisovna'),
),
migrations.AddField(
model_name="contract",
name="issues",
field=models.ManyToManyField(
blank=True, to="contracts.contractissue", verbose_name="Problémy"
),
model_name='contract',
name='issues',
field=models.ManyToManyField(blank=True, to='contracts.contractissue', verbose_name='Problémy'),
),
migrations.AddField(
model_name="contract",
name="primary_contract",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="subcontracts",
to="contracts.contract",
verbose_name="Hlavní smlouva",
),
model_name='contract',
name='primary_contract',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='subcontracts', to='contracts.contract', verbose_name='Primární smlouva'),
),
migrations.AddField(
model_name="contract",
name="public_status_set_by",
field=models.ForeignKey(
blank=True,
help_text="Obsah není veřejně přístupný.",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="public_status_altered_contracts",
to=settings.AUTH_USER_MODEL,
verbose_name="Zveřejněno / nezveřejněno uživatelem",
),
model_name='contract',
name='public_status_set_by',
field=models.ForeignKey(blank=True, help_text='Obsah není veřejně přístupný.', null=True, on_delete=django.db.models.deletion.SET_NULL, 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.ManyToManyField(
blank=True, to="contracts.contractsubtype", verbose_name="Podtypy"
),
model_name='contract',
name='types',
field=models.ManyToManyField(to='contracts.contracttype', verbose_name='Typ'),
),
]
# Generated by Django 4.1.4 on 2023-02-17 03:00
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("contracts", "0001_initial"),
]
operations = [
migrations.RemoveField(
model_name="contract",
name="expected_cost_hour",
),
migrations.RemoveField(
model_name="contract",
name="expected_cost_month",
),
migrations.RemoveField(
model_name="contract",
name="expected_cost_total",
),
migrations.RemoveField(
model_name="contract",
name="expected_cost_year",
),
]
# Generated by Django 4.1.4 on 2023-02-19 12:40
import colorfield.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contracts', '0002_remove_contract_expected_cost_hour_and_more'),
]
operations = [
migrations.RenameField(
model_name='contract',
old_name='subtype',
new_name='subtypes',
),
migrations.AlterField(
model_name='contractee',
name='color',
field=colorfield.fields.ColorField(blank=True, default=None, image_field=None, max_length=18, null=True, samples=None, verbose_name='Barva'),
),
migrations.AlterField(
model_name='signee',
name='color',
field=colorfield.fields.ColorField(blank=True, default=None, image_field=None, max_length=18, null=True, samples=None, verbose_name='Barva'),
),
]
# Generated by Django 4.1.4 on 2023-02-19 13:08
from django.db import migrations, models
import django.db.models.deletion
import shared.models
class Migration(migrations.Migration):
dependencies = [
('contracts', '0003_rename_subtype_contract_subtypes_and_more'),
]
operations = [
migrations.CreateModel(
name='ContractType',
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': 'Typ smlouvy',
'verbose_name_plural': 'Typy smlouvy',
},
bases=(shared.models.NameStrMixin, models.Model),
),
migrations.RemoveField(
model_name='contract',
name='subtypes',
),
migrations.AlterField(
model_name='contract',
name='primary_contract',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='subcontracts', to='contracts.contract', verbose_name='Primární smlouva'),
),
migrations.RemoveField(
model_name='contract',
name='type',
),
migrations.DeleteModel(
name='ContractSubtype',
),
migrations.AddField(
model_name='contract',
name='type',
field=models.ManyToManyField(to='contracts.contracttype', verbose_name='Typ'),
),
]
# Generated by Django 4.1.4 on 2023-02-19 13:09
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contracts', '0004_contracttype_remove_contract_subtypes_and_more'),
]
operations = [
migrations.RenameField(
model_name='contract',
old_name='type',
new_name='types',
),
]
# Generated by Django 4.1.4 on 2023-02-19 13:13
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contracts', '0005_rename_type_contract_types'),
]
operations = [
migrations.RemoveField(
model_name='contract',
name='contains_nda',
),
]
......@@ -549,11 +549,14 @@ class SigneeSignature(models.Model):
return result
class ContractIntent(models.Model):
class ContractIntent(NameStrMixin, models.Model):
name = models.CharField(
max_length=128,
verbose_name="Jméno",
)
url = models.URLField(
max_length=256,
blank=True,
null=True,
verbose_name="Odkaz",
)
......@@ -567,6 +570,3 @@ class ContractIntent(models.Model):
class Meta:
verbose_name = "Záměr"
verbose_name_plural = "Záměry"
def __str__(self) -> str:
return self.url
......@@ -11,8 +11,7 @@
<td>Právní stav</td>
<td>Účinná od</td>
<td>Platná do</td>
<td>Naše podpisy</td>
<td>Cizí podpisy</td>
<td>Podepsána s</td>
</tr>
</thead>
<tbody>
......@@ -32,18 +31,8 @@
</ul>
</td>
<td>{{ contract.get_legal_state_display }}</td>
<td>{{ contract.valid_start_date }}</td>
<td>{{ contract.valid_end_date }}</td>
<td>
<ul class="flex flex-wrap gap-1.5">
{% for signature in contract.contractee_signatures.all %}
<li
class="p-1.5 rounded-sm whitespace-nowrap cursor-pointer {% if not signature.signee.color %}bg-gray-200 duration-100 hover:bg-gray-300{% endif %}"
{% if signature.signee.color %}style="background-color:{{ signature.signee.color }}"{% endif %}
>{{ signature.contractee.name }}</li>
{% endfor %}
</ul>
</td>
<td class="whitespace-nowrap">{{ contract.valid_start_date }}</td>
<td class="whitespace-nowrap">{{ contract.valid_end_date }}</td>
<td>
<ul class="flex flex-wrap gap-1.5">
{% for signature in contract.signee_signatures.all %}
......
......@@ -18,6 +18,14 @@
</ul>
</td>
</tr>
<tr>
<td class="w-1/5 !p-2.5">Začátek účinnosti</td>
<td class="w-4/5 !p-2.5">{{ contract.valid_start_date }}</td>
</tr>
<tr>
<td class="w-1/5 !p-2.5">Konec platnosti</td>
<td class="w-4/5 !p-2.5">{{ contract.valid_end_date }}</td>
</tr>
<tr>
<td class="w-1/5 !p-2.5">Právní stav</td>
<td class="w-4/5 !p-2.5">{{ contract.get_legal_state_display }}</td>
......@@ -52,6 +60,27 @@
{% endif %}
</td>
</tr>
<tr>
<td class="w-1/5 !p-2.5">Záměry</td>
<td class="w-4/5 !p-2.5">
{% with contract.intents.all as intents %}
{% if intents|length != 0 %}
<ul class="flex gap-2">
{% for intent in intents %}
<li class="flex">
<a
class="p-1.5 rounded-sm text-ellipsis bg-gray-200 duration-100 hover:bg-gray-300 hover:no-underline"
href="{{ intent.url }}"
><i class="ico--link mr-2"></i>{{ intent.name }}</a>
</li>
{% endfor %}
</ul>
{% else %}
<span class="text-grey-200">Žádné</span>
{% endif %}
{% endwith %}
</td>
</tr>
<tr>
<td class="w-1/5 !p-2.5">Problémy</td>
<td class="w-4/5 !p-2.5">
......@@ -59,7 +88,7 @@
{% if issues|length != 0 %}
<ul class="flex gap-2">
{% for issue in issues %}
<li class="p-1.5 rounded-sm bg-grey-200">{{ issue.name }}</li>
<li class="p-1.5 rounded-sm bg-gray-200">{{ issue.name }}</li>
{% endfor %}
</ul>
{% else %}
......@@ -85,8 +114,9 @@
{% if files|length != 0 %}
<ul class="flex gap-2">
{% for file in files %}
<li class="p-1.5 rounded-sm bg-gray-200">
<li class="flex">
<a
class="p-1.5 rounded-sm bg-gray-200 duration-100 hover:bg-gray-300 hover:no-underline"
href="{{ file.file.url }}"
><i class="ico--attachment mr-2"></i>{{ file.name }}</a>
</li>
......@@ -103,18 +133,24 @@
<h2 class="text-xl font-bold mb-5"><i class="ico--pencil mr-3"></i>Podpisy</h2>
<h3 class="text-lg font-bold mb-5">Naší smluvní strany</h3>
<h3 class="text-lg font-bold mb-4">Naší smluvní strany</h3>
{% with contract.contractee_signatures.all as signatures %}
{% if signatures|length != 0 %}
<ul class="mb-5">
<ul class="mb-5 grid grid-cols-3 gap-2">
{% for signature in signatures %}
<li class="py-2 {% if not forloop.last %}border-b border-grey-200{% endif %}">
<address>
<strong>{{ signature.contractee.name }}</strong>
{% if signature.contractee.department %}
- {{ signature.contractee.department }}
{% endif %}<br>
<li class="p-3 border border-gray-300 rounded-md">
<address class="mb-3">
<div class="mb-1">
<a
class="inline-block p-1.5 mb-1 rounded-sm whitespace-nowrap cursor-pointer not-italic hover:no-underline bg-gray-200 duration-100 hover:bg-gray-300"
>
<strong>{{ signature.contractee.name }}</strong>
{% if signature.contractee.department %}
- {{ signature.contractee.department }}
{% endif %}
</a>
</div>
{{ signature.contractee.address_street_with_number }}<br>
{{ signature.contractee.address_zip }} {{ signature.contractee.address_district }}<br>
......@@ -124,6 +160,20 @@
IČO: {{ signature.contractee.ico_number }}<br>
{% endif %}
</address>
<div class="block mb-2">
<p class="block mb-2">
<strong>Zástupci:</strong>
</p>
<ul class="list-disc ml-6">
{% for representative in signature.contractee.representatives.all %}
<li>{{ representative.name }}, {{ representative.function }}</li>
{% endfor %}
</ul>
</div>
<p>
<strong>Datum podpisu:</strong> {{ signature.date }}
</p>
</li>
{% endfor %}
</ul>
......@@ -132,9 +182,62 @@
{% endif %}
{% endwith %}
<h3 class="text-lg font-bold mb-5">Ostatních smluvní stran</h3>
<h3 class="text-lg font-bold mb-5">Ostatních smluvních stran</h3>
<ul>
</ul>
{% with contract.signee_signatures.all as signatures %}
{% if signatures|length != 0 %}
<ul class="mb-5 grid grid-cols-3 gap-2">
{% for signature in signatures %}
<li class="p-3 border border-gray-300 rounded-md">
<address class="mb-3">
<div class="mb-1">
<a
class="inline-block p-1.5 mb-1 rounded-sm whitespace-nowrap cursor-pointer not-italic hover:no-underline bg-gray-200 duration-100 hover:bg-gray-300"
>
<strong>{{ signature.signee.name }}</strong>
{% if signature.signee.department %}
- {{ signature.signee.department }}
{% endif %}
</a>
</div>
{% if signee.is_legal_entity %}
{{ signature.signee.address_street_with_number }}<br>
{{ signature.signee.address_zip }} {{ signature.signee.address_district }}<br>
{{ signature.signee.get_address_country_display }}<br>
{% else %}
{{ signature.signee.address_district }}<br>
{% endif %}
{% if signature.signee.ico_number %}
IČO: {{ signature.signee.ico_number }}<br>
{% endif %}
{% if not signee.is_legal_entity %}
<span class="block mt-2">
<small class="font-thin">(Fyzická osoba, ukazujeme pouze obec.)</small><br>
</span>
{% endif %}
</address>
<div class="block mb-2">
<p class="block mb-2">
<strong>Zástupci:</strong>
</p>
<ul class="list-disc ml-6">
{% for representative in signature.signee.representatives.all %}
<li>{{ representative.name }}, {{ representative.function }}</li>
{% endfor %}
</ul>
</div>
<p>
<strong>Datum podpisu:</strong> {{ signature.date }}
</p>
</li>
{% endfor %}
</ul>
{% else %}
<div class="mb-5 text-grey-200">Žádné podpisy.</div>
{% endif %}
{% endwith %}
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment