Skip to content

Commit

Permalink
Admin panel formatting
Browse files Browse the repository at this point in the history
Integrated admin panel form formatting. Should still clean this up.
  • Loading branch information
EricTRL committed Aug 30, 2023
1 parent f7d1adf commit fa178e3
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 21 deletions.
2 changes: 1 addition & 1 deletion membership_file/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class MemberWithLog(RequestUserToFormModelAdminMixin, DjangoObjectActions, Expor

@object_action(attrs={'class': 'addlink'})
def register_new_member(modeladmin, request, queryset):
view = RegisterNewMemberAdminView.as_view()
view = modeladmin.admin_site.admin_view(RegisterNewMemberAdminView.as_view())
return view(request)

changelist_actions = ('register_new_member', )
Expand Down
1 change: 1 addition & 0 deletions membership_file/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ class RegisterMemberForm(UpdatingUserFormMixin, forms.ModelForm):
Registers a member in the membership file, and optionally sends them an email to link or register a Squire account.
Also contains some useful presets.
"""
required_css_class = 'required'
class Meta:
model = Member
fields = ('first_name', 'tussenvoegsel', 'last_name', 'legal_name', 'student_number', 'educational_institution',
Expand Down
102 changes: 82 additions & 20 deletions membership_file/templates/membership_file/register_member.html
Original file line number Diff line number Diff line change
@@ -1,20 +1,82 @@
{% extends 'core/base.html' %}

{% load generic_field %}
{% load selected_m2m_labels %}

{% block og-title %}
Edit Knights Membership Information
{% endblock og-title %}
{% block og-description %}
Edit your Knights' membership information here.
{% endblock og-description %}

{% block content %}
<form method="post" id="member_registration_form">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>

{% endblock content %}
{% extends "admin/base_site.html" %}
{% load i18n admin_urls static admin_modify %}

{% block extrahead %}{{ block.super }}
<script src="{% url 'admin:jsi18n' %}"></script>
{{ media }}
{% endblock %}

{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}">{% endblock %}

{% block coltype %}colM{% endblock %}

{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-form{% endblock %}


{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>
&rsaquo; {% blocktranslate with name=opts.verbose_name %}Register new {{ name }}{% endblocktranslate %}
</div>
{% endblock %}

{% block content %}<div id="content-main">
<form method="post" id="{{ opts.model_name }}_form" novalidate>{% csrf_token %}{% block form_top %}{% endblock %}
<div>
{% if errors %}
<p class="errornote">
{% if errors|length == 1 %}{% translate "Please correct the error below." %}{% else %}{% translate "Please correct the errors below." %}{% endif %}
</p>
{{ form.non_field_errors }}
{% endif %}

{% block form %}
{% for fieldset in adminform %}
{% include "admin/includes/fieldset.html" %}
{% endfor %}

{%comment%}
{% for field in form %}

<div class="fieldBox{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"
>
{% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
{% if field.is_checkbox %}
check
{{ field.field }}{{ field.label_tag }}
{% else %}
{{ field.label_tag }}
{% if field.is_readonly %}
<div class="readonly">{{ field.contents }}</div>
{% else %}
{{ field.field }}
{% endif %}
{% endif %}
{% if field.field.help_text %}
<div class="help">{{ field.field.help_text|safe }}</div>
{% endif %}
</div>
{% endfor %}
<!-- {{ form.as_p }} -->
{%endcomment%}
{% endblock %}

<div class="submit-row">
<input type="submit" value="{% translate 'Register Member' %}" class="default" name="_save">
</div>

{% block admin_change_form_document_ready %}
<script id="django-admin-form-add-constants"
src="{% static 'admin/js/change_form.js' %}"
{% if adminform %}
data-model-name="{{ opts.model_name }}"
{% endif %}
async>
</script>
{% endblock %}

</div>
</form></div>
{% endblock %}
27 changes: 27 additions & 0 deletions membership_file/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from typing import Any, Dict
from django.contrib import messages
from django.contrib.admin import helpers
from django.core.exceptions import PermissionDenied
from django.forms.models import BaseModelForm
from django.http import HttpResponse
Expand Down Expand Up @@ -103,3 +105,28 @@ def get_success_url(self) -> str:
messages.warning(self.request, f"Registered, but did not email member “{self.object}”")

return reverse(f'admin:membership_file_member_change', args=(self.object.id,))

def get_context_data(self, **kwargs: Any) -> Dict[str, Any]:
context = super().get_context_data(**kwargs)


fields = ['first_name']
fields = context['form'].fields

fieldsets = [(None, {'fields': fields})]

adminForm = helpers.AdminForm(
context['form'],
list(fieldsets),
{})

context.update({
'adminform': adminForm,
# 'form_url': form_url,
'is_nav_sidebar_enabled': True,
'opts': Member._meta,
'title': "Register new member",
# 'content_type_id': get_content_type_for_model(self.model).pk,
# 'app_label': app_label,
})
return context

0 comments on commit fa178e3

Please sign in to comment.