diff --git a/nummi/main/forms.py b/nummi/main/forms.py index 39beb96..f6e3b83 100644 --- a/nummi/main/forms.py +++ b/nummi/main/forms.py @@ -7,12 +7,14 @@ class NummiFileInput(forms.ClearableFileInput): class NummiForm(forms.ModelForm): template_name = "main/form/form_base.html" + meta_fieldsets = [] def __init__(self, *args, user, **kwargs): super().__init__(*args, **kwargs) - def get_context(self): - context = super().get_context() - context["fieldsets"] = [[[field] for field in self]] - - return context + @property + def fieldsets(self): + for group in self.meta_fieldsets: + yield ((self[f] for f in fieldset) for fieldset in group) + else: + yield ([f] for f in self) diff --git a/nummi/main/static/main/css/form.css b/nummi/main/static/main/css/form.css index 996b35c..267a6f5 100644 --- a/nummi/main/static/main/css/form.css +++ b/nummi/main/static/main/css/form.css @@ -16,12 +16,14 @@ form { .column { display: grid; grid-gap: var(--gap); + border: 1px solid var(--gray); + padding: var(--gap); .fieldset { display: grid; grid-auto-columns: 1fr; grid-auto-flow: column; - grid-gap: var(--gap); + grid-gap: inherit; padding: 0; margin: 0; border: none; @@ -30,8 +32,6 @@ form { p.field { display: grid; grid-auto-rows: min-content; - border: 1px solid var(--gray); - padding: 0.5rem; margin: 0; &:has(> textarea) { diff --git a/nummi/main/templates/main/form/form_base.html b/nummi/main/templates/main/form/form_base.html index d92ca47..3f924c2 100644 --- a/nummi/main/templates/main/form/form_base.html +++ b/nummi/main/templates/main/form/form_base.html @@ -6,10 +6,10 @@ {% for error in form.non_field_errors %}
{{ field.errors }}
{% endif %} @@ -19,18 +19,20 @@ {% endfor %}{{ field.errors }}
{% endif %} -- - {{ field }} -
- {% endwith %} - {% endif %} + {% endfor %} +{{ field.errors }}
{% endif %} ++ + {{ field }} +
{% endfor %}