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 0000000000000000000000000000000000000000..43e4b59975922ade5fc376a729658d4ce43f5070
--- /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 c0b2abdcb5c6bd36cdc426afdb014c5962f41f86..e943b7c4bf3ac014a15b00ab2b4c483f9cc44491 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 c7fd3f0b8dfce0c51a2eef0496daa4da1dee5eae..f868502e1a8105da495b457da712361986f33d02 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 db76960a767b264ac8cf953ca522e767a19cc4bb..f6b0481e83e4d9f9f805c6e40d57e735f8b53795 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 d55d154826c690d3d634e93fc8dce3dca68e265c..0da4a067c3c9ab434dcf8bc88a12538d205d8907 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,