feat: add page for updating the exclusion reason where it's not set yet
This commit is contained in:
		| @@ -19,53 +19,10 @@ | ||||
|     <div class="columns"> | ||||
|         <div class="column"> | ||||
|             <div class="block"> | ||||
|                 <div class="card"> | ||||
|                     <div class="card-header"> | ||||
|                         <h1 class="card-header-title">{{ org.name }}</h1> | ||||
|                     </div> | ||||
|                     <div class="card-content"> | ||||
|                         <div class="block"> | ||||
|                             <b><i class="fa-solid fa-location-dot"></i></b> | ||||
|                             {% if org.location %} | ||||
|                                 {{ org.location }} | ||||
|                             {% else %} | ||||
|                                 {{ org.location_string }} | ||||
|                             {% endif %} | ||||
|                             {% if org.description %} | ||||
|                                 <div class="block content"> | ||||
|                                     <p>{{ org.description | render_markdown }}</p> | ||||
|                                 </div> | ||||
|                             {% endif %} | ||||
|                         </div> | ||||
|                         {% if org.specializations %} | ||||
|                             <div class="block"> | ||||
|                                 <h3 class="title is-5">{% translate 'Spezialisierung' %}</h3> | ||||
|                                 <div class="content"> | ||||
|                                     <ul> | ||||
|                                         {% for specialization in org.specializations.all %} | ||||
|                                             <li>{{ specialization }}</li> | ||||
|                                         {% endfor %} | ||||
|                                     </ul> | ||||
|                                 </div> | ||||
|                             </div> | ||||
|                         {% endif %} | ||||
|                         {% if org.parent_org %} | ||||
|                             <div class="block"> | ||||
|                                 <h3 class="title is-5">{% translate 'Übergeordnete Organisation' %}</h3> | ||||
|                                 <p> | ||||
|                                     <span> | ||||
|                                         <i class="fa-solid fa-building fa-fw" | ||||
|                                            aria-label="{% trans 'Tierschutzorganisation' %}"></i> | ||||
|                                             <a href="{{ org.parent_org.get_absolute_url }}"> {{ org.parent_org }}</a> | ||||
|                                     </span> | ||||
|                                 </p> | ||||
|                             </div> | ||||
|                         {% endif %} | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 {% include "fellchensammlung/partials/rescue_orgs/partial-basic-info-card.html" %} | ||||
|             </div> | ||||
|             <div class="block"> | ||||
|                 {% include "fellchensammlung/partials/partial-rescue-organization-contact.html" %} | ||||
|                 {% include "fellchensammlung/partials/rescue_orgs/partial-rescue-organization-contact.html" %} | ||||
|             </div> | ||||
|             <div class="block"> | ||||
|                 <a class="button is-warning is-fullwidth" href="{% url org_meta|admin_urlname:'change' org.pk %}"> | ||||
|   | ||||
| @@ -1,18 +1,35 @@ | ||||
| {% extends "fellchensammlung/base.html" %} | ||||
| {% load i18n %} | ||||
| {% load widget_tweaks %} | ||||
| {% load admin_urls %} | ||||
|  | ||||
| {% block title %} | ||||
|     <title>Organisation {{ rescue_org }} von regelmäßiger Prüfung ausschließen</title> | ||||
|     <title>Organisation {{ org }} von regelmäßiger Prüfung ausschließen</title> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block content %} | ||||
|     <h1 class="title is-1">Organisation {{ rescue_org }} von regelmäßiger Prüfung ausschließen</h1> | ||||
|     <form method="post"> | ||||
|         {% csrf_token %} | ||||
|         {{ form }} | ||||
|     <h1 class="title is-1">Organisation {{ org }} von regelmäßiger Prüfung ausschließen</h1> | ||||
|     <div class="columns block"> | ||||
|         <div class="column"> | ||||
|             {% include "fellchensammlung/partials/rescue_orgs/partial-basic-info-card.html" %} | ||||
|         </div> | ||||
|         <div class="column"> | ||||
|             {% include "fellchensammlung/partials/rescue_orgs/partial-rescue-organization-contact.html" %} | ||||
|         </div> | ||||
|     </div> | ||||
|     <div class="block"> | ||||
|         <form method="post"> | ||||
|             {% csrf_token %} | ||||
|             {{ form }} | ||||
|  | ||||
|         <a class="button" href="{% url 'organization-check' %}">{% translate "Zurück (nicht exkludieren)" %}</a> | ||||
|         <input class="button is-danger" type="submit" name="delete" value="{% translate "Von regelmäßiger Prüfung ausschließen" %}"> | ||||
|     </form> | ||||
|             <a class="button" href="{% url 'organization-check' %}">{% translate "Zurück (nicht exkludieren)" %}</a> | ||||
|             <input class="button is-danger" type="submit" name="delete" | ||||
|                    value="{% translate "Von regelmäßiger Prüfung ausschließen" %}"> | ||||
|         </form> | ||||
|     </div> | ||||
|     <div class="block"> | ||||
|         <a class="button is-warning is-fullwidth" href="{% url org_meta|admin_urlname:'change' org.pk %}"> | ||||
|             <i class="fa-solid fa-tools fa-fw"></i> Admin interface | ||||
|         </a> | ||||
|     </div> | ||||
| {% endblock %} | ||||
| @@ -3,7 +3,7 @@ | ||||
|     {% if rescue_organizations %} | ||||
|         {% for rescue_organization in rescue_organizations %} | ||||
|             <div class="cell"> | ||||
|                 {% include "fellchensammlung/partials/partial-rescue-organization.html" %} | ||||
|                 {% include "fellchensammlung/partials/rescue_orgs/partial-rescue-organization.html" %} | ||||
|             </div> | ||||
|         {% endfor %} | ||||
|     {% else %} | ||||
|   | ||||
| @@ -0,0 +1,46 @@ | ||||
| {% load i18n %} | ||||
| {% load custom_tags %} | ||||
| <div class="card"> | ||||
|     <div class="card-header"> | ||||
|         <h1 class="card-header-title">{{ org.name }}</h1> | ||||
|     </div> | ||||
|     <div class="card-content"> | ||||
|         <div class="block"> | ||||
|             <b><i class="fa-solid fa-location-dot"></i></b> | ||||
|             {% if org.location %} | ||||
|                 {{ org.location }} | ||||
|             {% else %} | ||||
|                 {{ org.location_string }} | ||||
|             {% endif %} | ||||
|             {% if org.description %} | ||||
|                 <div class="block content"> | ||||
|                     <p>{{ org.description | render_markdown }}</p> | ||||
|                 </div> | ||||
|             {% endif %} | ||||
|         </div> | ||||
|         {% if org.specializations %} | ||||
|             <div class="block"> | ||||
|                 <h3 class="title is-5">{% translate 'Spezialisierung' %}</h3> | ||||
|                 <div class="content"> | ||||
|                     <ul> | ||||
|                         {% for specialization in org.specializations.all %} | ||||
|                             <li>{{ specialization }}</li> | ||||
|                         {% endfor %} | ||||
|                     </ul> | ||||
|                 </div> | ||||
|             </div> | ||||
|         {% endif %} | ||||
|         {% if org.parent_org %} | ||||
|             <div class="block"> | ||||
|                 <h3 class="title is-5">{% translate 'Übergeordnete Organisation' %}</h3> | ||||
|                 <p> | ||||
|                     <span> | ||||
|                         <i class="fa-solid fa-building fa-fw" | ||||
|                            aria-label="{% trans 'Tierschutzorganisation' %}"></i> | ||||
|                             <a href="{{ org.parent_org.get_absolute_url }}"> {{ org.parent_org }}</a> | ||||
|                     </span> | ||||
|                 </p> | ||||
|             </div> | ||||
|         {% endif %} | ||||
|     </div> | ||||
| </div> | ||||
| @@ -38,7 +38,7 @@ | ||||
|         <div class="grid is-col-min-15"> | ||||
|             {% for rescue_org in rescue_orgs_to_check %} | ||||
|                 <div class="cell"> | ||||
|                     {% include "fellchensammlung/partials/partial-check-rescue-org.html" %} | ||||
|                     {% include "fellchensammlung/partials/rescue_orgs/partial-check-rescue-org.html" %} | ||||
|                 </div> | ||||
|             {% endfor %} | ||||
|         </div> | ||||
| @@ -50,7 +50,7 @@ | ||||
|         <div class="grid is-col-min-15"> | ||||
|             {% for rescue_org in rescue_orgs_with_ongoing_communication %} | ||||
|                 <div class="cell"> | ||||
|                     {% include "fellchensammlung/partials/partial-check-rescue-org.html" %} | ||||
|                     {% include "fellchensammlung/partials/rescue_orgs/partial-check-rescue-org.html" %} | ||||
|                 </div> | ||||
|             {% endfor %} | ||||
|         </div> | ||||
| @@ -62,7 +62,7 @@ | ||||
|         <div class="grid is-col-min-15"> | ||||
|             {% for rescue_org in rescue_orgs_last_checked %} | ||||
|                 <div class="cell"> | ||||
|                     {% include "fellchensammlung/partials/partial-check-rescue-org.html" %} | ||||
|                     {% include "fellchensammlung/partials/rescue_orgs/partial-check-rescue-org.html" %} | ||||
|                 </div> | ||||
|             {% endfor %} | ||||
|         </div> | ||||
|   | ||||
| @@ -49,6 +49,8 @@ urlpatterns = [ | ||||
|          name="rescue-organization-detail"), | ||||
|     path("tierschutzorganisationen/<int:rescue_organization_id>/exkludieren", views.exclude_from_regular_check, | ||||
|          name="rescue-organization-exclude"), | ||||
|     path("tierschutzorganisationen/add-exclusion-reason", views.update_exclusion_reason, | ||||
|          name="rescue-organization-add-exclusion-reason"), | ||||
|     path("tierschutzorganisationen/spezialisierung/<slug:species_slug>", views.specialized_rescues, | ||||
|          name="specialized-rescue-organizations"), | ||||
|  | ||||
|   | ||||
| @@ -897,23 +897,38 @@ def rescue_organization_check_dq(request): | ||||
|     return rescue_organization_check(request, context) | ||||
|  | ||||
|  | ||||
| @user_passes_test(user_is_trust_level_or_above) | ||||
| def exclude_from_regular_check(request, rescue_organization_id): | ||||
| def exclude_from_regular_check(request, rescue_organization_id, source="organization-check"): | ||||
|     rescue_org = get_object_or_404(RescueOrganization, pk=rescue_organization_id) | ||||
|     if request.method == "POST": | ||||
|         form = UpdateRescueOrgRegularCheckStatus(request.POST, instance=rescue_org) | ||||
|         if form.is_valid(): | ||||
|             form.save() | ||||
|             if form.cleaned_data["regular_check_status"] != RegularCheckStatusChoices.REGULAR_CHECK: | ||||
|                 rescue_org.exclude_from_check = True | ||||
|                 rescue_org.save() | ||||
|             return redirect(reverse("organization-check")) | ||||
|             to_be_excluded = form.cleaned_data["regular_check_status"] != RegularCheckStatusChoices.REGULAR_CHECK | ||||
|             rescue_org.exclude_from_check = to_be_excluded | ||||
|             rescue_org.save() | ||||
|  | ||||
|             return redirect(reverse(source)) | ||||
|     else: | ||||
|         form = UpdateRescueOrgRegularCheckStatus(instance=rescue_org) | ||||
|     context = {"form": form, rescue_org: rescue_org} | ||||
|     org_meta = rescue_org._meta | ||||
|     context = {"form": form, "org": rescue_org, "org_meta": org_meta} | ||||
|     return render(request, 'fellchensammlung/forms/form-exclude-org-from-check.html', context=context) | ||||
|  | ||||
|  | ||||
| @user_passes_test(user_is_trust_level_or_above) | ||||
| def update_exclusion_reason(request): | ||||
|     """ | ||||
|     This view will redirect to update a rescue org that not yet has an exclusion reason but is excluded | ||||
|     """ | ||||
|     orgs_to_check = RescueOrganization.objects.filter(exclude_from_check=True, | ||||
|                                                       regular_check_status=RegularCheckStatusChoices.REGULAR_CHECK) | ||||
|     if orgs_to_check.count() > 0: | ||||
|         return exclude_from_regular_check(request, orgs_to_check[0].pk, | ||||
|                                           source="rescue-organization-add-exclusion-reason") | ||||
|     else: | ||||
|         return render(request, "fellchensammlung/errors/404.html", status=404) | ||||
|  | ||||
|  | ||||
| @user_passes_test(user_is_trust_level_or_above) | ||||
| def moderation_tools_overview(request): | ||||
|     context = None | ||||
|   | ||||
		Reference in New Issue
	
	Block a user