From 2217aa495e4eada6a5c6ece91d394f184baab794 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Fri, 14 Jul 2023 21:41:48 +0900
Subject: [PATCH] fix contractee / signee ordering

---
 ...er_signee_options_alter_contract_status.py | 22 +++++++++++++++++++
 .../0066_alter_contractee_options.py          | 17 ++++++++++++++
 ...contractee_options_alter_signee_options.py | 21 ++++++++++++++++++
 contracts/models.py                           |  4 ++--
 .../contracts/includes/pagination.html        |  4 ++--
 contracts/views.py                            |  4 ++--
 shared/templates/shared/includes/base.html    |  4 ++--
 tailwind.config.js                            |  3 +--
 users/models.py                               |  4 +++-
 9 files changed, 72 insertions(+), 11 deletions(-)
 create mode 100644 contracts/migrations/0065_alter_signee_options_alter_contract_status.py
 create mode 100644 contracts/migrations/0066_alter_contractee_options.py
 create mode 100644 contracts/migrations/0067_alter_contractee_options_alter_signee_options.py

diff --git a/contracts/migrations/0065_alter_signee_options_alter_contract_status.py b/contracts/migrations/0065_alter_signee_options_alter_contract_status.py
new file mode 100644
index 0000000..712b59d
--- /dev/null
+++ b/contracts/migrations/0065_alter_signee_options_alter_contract_status.py
@@ -0,0 +1,22 @@
+# Generated by Django 4.1.4 on 2023-07-14 12:28
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0064_contract_to_be_approved_nastenka_notice_id'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='signee',
+            options={'ordering': ['name', models.OrderBy(models.F('department'), descending=True, nulls_last=False)], 'permissions': [('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Jiná smluvní strana', 'verbose_name_plural': 'Ostatní smluvní strany'},
+        ),
+        migrations.AlterField(
+            model_name='contract',
+            name='status',
+            field=models.CharField(choices=[('work_in_progress', 'Rozpracovaná'), ('to_be_approved', 'Ke schválení'), ('approved', 'Schválená'), ('rejected', 'Zamítnutá')], default='work_in_progress', help_text='Označením jako "Ke schválení" se smlouva předá schvalovateli.', max_length=16, verbose_name='Stav'),
+        ),
+    ]
diff --git a/contracts/migrations/0066_alter_contractee_options.py b/contracts/migrations/0066_alter_contractee_options.py
new file mode 100644
index 0000000..12bb14d
--- /dev/null
+++ b/contracts/migrations/0066_alter_contractee_options.py
@@ -0,0 +1,17 @@
+# Generated by Django 4.1.4 on 2023-07-14 12:30
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0065_alter_signee_options_alter_contract_status'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='contractee',
+            options={'ordering': ['name', models.OrderBy(models.F('department'), descending=True, nulls_last=False)], 'permissions': [('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Naše smluvní strana', 'verbose_name_plural': 'Naše smluvní strany'},
+        ),
+    ]
diff --git a/contracts/migrations/0067_alter_contractee_options_alter_signee_options.py b/contracts/migrations/0067_alter_contractee_options_alter_signee_options.py
new file mode 100644
index 0000000..bfda986
--- /dev/null
+++ b/contracts/migrations/0067_alter_contractee_options_alter_signee_options.py
@@ -0,0 +1,21 @@
+# Generated by Django 4.1.4 on 2023-07-14 12:39
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contracts', '0066_alter_contractee_options'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='contractee',
+            options={'ordering': ['name', models.OrderBy(models.F('department'), nulls_first=True)], 'permissions': [('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Naše smluvní strana', 'verbose_name_plural': 'Naše smluvní strany'},
+        ),
+        migrations.AlterModelOptions(
+            name='signee',
+            options={'ordering': ['name', models.OrderBy(models.F('department'), nulls_first=True)], 'permissions': [('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Jiná smluvní strana', 'verbose_name_plural': 'Ostatní smluvní strany'},
+        ),
+    ]
diff --git a/contracts/models.py b/contracts/models.py
index 80d5899..1c1102f 100644
--- a/contracts/models.py
+++ b/contracts/models.py
@@ -274,7 +274,7 @@ class Signee(
         verbose_name = "Jiná smluvní strana"
         verbose_name_plural = "OstatnĂ­ smluvnĂ­ strany"
 
-        ordering = ["name", "department"]
+        ordering = ["name", models.F("department").asc(nulls_first=True)]
 
         permissions = OwnPermissionsMixin.Meta.permissions
 
@@ -369,7 +369,7 @@ class Contractee(
         verbose_name = "Naše smluvní strana"
         verbose_name_plural = "Naše smluvní strany"
 
-        ordering = ["name", "department"]
+        ordering = ["name", models.F("department").asc(nulls_first=True)]
 
         permissions = OwnPermissionsMixin.Meta.permissions
 
diff --git a/contracts/templates/contracts/includes/pagination.html b/contracts/templates/contracts/includes/pagination.html
index 44789bf..6cafca2 100644
--- a/contracts/templates/contracts/includes/pagination.html
+++ b/contracts/templates/contracts/includes/pagination.html
@@ -8,7 +8,7 @@
                 {% if not page.has_previous %}disabled{% endif %}
                 {% if page.has_previous %}href="{{ request.path }}?page={{ page.previous_page_number }}"{% endif %}
             >
-                <div class="btn__body-wrap">
+                <div class="btn__body-wrap group">
                     <div class="btn__body">Předchozí</div>
                     <div class="btn__icon">
                         <i class="ico--chevron-left"></i>
@@ -72,7 +72,7 @@
                 {% if not page.has_next %}disabled{% endif %}
                 {% if page.has_next %}href="{{ request.path }}?page={{ page.next_page_number }}"{% endif %}
             >
-                <div class="btn__body-wrap">
+                <div class="btn__body-wrap group">
                     <div class="btn__body">Další</div>
                     <div class="btn__icon">
                         <i class="ico--chevron-right"></i>
diff --git a/contracts/views.py b/contracts/views.py
index d691727..c67cd49 100644
--- a/contracts/views.py
+++ b/contracts/views.py
@@ -459,7 +459,7 @@ def view_contractees(request):
     contractees = get_objects_for_user(
         request.user,
         "contracts.view_contractee",
-    ).order_by("name", "department")
+    )
 
     page, paginator = get_pagination(request, contractees)
 
@@ -480,7 +480,7 @@ def view_signees(request):
     contractees = get_objects_for_user(
         request.user,
         "contracts.view_signee",
-    ).order_by("name", "department")
+    )
 
     page, paginator = get_pagination(request, contractees)
 
diff --git a/shared/templates/shared/includes/base.html b/shared/templates/shared/includes/base.html
index 5520d19..13c4e97 100644
--- a/shared/templates/shared/includes/base.html
+++ b/shared/templates/shared/includes/base.html
@@ -183,9 +183,9 @@
                         </div>
                         <div class="flex flex-col md:flex-row lg:flex-col lg:items-end space-y-2 md:space-y-0 md:space-x-2 lg:space-x-0 lg:space-y-2">
                             <a href="https://dary.pirati.cz" class="btn btn--icon btn--cyan-200 btn--hoveractive text-lg btn--fullwidth sm:btn--autowidth">
-                                <div class="btn__body-wrap">
+                                <div class="btn__body-wrap group">
                                     <div class="btn__body">Přispěj</div>
-                                    <div class="btn__icon "><i class="ico--pig"></i></div>
+                                    <div class="btn__icon"><i class="ico--pig group-hover:text-white"></i></div>
                                 </div>
                             </a>
                             <a href="https://nalodeni.pirati.cz" class="btn btn--icon btn--blue-300 btn--hoveractive text-lg btn--fullwidth sm:btn--autowidth">
diff --git a/tailwind.config.js b/tailwind.config.js
index ca793d2..775fbac 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -3,8 +3,7 @@ const defaultTheme = require("tailwindcss/defaultTheme");
 /** @type {import('tailwindcss').Config} */
 module.exports = {
   content: [
-    "*/templates/*/*.html",
-    "*/templates/*/*/*.html",
+    "*/templates/**/*.html"
   ],
   theme: {
     extend: {
diff --git a/users/models.py b/users/models.py
index 83e9b4d..7113ced 100644
--- a/users/models.py
+++ b/users/models.py
@@ -63,7 +63,9 @@ class User(pirates_models.AbstractUser):
 
         from contracts.models import Contract
 
-        return Contract.objects.filter(status=Contract.StatusTypes.TO_BE_APPROVED).count()
+        return Contract.objects.filter(
+            status=Contract.StatusTypes.TO_BE_APPROVED
+        ).count()
 
     # https://docs.djangoproject.com/en/4.1/ref/models/instances/#customizing-model-loading
     @classmethod
-- 
GitLab