From e4543aed6299c8b28433900a90e6ae00e0e5a66c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Caux?= <git@jscaux.org> Date: Sun, 27 Feb 2022 06:32:42 +0100 Subject: [PATCH] Delete AffiliateJournalYearSubsidy facilities --- .../affiliates/affiliatejournal_detail.html | 4 ++-- .../affiliatejournal_organization_list.html | 2 +- .../affiliates/affiliatejournal_subsidy_list.html | 10 +++++++++- .../affiliates/affiliatepublication_detail.html | 2 +- scipost_django/affiliates/urls.py | 7 ++++++- scipost_django/affiliates/views.py | 12 ++++++++++-- 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/scipost_django/affiliates/templates/affiliates/affiliatejournal_detail.html b/scipost_django/affiliates/templates/affiliates/affiliatejournal_detail.html index 08e84b113..fbe111a72 100644 --- a/scipost_django/affiliates/templates/affiliates/affiliatejournal_detail.html +++ b/scipost_django/affiliates/templates/affiliates/affiliatejournal_detail.html @@ -128,7 +128,7 @@ {% for organization in top_benefitting_organizations %} <tr> <td> - <a href="{% url 'affiliates:journal_organization_detail' journal_slug=object.slug organization_id=organization.id %}">{{ organization }}</a> + <a href="{% url 'affiliates:journal_organization_detail' slug=object.slug organization_id=organization.id %}">{{ organization }}</a> </td> <td align="right">{{ organization.sum_affiliate_pubfractions }}</td> </tr> @@ -161,7 +161,7 @@ {% for subsidy in subsidies_current_year %} <tr> <td> - <a href="{% url 'affiliates:journal_organization_detail' journal_slug=object.slug organization_id=subsidy.organization.id %}"> + <a href="{% url 'affiliates:journal_organization_detail' slug=object.slug organization_id=subsidy.organization.id %}"> {{ subsidy.organization }} </a> </td> diff --git a/scipost_django/affiliates/templates/affiliates/affiliatejournal_organization_list.html b/scipost_django/affiliates/templates/affiliates/affiliatejournal_organization_list.html index 8e0be17f6..69ea27bb0 100644 --- a/scipost_django/affiliates/templates/affiliates/affiliatejournal_organization_list.html +++ b/scipost_django/affiliates/templates/affiliates/affiliatejournal_organization_list.html @@ -25,7 +25,7 @@ {% for organization in object_list %} <tr> <td> - <a href="{% url 'affiliates:journal_organization_detail' journal_slug=journal.slug organization_id=organization.id %}">{{ organization }}</a> + <a href="{% url 'affiliates:journal_organization_detail' slug=journal.slug organization_id=organization.id %}">{{ organization }}</a> </td> <td><img src="{{ organization.country.flag }}" alt="{{ organization.country }} flag"/> <span class="text-muted"><small>[{{ organization.country }}]</small></span> {{ organization.get_country_display }}</td> <td align="right">{{ organization.sum_affiliate_pubfractions }}</td> diff --git a/scipost_django/affiliates/templates/affiliates/affiliatejournal_subsidy_list.html b/scipost_django/affiliates/templates/affiliates/affiliatejournal_subsidy_list.html index 6bf75e459..fb3962c3b 100644 --- a/scipost_django/affiliates/templates/affiliates/affiliatejournal_subsidy_list.html +++ b/scipost_django/affiliates/templates/affiliates/affiliatejournal_subsidy_list.html @@ -40,17 +40,25 @@ <th>Country</th> <th>Year</th> <th align="right">Subsidy (€)</th> + <th></th> </tr> </thead> <tbody> {% for subsidy in object_list %} <tr> <td> - <a href="{% url 'affiliates:journal_organization_detail' journal_slug=journal.slug organization_id=subsidy.organization.id %}">{{ subsidy.organization }}</a> + <a href="{% url 'affiliates:journal_organization_detail' slug=journal.slug organization_id=subsidy.organization.id %}">{{ subsidy.organization }}</a> </td> <td><img src="{{ subsidy.organization.country.flag }}" alt="{{ subsidy.organization.country }} flag"/> <span class="text-muted"><small>[{{ subsidy.organization.country }}]</small></span> {{ subsidy.organization.get_country_display }}</td> <td>{{ subsidy.year }}</td> <td align="right">{{ subsidy.amount }}</td> + {% if 'manage_journal_content' in user_perms %} + <td> + <a href="{% url 'affiliates:journal_delete_subsidy' slug=journal.slug pk=subsidy.id %}"> + <span class="text-danger">{% include 'bi/x-square-fill.html' %}</span> + </a> + </td> + {% endif %} </tr> {% empty %} <tr> diff --git a/scipost_django/affiliates/templates/affiliates/affiliatepublication_detail.html b/scipost_django/affiliates/templates/affiliates/affiliatepublication_detail.html index 28735babe..9f50db405 100644 --- a/scipost_django/affiliates/templates/affiliates/affiliatepublication_detail.html +++ b/scipost_django/affiliates/templates/affiliates/affiliatepublication_detail.html @@ -70,7 +70,7 @@ <tbody> {% for pubfrac in object.pubfractions.all %} <tr> - <td><a href="{% url 'affiliates:journal_organization_detail' journal_slug=object.journal.slug organization_id=pubfrac.organization.id %}">{{ pubfrac.organization }}</a></td> + <td><a href="{% url 'affiliates:journal_organization_detail' slug=object.journal.slug organization_id=pubfrac.organization.id %}">{{ pubfrac.organization }}</a></td> <td align="right">{{ pubfrac.fraction }}</td> {% if 'manage_journal_content' in user_perms %} <td> diff --git a/scipost_django/affiliates/urls.py b/scipost_django/affiliates/urls.py index 5df37d9b7..b4b5b2db9 100644 --- a/scipost_django/affiliates/urls.py +++ b/scipost_django/affiliates/urls.py @@ -67,7 +67,7 @@ urlpatterns = [ name="journal_organizations", ), path( # /affiliates/journals/<slug:slug>/organizations/<int:pk> - "journals/<slug:journal_slug>/organizations/<int:organization_id>", + "journals/<slug:slug>/organizations/<int:organization_id>", views.affiliatejournal_organization_detail, name="journal_organization_detail", ), @@ -82,4 +82,9 @@ urlpatterns = [ views.journal_add_subsidy, name="journal_add_subsidy", ), + path( # /affiliates/journals/<slug:slug>/subsidies/<int:pk>/delete + "journals/<slug:slug>/subsidies/<int:pk>/delete", + views.journal_delete_subsidy, + name="journal_delete_subsidy", + ), ] diff --git a/scipost_django/affiliates/views.py b/scipost_django/affiliates/views.py index e6923ca54..8f38f9743 100644 --- a/scipost_django/affiliates/views.py +++ b/scipost_django/affiliates/views.py @@ -204,8 +204,8 @@ class AffiliateJournalOrganizationListView(PaginationMixin, ListView): return context -def affiliatejournal_organization_detail(request, journal_slug, organization_id): - journal = get_object_or_404(AffiliateJournal, slug=journal_slug) +def affiliatejournal_organization_detail(request, slug, organization_id): + journal = get_object_or_404(AffiliateJournal, slug=slug) organization = get_object_or_404(Organization, pk=organization_id) affiliatepubfractions = AffiliatePubFraction.objects.filter( organization=organization, @@ -251,3 +251,11 @@ def journal_add_subsidy(request, slug): for error_messages in form.errors.values(): messages.warning(request, *error_messages) return redirect(reverse("affiliates:journal_subsidies", kwargs={"slug": slug})) + + +@permission_required_or_403( + "affiliates.change_affiliatejournal", (AffiliateJournal, "slug", "slug") +) +def journal_delete_subsidy(request, slug, pk): + AffiliateJournalYearSubsidy.objects.filter(pk=pk).delete() + return redirect(reverse("affiliates:journal_subsidies", kwargs={"slug": slug})) -- GitLab