diff --git a/contracts/admin.py b/contracts/admin.py
index 027c6b6da32bd4c296ef275a7c8e79ee5691f3d0..6f56ad0c276af9381c577d45d72bf423bc5c6e2b 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -5,18 +5,26 @@ from django.contrib import admin
 from django.contrib.auth.models import Permission
 from django.utils.html import format_html
 from import_export import resources
-from nested_admin import (NestedModelAdmin, NestedStackedInline,
-                          NestedTabularInline)
+from nested_admin import NestedModelAdmin, NestedStackedInline, NestedTabularInline
 from rangefilter.filters import DateRangeFilter
 
-from shared.admin import MarkdownxGuardedModelAdmin
+from shared.admin import FieldsetInlineOrder, MarkdownxGuardedModelAdmin
 
 from .forms import ContractAdminForm, ContractFileAdminForm, SigneeAdminForm
-from .models import (Contract, Contractee, ContracteeSignature,
-                     ContracteeSignatureRepresentative, ContractFile,
-                     ContractFilingArea, ContractIntent, ContractIssue,
-                     ContractType, Signee, SigneeSignature,
-                     SigneeSignatureRepresentative)
+from .models import (
+    Contract,
+    Contractee,
+    ContracteeSignature,
+    ContracteeSignatureRepresentative,
+    ContractFile,
+    ContractFilingArea,
+    ContractIntent,
+    ContractIssue,
+    ContractType,
+    Signee,
+    SigneeSignature,
+    SigneeSignatureRepresentative,
+)
 
 
 class ContractResource(resources.ModelResource):
@@ -259,23 +267,20 @@ class ContractAdmin(
 
     def get_fieldsets_and_inlines_order(self, context) -> list:
         order = [
-            "f",
-            "f",
-            "f",
-            "i",
-            "i",
-            "i",
-            "f",
-            "i",
-            "f",
-            "f",
+            FieldsetInlineOrder.FIELDSET,
+            FieldsetInlineOrder.FIELDSET,
+            FieldsetInlineOrder.FIELDSET,
+            FieldsetInlineOrder.INLINE,
+            FieldsetInlineOrder.INLINE,
+            FieldsetInlineOrder.INLINE,
+            FieldsetInlineOrder.FIELDSET,
+            FieldsetInlineOrder.INLINE,
+            FieldsetInlineOrder.FIELDSET,
+            FieldsetInlineOrder.FIELDSET,
         ]
 
         if context["user"].has_perm("approve", self):
-            order.insert(
-                10,
-                "f"
-            )
+            order.insert(10, FieldsetInlineOrder.FIELDSET)
 
         return order
 
@@ -459,10 +464,11 @@ class SigneeSignatureRepresentativeAdmin(
         get_obj_signee_contract,
         get_obj_signee_contract,
     ),
-     permissions_mixin_factory(
+    permissions_mixin_factory(
         "contracts.edit_others",
         "contracts.delete_others",
-        lambda request, obj: get_obj_contractee_contract(obj).created_by != request.user,
+        lambda request, obj: get_obj_contractee_contract(obj).created_by
+        != request.user,
         get_obj_signee_contract,
         get_obj_signee_contract,
     ),
@@ -479,10 +485,11 @@ class ContracteeSignatureRepresentativeAdmin(
         get_obj_contractee_contract,
         get_obj_contractee_contract,
     ),
-     permissions_mixin_factory(
+    permissions_mixin_factory(
         "contracts.edit_others",
         "contracts.delete_others",
-        lambda request, obj: get_obj_contractee_contract(obj).created_by != request.user,
+        lambda request, obj: get_obj_contractee_contract(obj).created_by
+        != request.user,
         get_obj_contractee_contract,
         get_obj_contractee_contract,
     ),
@@ -511,7 +518,9 @@ for model in (
     admin.site.register(model, ContractSubmodelAdmin)
 
 admin.site.register(SigneeSignatureRepresentative, SigneeSignatureRepresentativeAdmin)
-admin.site.register(ContracteeSignatureRepresentative, ContracteeSignatureRepresentativeAdmin)
+admin.site.register(
+    ContracteeSignatureRepresentative, ContracteeSignatureRepresentativeAdmin
+)
 
 admin.site.register(ContractType, ContractTypeAdmin)
 admin.site.register(ContractIssue, ContractIssueAdmin)
diff --git a/contracts/migrations/0015_alter_contract_options.py b/contracts/migrations/0015_alter_contract_options.py
index 6206469659d56c0b1be2fc3a13b3dbd3a91e921d..142ae74a4f9ae4f46013fabb5d61d13b28f56a46 100644
--- a/contracts/migrations/0015_alter_contract_options.py
+++ b/contracts/migrations/0015_alter_contract_options.py
@@ -4,14 +4,22 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('contracts', '0014_alter_contracteesignaturerepresentative_options_and_more'),
+        ("contracts", "0014_alter_contracteesignaturerepresentative_options_and_more"),
     ]
 
     operations = [
         migrations.AlterModelOptions(
-            name='contract',
-            options={'permissions': [('approve', 'Schválit / zrušit schválení'), ('view_confidential', 'Zobrazit tajné informace'), ('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Smlouva', 'verbose_name_plural': 'Smlouvy'},
+            name="contract",
+            options={
+                "permissions": [
+                    ("approve", "Schválit / zrušit schválení"),
+                    ("view_confidential", "Zobrazit tajné informace"),
+                    ("edit_others", "Upravit cizí"),
+                    ("delete_others", "Odstranit cizí"),
+                ],
+                "verbose_name": "Smlouva",
+                "verbose_name_plural": "Smlouvy",
+            },
         ),
     ]
diff --git a/contracts/migrations/0016_alter_contractee_options_alter_signee_options.py b/contracts/migrations/0016_alter_contractee_options_alter_signee_options.py
index 702e85021fe7812ebf07c92bbc19767c7823bc62..c88ab27f3f24c30aca756fc954bb91dceffe863c 100644
--- a/contracts/migrations/0016_alter_contractee_options_alter_signee_options.py
+++ b/contracts/migrations/0016_alter_contractee_options_alter_signee_options.py
@@ -4,18 +4,31 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('contracts', '0015_alter_contract_options'),
+        ("contracts", "0015_alter_contract_options"),
     ]
 
     operations = [
         migrations.AlterModelOptions(
-            name='contractee',
-            options={'permissions': [('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Naše smluvní strana', 'verbose_name_plural': 'Naše smluvní strany'},
+            name="contractee",
+            options={
+                "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={'permissions': [('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Jiná smluvní strana', 'verbose_name_plural': 'Ostatní smluvní strany'},
+            name="signee",
+            options={
+                "permissions": [
+                    ("edit_others", "Upravit cizí"),
+                    ("delete_others", "Odstranit cizí"),
+                ],
+                "verbose_name": "Jiná smluvní strana",
+                "verbose_name_plural": "Ostatní smluvní strany",
+            },
         ),
     ]
diff --git a/contracts/migrations/0017_alter_contract_options.py b/contracts/migrations/0017_alter_contract_options.py
index fce8fef88284af1611312774092f2d6d057ae09b..f1c514a8c5d49029b84be5f851171f3a54117f6e 100644
--- a/contracts/migrations/0017_alter_contract_options.py
+++ b/contracts/migrations/0017_alter_contract_options.py
@@ -4,14 +4,24 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('contracts', '0016_alter_contractee_options_alter_signee_options'),
+        ("contracts", "0016_alter_contractee_options_alter_signee_options"),
     ]
 
     operations = [
         migrations.AlterModelOptions(
-            name='contract',
-            options={'permissions': [('approve', 'Schválit / zrušit schválení'), ('view_confidential', 'Zobrazit tajné informace'), ('edit_when_approved', 'Upravit schválené'), ('delete_when_approved', 'Odstranit schválené'), ('edit_others', 'Upravit cizí'), ('delete_others', 'Odstranit cizí')], 'verbose_name': 'Smlouva', 'verbose_name_plural': 'Smlouvy'},
+            name="contract",
+            options={
+                "permissions": [
+                    ("approve", "Schválit / zrušit schválení"),
+                    ("view_confidential", "Zobrazit tajné informace"),
+                    ("edit_when_approved", "Upravit schválené"),
+                    ("delete_when_approved", "Odstranit schválené"),
+                    ("edit_others", "Upravit cizí"),
+                    ("delete_others", "Odstranit cizí"),
+                ],
+                "verbose_name": "Smlouva",
+                "verbose_name_plural": "Smlouvy",
+            },
         ),
     ]
diff --git a/contracts/migrations/0018_contractee_created_by_signee_created_by.py b/contracts/migrations/0018_contractee_created_by_signee_created_by.py
index 4d64aea99428bb2a404c3476f0e824cde421013d..79d9fc8c9e0f0ca77d3981cdbf73204fbce639bf 100644
--- a/contracts/migrations/0018_contractee_created_by_signee_created_by.py
+++ b/contracts/migrations/0018_contractee_created_by_signee_created_by.py
@@ -1,26 +1,39 @@
 # Generated by Django 4.1.4 on 2023-03-26 18:45
 
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         migrations.swappable_dependency(settings.AUTH_USER_MODEL),
-        ('contracts', '0017_alter_contract_options'),
+        ("contracts", "0017_alter_contract_options"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='contractee',
-            name='created_by',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Vytvořeno uživatelem'),
+            model_name="contractee",
+            name="created_by",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="+",
+                to=settings.AUTH_USER_MODEL,
+                verbose_name="Vytvořeno uživatelem",
+            ),
         ),
         migrations.AddField(
-            model_name='signee',
-            name='created_by',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Vytvořeno uživatelem'),
+            model_name="signee",
+            name="created_by",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="+",
+                to=settings.AUTH_USER_MODEL,
+                verbose_name="Vytvořeno uživatelem",
+            ),
         ),
     ]
diff --git a/contracts/models.py b/contracts/models.py
index d24b703aa15f6fdb7ecb2ced7d6ee63ceda72245..1c02dbfd3faa7f5bfc01a2ff1a12d7a92793a828 100644
--- a/contracts/models.py
+++ b/contracts/models.py
@@ -184,7 +184,9 @@ class Signee(CreatedByMixin, OwnPermissionsMixin, SignatureCountMixin, models.Mo
         permissions = OwnPermissionsMixin.Meta.permissions
 
 
-class Contractee(CreatedByMixin, OwnPermissionsMixin, SignatureCountMixin, models.Model):
+class Contractee(
+    CreatedByMixin, OwnPermissionsMixin, SignatureCountMixin, models.Model
+):
     name = models.CharField(
         max_length=256,
         default=settings.DEFAULT_CONTRACTEE_NAME,
diff --git a/contracts/templatetags/admin_extras.py b/contracts/templatetags/admin_extras.py
deleted file mode 100644
index f93b4b1495c10b4e17956be67df4e588c1e1522d..0000000000000000000000000000000000000000
--- a/contracts/templatetags/admin_extras.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from django.template import Library
-
-
-register = Library()
-
-
-@register.simple_tag(takes_context=True)
-def get_fieldsets_and_inlines(context):
-    adminform = context["adminform"]
-    model_admin = adminform.model_admin
-    adminform = iter(adminform)
-    inlines = iter(context["inline_admin_formsets"])
-
-    fieldsets_and_inlines = []
-
-    for choice in (
-        model_admin.get_fieldsets_and_inlines_order(context)
-        if hasattr(model_admin, "get_fieldsets_and_inlines_order")
-        else model_admin.fieldsets_and_inlines_order
-    ):
-        if choice == "f":
-            fieldsets_and_inlines.append(("f", next(adminform)))
-        elif choice == "i":
-            fieldsets_and_inlines.append(("i", next(inlines)))
-
-    for fieldset in adminform:
-        fieldsets_and_inlines.append(("f", fieldset))
-    for inline in inlines:
-        fieldsets_and_inlines.append(("i", inline))
-
-    return fieldsets_and_inlines 
diff --git a/registry/templates/admin/change_form.html b/registry/templates/admin/change_form.html
index 39083cb94785c4ce04155d9c8e525bb723a746f9..bbf29db01bfaa4fa6e934bdea1bca877d977b49a 100644
--- a/registry/templates/admin/change_form.html
+++ b/registry/templates/admin/change_form.html
@@ -5,11 +5,11 @@
 {% block field_sets %}
     {% get_fieldsets_and_inlines as fieldsets_and_inlines %}
     {% for type, fieldset_or_inline in fieldsets_and_inlines %}
-        {% if type == 'f' %}
+        {% if type.value == "fieldset" %}
             {% with fieldset=fieldset_or_inline %}
                 {% include "admin/includes/fieldset.html" %}
             {% endwith %}
-        {% elif type == 'i' %}
+        {% elif type.value == "inline" %}
             {% with inline_admin_formset=fieldset_or_inline %}
                 {% include inline_admin_formset.opts.template %}
             {% endwith %}
@@ -17,4 +17,4 @@
     {% endfor %}
 {% endblock %}
 
-{% block inline_field_sets %}{% endblock %} 
+{% block inline_field_sets %}{% endblock %}
diff --git a/shared/admin.py b/shared/admin.py
index 2b2f1ef9507424d98caa1d8d1ec9e3134deeec01..a8fd3e7a1c340ff489022f303c29a36826d394e6 100644
--- a/shared/admin.py
+++ b/shared/admin.py
@@ -1,3 +1,5 @@
+import enum
+
 from django.contrib import admin
 from guardian.admin import GuardedModelAdmin
 from markdownx.admin import MarkdownxModelAdmin
@@ -5,3 +7,8 @@ from markdownx.admin import MarkdownxModelAdmin
 
 class MarkdownxGuardedModelAdmin(MarkdownxModelAdmin, GuardedModelAdmin):
     pass
+
+
+class FieldsetInlineOrder(enum.Enum):
+    FIELDSET = "fieldset"
+    INLINE = "inline"
diff --git a/shared/templatetags/admin_extras.py b/shared/templatetags/admin_extras.py
new file mode 100644
index 0000000000000000000000000000000000000000..056511217a9797e90f32549d07d86166fd61cf5a
--- /dev/null
+++ b/shared/templatetags/admin_extras.py
@@ -0,0 +1,55 @@
+from django.template import Library
+
+from shared.admin import FieldsetInlineOrder
+
+
+register = Library()
+
+
+@register.simple_tag(takes_context=True)
+def get_fieldsets_and_inlines(context):
+    adminform = context["adminform"]
+    model_admin = adminform.model_admin
+
+    adminform = iter(adminform)
+    inlines = iter(context["inline_admin_formsets"])
+
+    fieldsets_and_inlines = []
+
+    for choice in (
+        model_admin.get_fieldsets_and_inlines_order(context)
+        if hasattr(model_admin, "get_fieldsets_and_inlines_order")
+        else model_admin.fieldsets_and_inlines_order
+    ):
+        if choice == FieldsetInlineOrder.FIELDSET:
+            fieldsets_and_inlines.append(
+                (
+                    FieldsetInlineOrder.FIELDSET,
+                    next(adminform)
+                )
+            )
+        elif choice == FieldsetInlineOrder.INLINE:
+            fieldsets_and_inlines.append(
+                (
+                    FieldsetInlineOrder.INLINE,
+                    next(inlines)
+                )
+            )
+
+    for fieldset in adminform:
+        fieldsets_and_inlines.append(
+            (
+                FieldsetInlineOrder.FIELDSET,
+                fieldset
+            )
+        )
+
+    for inline in inlines:
+        fieldsets_and_inlines.append(
+            (
+                FieldsetInlineOrder.INLINE,
+                inline
+            )
+        )
+
+    return fieldsets_and_inlines 
diff --git a/users/models.py b/users/models.py
index b5f19b07a4f43664a9652c8ac2cdb5ed14919767..f449ddec2322306734b21a6a073aaa2149b14bcd 100644
--- a/users/models.py
+++ b/users/models.py
@@ -21,7 +21,7 @@ class User(pirates_models.AbstractUser):
         default=True,
         verbose_name="Administrační přístup dle členství ve skupině",
         help_text=(
-            "Určuje, zda bude \"Administrační přístup\" uživatele "
+            'Určuje, zda bude "Administrační přístup" uživatele '
             "definován dle členství ve skupinách, nebo podle "
             "speciálního nastavení zde."
         ),