From aba55d40a2b719fcc2815aa944148a277372d294 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Fri, 17 Mar 2023 11:20:05 +0100
Subject: [PATCH] add inline fieldsets, universal admin dropdown css

---
 contracts/admin.py                      | 19 ++++-----
 registry/settings/base.py               |  1 +
 registry/templates/admin/base_site.html | 54 +++++++++++++++++++++----
 requirements/base.txt                   |  1 +
 4 files changed, 59 insertions(+), 16 deletions(-)

diff --git a/contracts/admin.py b/contracts/admin.py
index b680464..638dc45 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -98,17 +98,17 @@ class ContractAdmin(MarkdownxGuardedModelAdmin):
         ContractSigneeRepresentativeInline,
     )
 
-    def __init__(self, *args, **kwargs):
-        from .models import Contract
+    #def __init__(self, *args, **kwargs):
+        #from .models import Contract
         
-        super().__init__(*args, **kwargs)
+        #super().__init__(*args, **kwargs)
         
-        if hasattr(self, "instance"):
-            self.fields["contractee_representatives"].queryset = (
-                Contract
-                .objects
-                .filter(contract=self.instance)
-            )
+        #if hasattr(self, "instance"):
+            #self.fields["contractee_representatives"].queryset = (
+                #Contract
+                #.objects
+                #.filter(contract=self.instance)
+            #)
 
     def get_fieldsets(self, request, obj=None):
         fieldsets = [
@@ -277,6 +277,7 @@ for model in (
 admin.site.register(ContractFile, ContractFileAdmin)
 
 for model in (
+    Contractee,
     ContractIssue,
     ContractFilingArea,
 ):
diff --git a/registry/settings/base.py b/registry/settings/base.py
index 5844228..ea0da07 100644
--- a/registry/settings/base.py
+++ b/registry/settings/base.py
@@ -56,6 +56,7 @@ INSTALLED_APPS = [
     "django.contrib.sessions",
     "django.contrib.messages",
     "django.contrib.staticfiles",
+    "fieldsets_with_inlines",
     "import_export",
     "rangefilter",
     "guardian",
diff --git a/registry/templates/admin/base_site.html b/registry/templates/admin/base_site.html
index e4a08e0..4099da6 100644
--- a/registry/templates/admin/base_site.html
+++ b/registry/templates/admin/base_site.html
@@ -2,15 +2,55 @@
 
 {% block extrastyle %}{{ block.super }}
 <style>
-    :root {
-        --djai-tab-bg: #000 !important;
-        --djai-tab-bg--active: #424242 !important;
-        --djai-tab-bg--hover: #424242 !important;
-        --djai-dropdown-bg: #424242 !important;
-        --djai-dropdown-bg--active: #5e5e5e !important;
-        --djai-dropdown-bg--hover: #5e5e5e !important;
+    :root, :root .admin-interface {
+        --djai-tab-bg: var(--admin-interface-header-background-color);
+        --djai-tab-fg: var(--admin-interface-header-text-color);
+        
+        --djai-tab-bg--active: var(--djai-tab-fg);
+        --djai-tab-bg--hover: var(--djai-tab-fg);
+        --djai-tab-fg--active: var(--djai-tab-bg);
+        --djai-tab-fg--hover: var(--djai-tab-bg);
+        
+        --djai-dropdown-bg: var(--djai-tab-bg);
+        --djai-dropdown-fg: var(--djai-tab-fg);
+        
+        --djai-dropdown-bg--active: var(--djai-tab-fg);
+        --djai-dropdown-bg--hover: var(--djai-tab-fg);
+        --djai-dropdown-fg--active: var(--djai-tab-bg);
+        --djai-dropdown-fg--hover: var(--djai-tab-bg);
     }
     
+    
+    .djai-dropdown-menu .djai-dropdown-menu__drop {
+        box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.1), -2px 2px 3px rgba(0, 0, 0, 0.1) !important;
+    }
+    
+    .djai-dropdown-menu a.djai-dropdown-menu__item:hover {
+        color: var(--djai-tab-fg--hover) !important;
+    }
+    
+    .djai-dropdown-menu a.djai-dropdown-menu__item.djai-dropdown-menu__item--active {
+        color: var(--djai-tab-fg--active) !important;
+    }
+    
+    .djai-dropdown-menu .djai-dropdown-menu__drop-item--active a {
+        color: var(--djai-tab-fg--active) !important;
+    }
+    
+    #header .djai-dropdown-menu .djai-dropdown-menu__drop-item {
+        transition: .15s;
+    }
+    
+    #header .djai-dropdown-menu .djai-dropdown-menu__drop-item a {
+        color: var(--djai-dropdown-fg);
+    }
+    
+    #header .djai-dropdown-menu .djai-dropdown-menu__drop-item a:hover {
+        color: var(--djai-dropdown-fg--hover) !important;
+        text-decoration: none;
+    }
+    
+    
     .index-action-buttons {
         display: flex;
         flex-direction: row;
diff --git a/requirements/base.txt b/requirements/base.txt
index 2a871c2..b3075f2 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -5,6 +5,7 @@ django-admin-interface==0.24.2
 django-admin-rangefilter==0.9.0
 django-autocomplete-light==3.9.4
 django-database-url==1.0.3
+django-fieldsets-with-inlines==0.6 
 django-import-export==3.1.0
 djhacker==0.2.3
 django-ordered-model==3.7.1
-- 
GitLab