diff --git a/contracts/forms.py b/contracts/forms.py index 4fc99582a554c80be4f06ed179e3f78821b808f3..5ed21fbfcbc1b79ba3219b33d10cf23f9fc21085 100644 --- a/contracts/forms.py +++ b/contracts/forms.py @@ -15,6 +15,13 @@ class ContractAdminForm(forms.ModelForm): "shared/admin_contract_form.js", ) + class Meta: + widgets = { + "summary": forms.Textarea(attrs={ + "rows": 2 + }), + } + class SigneeAdminForm(forms.ModelForm): class Media: @@ -46,7 +53,7 @@ for many_to_many_field in ( ): djhacker.formfield( many_to_many_field, - forms.ModelChoiceField, + forms.ModelMultipleChoiceField, widget=dal.autocomplete.ModelSelect2Multiple( url="contracts:select2_djhacker_contract_autocomplete" ) diff --git a/contracts/migrations/0005_alter_contract_summary.py b/contracts/migrations/0005_alter_contract_summary.py new file mode 100644 index 0000000000000000000000000000000000000000..b9561a4d82cec0241d37a85e5ad7abf4d05ce07a --- /dev/null +++ b/contracts/migrations/0005_alter_contract_summary.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.4 on 2023-02-24 07:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('contracts', '0004_alter_contract_approval_state'), + ] + + operations = [ + migrations.AlterField( + model_name='contract', + name='summary', + field=models.TextField(blank=True, max_length=256, null=True, verbose_name='Sumarizace obsahu smlouvy'), + ), + ] diff --git a/contracts/migrations/0006_alter_contract_approval_state_and_more.py b/contracts/migrations/0006_alter_contract_approval_state_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..161e5dc30390b4e3627773dbc529acc389e1df84 --- /dev/null +++ b/contracts/migrations/0006_alter_contract_approval_state_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 4.1.4 on 2023-02-24 08:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('contracts', '0005_alter_contract_summary'), + ] + + operations = [ + migrations.AlterField( + model_name='contract', + name='approval_state', + field=models.CharField(blank=True, choices=[('no', 'Neschválená'), ('yes', 'Schválená')], help_text='Může měnit jen schvalovatel. Pokud je smlouva veřejná, se stavem "Přijatá" se vypustí ven.', max_length=7, null=True, verbose_name='Stav schválení'), + ), + migrations.AlterField( + model_name='contract', + name='cost_amount', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='Náklady (Kč)'), + ), + migrations.AlterField( + model_name='contract', + name='paper_form_state', + field=models.CharField(choices=[('sent', 'Odeslaný'), ('stored', 'Uložený'), ('to_shred', 'Ke skartaci'), ('shredded', 'Skartovaný'), ('lost', 'Ztracený')], max_length=8, verbose_name='Stav fyzického dokumentu'), + ), + ] diff --git a/contracts/models.py b/contracts/models.py index b7f81793771176edf663e59289fa5e0d430bc759..08970ef9165bd96cb811d63b4460ac9d60107239 100644 --- a/contracts/models.py +++ b/contracts/models.py @@ -317,8 +317,8 @@ class Contract(models.Model): # BEGIN Approval fields class ApprovalStates(models.TextChoices): - NO = "no", "Odmítnutá" - YES = "yes", "Přijatá" + NO = "no", "Neschválená" + YES = "yes", "Schválená" approval_state = models.CharField( max_length=7, @@ -351,7 +351,7 @@ class Contract(models.Model): verbose_name="Typ", ) - summary = models.CharField( + summary = models.TextField( max_length=256, blank=True, null=True, @@ -378,11 +378,11 @@ class Contract(models.Model): NO = "no", "Neveřejná" class PaperFormStates(models.TextChoices): - SENT = "sent", "Odeslaná" - STORED = "stored", "Uložená" + SENT = "sent", "Odeslaný" + STORED = "stored", "Uložený" TO_SHRED = "to_shred", "Ke skartaci" - SHREDDED = "shredded", "Skartovaná" - LOST = "lost", "Ztracená" + SHREDDED = "shredded", "Skartovaný" + LOST = "lost", "Ztracený" legal_state = models.CharField( max_length=13, @@ -437,7 +437,7 @@ class Contract(models.Model): YEAR = "year", "Rok" TOTAL = "total", "Celkem" - cost_amount = models.IntegerField( + cost_amount = models.PositiveIntegerField( blank=True, null=True, verbose_name="Náklady (Kč)" diff --git a/contracts/templates/contracts/index.html b/contracts/templates/contracts/index.html index de9066177bdaf9cfb2258588607d0f5c526c8ea5..a9a20c147e20bf7df51bcbf60c274aac1d74fa4e 100644 --- a/contracts/templates/contracts/index.html +++ b/contracts/templates/contracts/index.html @@ -2,7 +2,12 @@ {% load subtract %} {% block content %} - <h1 class="head-alt-lg mb-10">{{ title }}</h1> + <div class="prose max-w-none mb-10"> + <p> + <strong>Magni cumque debitis illo molestiae vitae.</strong> Laudantium et nihil magni rem. Aliquid aperiam minima aspernatur repudiandae quidem. Voluptatem consequatur voluptas aperiam consequatur. Et et dolor libero ut in est voluptate. Libero <a href="#">beatae temporibus itaque</a> est. + Temporibus <i>voluptatum commodi delectus est</i>. Commodi et voluptatem dolor odit occaecati dolore aut. Qui dolor nihil excepturi id. Qui deleniti <i>cupiditate voluptatem aut</i> est dolores eum aliquid. Molestiae blanditiis reiciendis odio provident ipsam voluptas enim suscipit. + </p> + </div> <table class="table table-auto w-full table--striped table--bordered"> <thead> <tr> @@ -31,7 +36,7 @@ </ul> </td> <td> - <i class="{% if contract.legal_state == contract.PublicStates.YES.0 %}ico--checkmark{% else %}ico--cross{% endif %}"></i> + <i class="{% if contract.legal_state == contract.LegalStates.VALID %}ico--checkmark{% else %}ico--cross{% endif %}"></i> </td> <td class="whitespace-nowrap">{{ contract.valid_start_date }}</td> <td class="whitespace-nowrap">{{ contract.valid_end_date }}</td> diff --git a/contracts/templates/contracts/view_contract.html b/contracts/templates/contracts/view_contract.html index 94a06cef7452bff37e1218497e32cd45b33fa1d9..a0981050b8ea8674a09cd0e54723dd8f05fe3704 100644 --- a/contracts/templates/contracts/view_contract.html +++ b/contracts/templates/contracts/view_contract.html @@ -4,10 +4,13 @@ {% block content %} <h1 class="head-alt-lg mb-10">{{ contract.name }}</h1> - <h2 class="text-xl font-bold mb-5"><i class="ico--info mr-3"></i>Základní informace</h2> - <table class="table table-auto w-full table--striped table--bordered mb-10"> <tbody> + <tr> + <td colspan="2" class="text-lg font-bold"> + <i class="ico--info mr-3"></i>Základní informace + </td> + </tr> {% if contract.id_number %} <tr> <td class="w-1/5 !p-2.5">Identifikační číslo</td> @@ -40,7 +43,7 @@ </tr> {% endif %} <tr> - <td class="w-1/5 !p-2.5">Souhrn obsahu</td> + <td class="w-1/5 !p-2.5">Souhrn</td> <td class="w-4/5 !p-2.5">{{ contract.summary }}</td> </tr> <tr> @@ -127,7 +130,7 @@ <td class="w-1/5 !p-2.5">Náklady</td> <td class="w-4/5 !p-2.5"> {{ contract.cost_amount }} Kč - {% if contract.cost_unit != contract.CostUnits.TOTAL.0 %} + {% if contract.cost_unit != contract.CostUnits.TOTAL %} / {{ contract.get_cost_unit_display }} {% else %} celkem @@ -238,12 +241,12 @@ <div class="mb-1"> {{ signature.signee.get_entity_type_display }} - {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON.0 %} + {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON %} <span class="text-gray-300">(zobrazujeme pouze obec)</span> - {% elif %} + {% endif %} </div> - {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON.0 %} + {% if signature.signee.entity_type == signature.signee.EntityTypes.NATURAL_PERSON %} {{ signature.signee.address_street_with_number }}<br> {{ signature.signee.address_zip }} {{ signature.signee.address_district }}<br> {{ signature.signee.get_address_country_display }}<br> diff --git a/contracts/views.py b/contracts/views.py index ecaf2da839be02244147a164a8b48b949b8e540a..8aa3d57b08364fe3aef4198c1faed7bcbee0724e 100644 --- a/contracts/views.py +++ b/contracts/views.py @@ -10,7 +10,7 @@ from .models import Contract def index(request): contracts = ( Contract.objects.filter( - is_approved=True, + approval_state=Contract.ApprovalStates.YES, public_state=Contract.PublicStates.YES, ) .order_by("valid_start_date") @@ -20,8 +20,6 @@ def index(request): page = paginator.get_page(request.GET.get("page")) - print(request.user) - return render( request, "contracts/index.html", @@ -38,7 +36,7 @@ def index(request): def view_contract(request, id: int): contract = Contract.objects.filter( - is_approved=True, + approval_state=Contract.ApprovalStates.YES, public_state=Contract.PublicStates.YES, ).get(id=id) diff --git a/package.json b/package.json index 83f28d5ed7692d0af105d9166eee58971f6ced86..eea8208a7abe38ab41eff68b4dbb5ca153339449 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "author": "Tomáš Valenta", "license": "AGPL-3.0-or-later", "dependencies": { + "@tailwindcss/typography": "^0.5.9", "css-loader": "^6.7.3", "jquery": "^3.6.3", "style-loader": "^3.3.1", diff --git a/tailwind.config.js b/tailwind.config.js index 882ff8fc6f21218aac61604077d8e0cdd47ff91e..ca793d21b64250b76e1a1a07d6b8e09a4023acbd 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -14,5 +14,7 @@ module.exports = { }, }, }, - plugins: [], + plugins: [ + require('@tailwindcss/typography'), + ], }