diff --git a/register/admin.py b/register/admin.py index 8273b9e29e0f9b2aac75a2601e2104e3737ecd3b..f18b03b65b8f1151972ff51fd6255696c9d3246e 100644 --- a/register/admin.py +++ b/register/admin.py @@ -3,8 +3,6 @@ from django.contrib import admin from .models import Registration -# Register your models here. - @admin.register(Registration) class RegistrationAdmin(admin.ModelAdmin): diff --git a/visits/admin.py b/visits/admin.py index b59f8e86fae1b189005b89a8211677d64a7e880e..7056c6da996d4be842a76c089466079d86ef9faf 100644 --- a/visits/admin.py +++ b/visits/admin.py @@ -42,6 +42,7 @@ class RegistrationsOpenFilter(admin.SimpleListFilter): class VisitForm(forms.ModelForm): """Custom admin form for Visit.""" + class Meta: # noqa model = Visit fields = '__all__' @@ -76,11 +77,25 @@ class VisitForm(forms.ModelForm): class ParticipationInline(admin.TabularInline): """Inline for Participation.""" - + # template = "visits/visit_tabular.md" + actions = ["export_as_csv"] model = Visit.participants.through extra = 0 - fields = ('user', 'submitted', 'present') - readonly_fields = ('user', 'submitted') + fields = ('name', 'school', 'user', 'submitted', 'present') + readonly_fields = ('name', 'school', 'user', 'submitted') + + def school(self, participation: Participation): + """Return a link to the participation's user's school.""" + school = Student.objects.get(user = participation.user).school + return school + school.short_description = "Établissement" + + def name(self, participation: Participation): + """Returns the participation's user's name""" + return participation.user.first_name + " " + participation.user.last_name + name.short_description = "Nom" + + class Media: css = { "all" : ("css/hide_admin_original.css",) } diff --git a/visits/templates/visits/visit_tabular.md b/visits/templates/visits/visit_tabular.md new file mode 100644 index 0000000000000000000000000000000000000000..f96903bb78ded1b7140e407cb9691f54716a9821 --- /dev/null +++ b/visits/templates/visits/visit_tabular.md @@ -0,0 +1,79 @@ +{% load i18n admin_urls static admin_modify %} +<div class="js-inline-admin-formset inline-group" id="{{ inline_admin_formset.formset.prefix }}-group" + data-inline-type="tabular" + data-inline-formset="{{ inline_admin_formset.inline_formset_data }}"> + <div class="tabular inline-related {% if forloop.last %}last-related{% endif %}"> +{{ inline_admin_formset.formset.management_form }} +<fieldset class="module {{ inline_admin_formset.classes }}"> + {% if inline_admin_formset.formset.max_num == 1 %} + <h2>{{ inline_admin_formset.opts.verbose_name|capfirst }}</h2> + {% else %} + <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2> + {% endif %} + {{ inline_admin_formset.formset.non_form_errors }} + <table> + <thead><tr> + <th class="original"></th> + {% for field in inline_admin_formset.fields %} + {% if not field.widget.is_hidden %} + <th class="column-{{ field.name }}{% if field.required %} required{% endif %}">{{ field.label|capfirst }} + {% if field.help_text %}<img src="{% static "admin/img/icon-unknown.svg" %}" class="help help-tooltip" width="10" height="10" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}">{% endif %} + </th> + {% endif %} + {% endfor %} + {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}<th>{% translate "Delete?" %}</th>{% endif %} + </tr></thead> + + <tbody> + {% for inline_admin_form in inline_admin_formset %} + {% if inline_admin_form.form.non_field_errors %} + <tr class="row-form-errors"><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> + {% endif %} + <tr class="form-row {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last and inline_admin_formset.has_add_permission %} empty-form{% endif %}" + id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}"> + <td class="original"> + {% if inline_admin_form.original or inline_admin_form.show_url %}<p> + {% if inline_admin_form.original %} + {{ inline_admin_form.original }} + {% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}<a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="{% if inline_admin_formset.has_change_permission %}inlinechangelink{% else %}inlineviewlink{% endif %}">{% if inline_admin_formset.has_change_permission %}{% translate "Change" %}{% else %}{% translate "View" %}{% endif %}</a>{% endif %} + {% endif %} + {% if inline_admin_form.show_url %}<a href="{{ inline_admin_form.absolute_url }}">{% translate "View on site" %}</a>{% endif %} + </p>{% endif %} + {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %} + {% spaceless %} + {% for fieldset in inline_admin_form %} + {% for line in fieldset %} + {% for field in line %} + {% if not field.is_readonly and field.field.is_hidden %}{{ field.field }}{% endif %} + {% endfor %} + {% endfor %} + {% endfor %} + {% endspaceless %} + </td> + {% for fieldset in inline_admin_form %} + {% for line in fieldset %} + {% for field in line %} + {% if field.is_readonly or not field.field.is_hidden %} + <td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}> + {% if field.is_readonly %} + <p>{{ field.contents }}</p> + {% else %} + {{ field.field.errors.as_ul }} + {{ field.field }} + {% endif %} + </td> + {% endif %} + {% endfor %} + {% endfor %} + {% endfor %} + {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %} + <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td> + {% endif %} + </tr> + {% endfor %} + </tbody> + </table> +</fieldset> + </div> +</div> \ No newline at end of file