From 5cde9aab3089581069d8304c0878057499256fb7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Fri, 10 Mar 2023 18:39:24 +0100
Subject: [PATCH] wip - filters

---
 contracts/admin.py                            | 18 +++++++++++++++
 ...ter_contractee_address_country_and_more.py | 23 +++++++++++++++++++
 contracts/urls.py                             | 20 ++++++++--------
 registry/settings/base.py                     |  1 +
 requirements/base.txt                         |  2 ++
 5 files changed, 54 insertions(+), 10 deletions(-)
 create mode 100644 contracts/migrations/0009_alter_contractee_address_country_and_more.py

diff --git a/contracts/admin.py b/contracts/admin.py
index 662e444..3f93aeb 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -1,3 +1,4 @@
+from dal_admin_filters import AutocompleteFilter
 from django.contrib import admin
 from django.utils.html import format_html
 
@@ -25,6 +26,18 @@ class IndexHiddenModelAdmin(MarkdownxGuardedModelAdmin):
         return False
 
 
+# BEGIN Autocompletes
+
+
+class ContractAuthorPlaceholderFilter(AutocompleteFilter):
+    title = "Autor"
+    field_name = "author"
+    autocomplete_url = ""
+
+
+# END Autocompletes
+
+
 # BEGIN Contracts
 
 
@@ -161,6 +174,11 @@ class ContractAdmin(MarkdownxGuardedModelAdmin):
 
         super().save_model(request, obj, form, change)
 
+    list_filter = (
+        ContracteePlaceholderFilter,
+        SigneePlaceholderFilter,
+    )
+
 
 # END Contracts
 
diff --git a/contracts/migrations/0009_alter_contractee_address_country_and_more.py b/contracts/migrations/0009_alter_contractee_address_country_and_more.py
new file mode 100644
index 0000000..5848293
--- /dev/null
+++ b/contracts/migrations/0009_alter_contractee_address_country_and_more.py
@@ -0,0 +1,23 @@
+# Generated by Django 4.1.4 on 2023-03-10 09:12
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0008_alter_signee_entity_type'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='contractee',
+            name='address_country',
+            field=models.CharField(default='CZ', max_length=256, verbose_name='ZemÄ›'),
+        ),
+        migrations.AlterField(
+            model_name='signee',
+            name='address_country',
+            field=models.CharField(default='CZ', max_length=256, verbose_name='ZemÄ›'),
+        ),
+    ]
diff --git a/contracts/urls.py b/contracts/urls.py
index ff346a7..4a97b22 100644
--- a/contracts/urls.py
+++ b/contracts/urls.py
@@ -28,6 +28,16 @@ urlpatterns = [
         dal.autocomplete.Select2QuerySetView.as_view(model=models.ContractType),
         name="select2_djhacker_contract_type_autocomplete",
     ),
+    path(
+        "contracts/signees/autocomplete",
+        dal.autocomplete.Select2QuerySetView.as_view(model=models.Signee),
+        name="select2_djhacker_signee_autocomplete",
+    ),
+    path(
+        "contracts/contractees/autocomplete",
+        dal.autocomplete.Select2QuerySetView.as_view(model=models.Contractee),
+        name="select2_djhacker_contractee_autocomplete",
+    ),
     path(
         "contracts/signees/signatures/autocomplete",
         dal.autocomplete.Select2QuerySetView.as_view(model=models.SigneeSignature),
@@ -38,14 +48,4 @@ urlpatterns = [
         dal.autocomplete.Select2QuerySetView.as_view(model=models.ContracteeSignature),
         name="select2_djhacker_contractee_signature_autocomplete",
     ),
-    #path(
-        #"contracts/signees/autocomplete",
-        #dal.autocomplete.Select2QuerySetView.as_view(model=models.Signee),
-        #name="select2_djhacker_signee_autocomplete",
-    #),
-    #path(
-        #"contracts/contractees/autocomplete",
-        #dal.autocomplete.Select2QuerySetView.as_view(model=models.Contractee),
-        #name="select2_djhacker_contractee_autocomplete",
-    #),
 ]
diff --git a/registry/settings/base.py b/registry/settings/base.py
index 422a33e..c25e824 100644
--- a/registry/settings/base.py
+++ b/registry/settings/base.py
@@ -47,6 +47,7 @@ INSTALLED_APPS = [
     "colorfield",
     "dal",
     "dal_select2",
+    "dal_admin_filters",
     "django.contrib.admin",
     "django.contrib.auth",
     "django.contrib.contenttypes",
diff --git a/requirements/base.txt b/requirements/base.txt
index f9d2f4d..f743df8 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -1,3 +1,4 @@
+dal-admin-filters==1.1.0
 django==4.1.4
 django-admin-interface==0.24.2
 django-autocomplete-light==3.9.4
@@ -11,3 +12,4 @@ django-markdownx==4.0.0b1
 django-environ==0.9.0
 django-http-exceptions==1.4.0
 django-guardian==2.4.0
+PyJWT==2.6.0
-- 
GitLab