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

alter contract types

parent 0747467d
No related branches found
No related tags found
No related merge requests found
Pipeline #12385 passed
......@@ -10,7 +10,7 @@ from rangefilter.filters import DateRangeFilter
from shared.admin import FieldsetInlineOrder, MarkdownxGuardedModelAdmin
from .forms import ContractAdminForm, ContractFileAdminForm, SigneeAdminForm
from .forms import ContractAdminForm, ContractFileAdminForm, SigneeAdminForm, AtLeastOneRequiredInlineFormSet
from .models import (
Contract,
Contractee,
......@@ -111,7 +111,8 @@ class ContractFileAdmin(
class ContracteeSignatureRepresentativeInline(NestedStackedInline):
model = ContracteeSignatureRepresentative
extra = 0
extra = 1
formset = AtLeastOneRequiredInlineFormSet
class ContracteeSignatureInline(NestedStackedInline):
......
from django import forms
from django.core.exceptions import ValidationError
from django.forms.models import BaseInlineFormSet
from webpack_loader.loader import WebpackLoader
from .models import Contract, ContracteeSignature, SigneeSignature
class AtLeastOneRequiredInlineFormSet(BaseInlineFormSet):
def clean(self):
"""Check that at least one item has been entered."""
super().clean()
if any(self.errors):
return
if not any(
cleaned_data and not cleaned_data.get('DELETE', False)
for cleaned_data in self.cleaned_data
):
raise forms.ValidationError("Vyžadován aspoň jeden záznam.")
class ContractAdminForm(forms.ModelForm):
def clean(self):
clean_data = super().clean()
......
# Generated by Django 4.1.4 on 2023-04-16 07:36
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contracts', '0044_alter_contract_tender_url'),
]
operations = [
migrations.AlterField(
model_name='contracteesignaturerepresentative',
name='function',
field=models.CharField(default='k vyplnění', max_length=256, verbose_name='Funkce'),
preserve_default=False,
),
]
# Generated by Django 4.1.4 on 2023-04-16 07:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contracts', '0045_alter_contracteesignaturerepresentative_function'),
]
operations = [
migrations.AlterField(
model_name='contract',
name='paper_form_state',
field=models.CharField(choices=[('on_the_way', 'Na cestě'), ('sent', 'Odeslaný'), ('mailbox', 'Ve schránce'), ('to_shred', 'Ke skartaci'), ('shredded', 'Skartovaný'), ('stored', 'Uložený'), ('lost', 'Ztracený')], max_length=10, verbose_name='Stav fyzického dokumentu'),
),
]
......@@ -540,10 +540,15 @@ class Contract(NameStrMixin, models.Model):
NO = "no", "Neveřejná"
class PaperFormStates(models.TextChoices):
ON_THE_WAY = "on_the_way", "Na cestě"
SENT = "sent", "Odeslaný"
STORED = "stored", "Uložený"
MAILBOX = "mailbox", "Ve schránce"
TO_SHRED = "to_shred", "Ke skartaci"
SHREDDED = "shredded", "Skartovaný"
STORED = "stored", "Uložený"
LOST = "lost", "Ztracený"
legal_state = models.CharField(
......@@ -568,7 +573,7 @@ class Contract(NameStrMixin, models.Model):
) # WARNING: public status dependent
paper_form_state = models.CharField(
max_length=8,
max_length=10,
choices=PaperFormStates.choices,
verbose_name="Stav fyzického dokumentu",
)
......@@ -950,8 +955,6 @@ class ContracteeSignatureRepresentative(RepresentativeMixin, models.Model):
function = models.CharField(
max_length=256,
blank=True,
null=True,
verbose_name="Funkce",
)
......
......@@ -12,7 +12,7 @@
"@tailwindcss/typography": "^0.5.9",
"alertifyjs": "^1.13.1",
"css-loader": "^6.7.3",
"jquery": "^3.6.3",
"jquery": "^3.6.4",
"style-loader": "^3.3.1",
"tailwindcss": "^3.2.4",
"tippy.js": "^6.3.7",
......
......@@ -15,7 +15,7 @@
"@tailwindcss/typography": "^0.5.9",
"alertifyjs": "^1.13.1",
"css-loader": "^6.7.3",
"jquery": "^3.6.3",
"jquery": "^3.6.4",
"style-loader": "^3.3.1",
"tailwindcss": "^3.2.4",
"tippy.js": "^6.3.7",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment