From a5448de435b4fedfa984e612a4ac8c2212cc78d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Tue, 21 Feb 2023 06:29:13 +0100
Subject: [PATCH] add approvals, update naming

---
 ..._approved_alter_contract_valid_end_date.py | 24 +++++++++++++++++++
 contracts/models.py                           | 10 +++++++-
 contracts/templates/contracts/index.html      |  2 +-
 .../templates/contracts/view_contract.html    |  2 +-
 contracts/views.py                            | 10 ++++++--
 5 files changed, 43 insertions(+), 5 deletions(-)
 create mode 100644 contracts/migrations/0002_contract_is_approved_alter_contract_valid_end_date.py

diff --git a/contracts/migrations/0002_contract_is_approved_alter_contract_valid_end_date.py b/contracts/migrations/0002_contract_is_approved_alter_contract_valid_end_date.py
new file mode 100644
index 0000000..43e4b59
--- /dev/null
+++ b/contracts/migrations/0002_contract_is_approved_alter_contract_valid_end_date.py
@@ -0,0 +1,24 @@
+# Generated by Django 4.1.4 on 2023-02-20 19:33
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='contract',
+            name='is_approved',
+            field=models.BooleanField(default=False, help_text='Může měnit jen schvalovatel. Pokud je smlouva veřejná, zaškrtnutím se vypustí ven.', verbose_name='Je schválená'),
+            preserve_default=False,
+        ),
+        migrations.AlterField(
+            model_name='contract',
+            name='valid_end_date',
+            field=models.DateField(verbose_name='Konec účinnosti'),
+        ),
+    ]
diff --git a/contracts/models.py b/contracts/models.py
index c0b2abd..e943b7c 100644
--- a/contracts/models.py
+++ b/contracts/models.py
@@ -308,7 +308,7 @@ class Contract(models.Model):
         verbose_name="Začátek účinnosti",
     )
     valid_end_date = models.DateField(
-        verbose_name="Konec platnosti",
+        verbose_name="Konec účinnosti",
     )
 
     created_by = models.ForeignKey(
@@ -432,6 +432,14 @@ class Contract(models.Model):
         help_text="Obsah není veřejně přístupný.",
     )  # WARNING: Dependent on the type!
 
+    is_approved = models.BooleanField(
+        verbose_name="Je schválená",
+        help_text=(
+            "Může měnit jen schvalovatel. Pokud je smlouva "
+            "veřejná, zaškrtnutím se vypustí ven."
+        )
+    )
+
     class Meta:
         verbose_name = "Smlouva"
         verbose_name_plural = "Smlouvy"
diff --git a/contracts/templates/contracts/index.html b/contracts/templates/contracts/index.html
index c7fd3f0..f868502 100644
--- a/contracts/templates/contracts/index.html
+++ b/contracts/templates/contracts/index.html
@@ -10,7 +10,7 @@
                 <td>Typ</td>
                 <td>Právní stav</td>
                 <td>Účinná od</td>
-                <td>Platná do</td>
+                <td>Účinná do</td>
                 <td>Podepsána s</td>
             </tr>
         </thead>
diff --git a/contracts/templates/contracts/view_contract.html b/contracts/templates/contracts/view_contract.html
index db76960..f6b0481 100644
--- a/contracts/templates/contracts/view_contract.html
+++ b/contracts/templates/contracts/view_contract.html
@@ -23,7 +23,7 @@
                 <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-1/5 !p-2.5">Konec účinnosti</td>
                 <td class="w-4/5 !p-2.5">{{ contract.valid_end_date }}</td>
             </tr>
             <tr>
diff --git a/contracts/views.py b/contracts/views.py
index d55d154..0da4a06 100644
--- a/contracts/views.py
+++ b/contracts/views.py
@@ -8,7 +8,10 @@ from .models import Contract
 
 
 def index(request):
-    contracts = Contract.objects.order_by("valid_start_date").all()
+    contracts = Contract.objects.filter(
+        is_approved__is=True,
+        public_state=Contract.PublicStates.YES,  
+    ).order_by("valid_start_date").all()
     paginator = Paginator(contracts, 25)
     
     page = paginator.get_page(
@@ -30,7 +33,10 @@ def index(request):
 
 
 def view_contract(request, id: int):
-    contract = Contract.objects.get(id=id)
+    contract = Contract.objects.filter(
+        is_approved__is=True,
+        public_state=Contract.PublicStates.YES,
+    ).get(id=id)
 
     return render(
         request,
-- 
GitLab