From aa3ce482a479445f3569b74a7e91b0ca65d63a21 Mon Sep 17 00:00:00 2001 From: Philipp Veller Date: Thu, 27 Feb 2025 16:26:58 +0100 Subject: [PATCH] fix breadcrumbs to always include the module page; change project overview string in breadcrumb to "kiezradar" for consistency; change links that previously lead to the detail page (either project or module) to always lead to the module page --- .../meinberlin_budgeting/proposal_create_form.html | 6 ++---- .../meinberlin_budgeting/proposal_moderate_form.html | 10 ++++------ .../meinberlin_budgeting/proposal_update_form.html | 12 +++++------- meinberlin/apps/budgeting/views.py | 2 +- .../templates/meinberlin_contrib/item_detail.html | 10 ++++------ .../meinberlin_documents/paragraph_detail.html | 8 ++------ .../templates/meinberlin_ideas/idea_create_form.html | 8 +++----- .../meinberlin_ideas/idea_moderate_form.html | 10 ++++------ .../templates/meinberlin_ideas/idea_update_form.html | 6 ++---- .../meinberlin_kiezkasse/proposal_create_form.html | 8 +++----- .../meinberlin_kiezkasse/proposal_moderate_form.html | 8 +++----- .../meinberlin_kiezkasse/proposal_update_form.html | 4 +--- .../meinberlin_mapideas/mapidea_create_form.html | 6 ++---- .../meinberlin_mapideas/mapidea_moderate_form.html | 4 +--- .../meinberlin_mapideas/mapidea_update_form.html | 4 +--- .../meinberlin_maptopicprio/maptopic_detail.html | 4 +--- .../emails/notify_followers_phase_over_soon.de.email | 2 +- .../emails/notify_followers_phase_over_soon.en.email | 2 +- .../emails/notify_followers_phase_started.de.email | 2 +- .../emails/notify_followers_phase_started.en.email | 2 +- .../templates/meinberlin_topicprio/topic_detail.html | 4 +--- tests/budgeting/test_views_integration.py | 4 ++-- tests/kiezradar/test_api_search_profile.py | 6 ++++-- 23 files changed, 50 insertions(+), 82 deletions(-) diff --git a/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_create_form.html b/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_create_form.html index 3010b4fbc5..69485cc4c3 100644 --- a/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_create_form.html +++ b/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_create_form.html @@ -9,9 +9,7 @@
  • meinBerlin
  • {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • {{ module.name|truncatechars:50 }}
  • - {% endif %} +
  • {{ module.name|truncatechars:50 }}
  • {% translate 'Submit a new proposal for this project' %}
  • @@ -25,6 +23,6 @@

    {% translate 'Submit a new proposal for this project' %}

    {% include 'meinberlin_contrib/components/alert.html' with alert_message='Error during validation. Please check your entries.' alert_type='danger' %} {% endif %} - {% include "meinberlin_budgeting/includes/proposal_form.html" with proposal=proposal cancel=module.get_detail_url %} + {% include "meinberlin_budgeting/includes/proposal_form.html" with proposal=proposal cancel=module.get_absolute_url %} {% endblock content %} diff --git a/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_moderate_form.html b/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_moderate_form.html index 117ae76acb..3bd7324be2 100644 --- a/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_moderate_form.html +++ b/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_moderate_form.html @@ -16,16 +16,14 @@ meinBerlin
  • - {% translate 'Project Overview' %} + {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • - {{ module.name|truncatechars:50 }} -
  • - {% endif %} +
  • + {{ module.name|truncatechars:50 }} +
  • {% translate 'Proposal' %}
  • diff --git a/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_update_form.html b/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_update_form.html index b9092c6648..4998aabd1c 100644 --- a/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_update_form.html +++ b/meinberlin/apps/budgeting/templates/meinberlin_budgeting/proposal_update_form.html @@ -1,24 +1,22 @@ {% extends "base.html" %} {% load i18n %} -{% block title %}{% blocktranslate with title=object.name %}Edit {{ title }}{% endblocktranslate %} — {{ block.super }}{% endblock %} +{% block title %}{% blocktranslate with title=object.name %}Edit {{ title }}{% endblocktranslate %} – {{ block.super }}{% endblock title %} {% block breadcrumbs %}
    -{% endblock %} +{% endblock breadcrumbs %} {% block content %}
    @@ -30,4 +28,4 @@

    {% translate 'Edit proposal' %}

    {% include "meinberlin_budgeting/includes/proposal_form.html" with proposal=proposal cancel=object.get_absolute_url %}
    -{% endblock %} +{% endblock content %} diff --git a/meinberlin/apps/budgeting/views.py b/meinberlin/apps/budgeting/views.py index 8bd26d76d8..a1c1cd8cf5 100644 --- a/meinberlin/apps/budgeting/views.py +++ b/meinberlin/apps/budgeting/views.py @@ -160,7 +160,7 @@ def get_back(self): are remembered when going back, we check if the referer is a module or project detail view and add the appropriate back url. """ - back_link = self.module.get_detail_url + back_link = self.module.get_absolute_url back_string = _("map") if "Referer" in self.request.headers: referer = self.request.headers["Referer"] diff --git a/meinberlin/apps/contrib/templates/meinberlin_contrib/item_detail.html b/meinberlin/apps/contrib/templates/meinberlin_contrib/item_detail.html index 631b88c18c..70e2fb8154 100644 --- a/meinberlin/apps/contrib/templates/meinberlin_contrib/item_detail.html +++ b/meinberlin/apps/contrib/templates/meinberlin_contrib/item_detail.html @@ -15,16 +15,14 @@ meinBerlin
  • - {% translate 'Project Overview' %} + {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • - {{ module.name|truncatechars:50 }} -
  • - {% endif %} +
  • + {{ module.name|truncatechars:50 }} +
  • {{ object.name }}
  • diff --git a/meinberlin/apps/documents/templates/meinberlin_documents/paragraph_detail.html b/meinberlin/apps/documents/templates/meinberlin_documents/paragraph_detail.html index 430762bc31..1b57143ff3 100644 --- a/meinberlin/apps/documents/templates/meinberlin_documents/paragraph_detail.html +++ b/meinberlin/apps/documents/templates/meinberlin_documents/paragraph_detail.html @@ -8,13 +8,9 @@ diff --git a/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_create_form.html b/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_create_form.html index 344835bbc9..820703b5a0 100644 --- a/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_create_form.html +++ b/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_create_form.html @@ -8,11 +8,9 @@ @@ -35,6 +33,6 @@

    {{ module.name }}

    {{ project.description }}

    {% endif %} - {% include "meinberlin_ideas/includes/idea_form.html" with idea=idea cancel=module.get_detail_url %} + {% include "meinberlin_ideas/includes/idea_form.html" with idea=idea cancel=module.get_absolute_url %} {% endblock content %} diff --git a/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_moderate_form.html b/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_moderate_form.html index f4ab2e7059..a8ecd3d52d 100644 --- a/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_moderate_form.html +++ b/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_moderate_form.html @@ -15,16 +15,14 @@ meinBerlin
  • - {% translate 'Project Overview' %} + {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • - {{ module.name|truncatechars:50 }} -
  • - {% endif %} +
  • + {{ module.name|truncatechars:50 }} +
  • {% translate 'Idea' %}
  • diff --git a/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_update_form.html b/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_update_form.html index 318296362c..ee128babb6 100644 --- a/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_update_form.html +++ b/meinberlin/apps/ideas/templates/meinberlin_ideas/idea_update_form.html @@ -8,11 +8,9 @@ @@ -34,6 +32,6 @@

    {{ module.name }}

    {% endif %} - {% include "meinberlin_mapideas/includes/mapidea_form.html" with cancel=module.get_detail_url %} + {% include "meinberlin_mapideas/includes/mapidea_form.html" with cancel=module.get_absolute_url %} {% endblock content %} diff --git a/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_moderate_form.html b/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_moderate_form.html index 46e687dd92..8d38437e05 100644 --- a/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_moderate_form.html +++ b/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_moderate_form.html @@ -14,9 +14,7 @@
  • meinBerlin
  • {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • {{ module.name|truncatechars:50 }}
  • - {% endif %} +
  • {{ module.name|truncatechars:50 }}
  • {% translate 'Idea' %}
  • {% translate 'Moderate idea' %}
  • diff --git a/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_update_form.html b/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_update_form.html index 0f1e826a0a..050fde6ff5 100644 --- a/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_update_form.html +++ b/meinberlin/apps/mapideas/templates/meinberlin_mapideas/mapidea_update_form.html @@ -10,9 +10,7 @@
  • meinBerlin
  • {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • {{ module.name|truncatechars:50 }}
  • - {% endif %} +
  • {{ module.name|truncatechars:50 }}
  • {% translate 'Idea' %}
  • {% translate 'Edit idea' %}
  • diff --git a/meinberlin/apps/maptopicprio/templates/meinberlin_maptopicprio/maptopic_detail.html b/meinberlin/apps/maptopicprio/templates/meinberlin_maptopicprio/maptopic_detail.html index 344f4fe5cc..16349baa5f 100644 --- a/meinberlin/apps/maptopicprio/templates/meinberlin_maptopicprio/maptopic_detail.html +++ b/meinberlin/apps/maptopicprio/templates/meinberlin_maptopicprio/maptopic_detail.html @@ -20,9 +20,7 @@
  • meinBerlin
  • {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • {{ module.name|truncatechars:50 }}
  • - {% endif %} +
  • {{ module.name|truncatechars:50 }}
  • {{ object.name }}
  • diff --git a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.de.email b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.de.email index bd274ebd1d..84c65ed956 100644 --- a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.de.email +++ b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.de.email @@ -22,7 +22,7 @@ die Online-Beteiligung im oben genannten Projekt endet bald. Sie können noch bis zum {{ action.obj.end_date }} Uhr daran teilnehmen. {% endblock %} -{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_detail_url }}{% endblock %} +{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_absolute_url }}{% endblock %} {% block cta_label %}Jetzt mitmachen{% endblock %} {% block reason %}Diese E-Mail wurde an {{ receiver.email }} gesendet. Sie haben die E-Mail erhalten, weil Sie oben genanntem Projekt folgen. Wenn Sie keine Benachrichtigungen mehr erhalten möchten, entfolgen Sie dem Projekt oder ändern Sie die Einstellungen zu Ihrem Nutzerkonto.{% endblock %} diff --git a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.en.email b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.en.email index 6c4b8c0d24..b92bc03609 100644 --- a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.en.email +++ b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_over_soon.en.email @@ -22,7 +22,7 @@ the online participation in the above mentioned project will end soon. You can still participate until {{ action.obj.end_date }}. {% endblock %} -{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_detail_url }}{% endblock %} +{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_absolute_url }}{% endblock %} {% block cta_label %}Join now{% endblock %} {% block reason %}This email was sent to {{ receiver.email }}. You have received the e-mail because you are following the above project. If you no longer want to receive notifications, unsubscribe from the project or change the settings for your account.{% endblock %} diff --git a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.de.email b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.de.email index b972360f30..ad7e771ea4 100644 --- a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.de.email +++ b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.de.email @@ -22,7 +22,7 @@ die Online-Beteiligung im oben genannten Projekt hat begonnen. Sie können bis zum {{ action.obj.end_date }} Uhr daran teilnehmen. {% endblock %} -{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_detail_url }}{% endblock %} +{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_absolute_url }}{% endblock %} {% block cta_label %}Jetzt mitmachen{% endblock %} {% block reason %}Diese E-Mail wurde an {{ receiver.email }} gesendet. Sie haben die E-Mail erhalten, weil Sie oben genanntem Projekt folgen. Wenn Sie keine Benachrichtigungen mehr erhalten möchten, entfolgen Sie dem Projekt oder ändern Sie die Einstellungen zu Ihrem Nutzerkonto.{% endblock %} diff --git a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.en.email b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.en.email index 4f91477ea0..8a66e8e7ff 100644 --- a/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.en.email +++ b/meinberlin/apps/notifications/templates/meinberlin_notifications/emails/notify_followers_phase_started.en.email @@ -22,7 +22,7 @@ Online participation for the above project has started. You can participate until {{ action.obj.end_date }}. {% endblock %} -{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_detail_url }}{% endblock %} +{% block cta_url %}{{ email.get_host }}{{ action.obj.module.get_absolute_url }}{% endblock %} {% block cta_label %}Join now{% endblock %} {% block reason %}This email was sent to {{ receiver.email }}. You have received the e-mail because you are following the above project. If you no longer want to receive notifications, unsubscribe from the project or change the settings for your account.{% endblock %} diff --git a/meinberlin/apps/topicprio/templates/meinberlin_topicprio/topic_detail.html b/meinberlin/apps/topicprio/templates/meinberlin_topicprio/topic_detail.html index dcc1a3e3ed..b1e235cd82 100644 --- a/meinberlin/apps/topicprio/templates/meinberlin_topicprio/topic_detail.html +++ b/meinberlin/apps/topicprio/templates/meinberlin_topicprio/topic_detail.html @@ -10,9 +10,7 @@
  • meinBerlin
  • {% translate 'Kiezradar' %}
  • {{ project.name|truncatechars:50 }}
  • - {% if module.is_in_module_cluster %} -
  • {{ module.name|truncatechars:50 }}
  • - {% endif %} +
  • {{ module.name|truncatechars:50 }}
  • {{ object.name }}
  • diff --git a/tests/budgeting/test_views_integration.py b/tests/budgeting/test_views_integration.py index c3fcf16a00..5d12c9e207 100644 --- a/tests/budgeting/test_views_integration.py +++ b/tests/budgeting/test_views_integration.py @@ -349,10 +349,10 @@ def test_detail_view_back_link( assert response.context["back_string"] == _("list") response = client.get(url, HTTP_referer="/") - assert response.context["back"] == module.get_detail_url + assert response.context["back"]() == module.get_absolute_url() assert response.context["back_string"] == _("map") response = client.get(url) - assert response.context["back"] == module.get_detail_url + assert response.context["back"]() == module.get_absolute_url() assert response.context["back_string"] == _("map") diff --git a/tests/kiezradar/test_api_search_profile.py b/tests/kiezradar/test_api_search_profile.py index 2eb5c1e2a9..642f203965 100644 --- a/tests/kiezradar/test_api_search_profile.py +++ b/tests/kiezradar/test_api_search_profile.py @@ -1,6 +1,8 @@ import pytest +from django.utils.translation import gettext as _ from django.urls import reverse + from adhocracy4.projects.models import Topic from meinberlin.apps.kiezradar.models import KiezRadar from meinberlin.apps.kiezradar.models import SearchProfile @@ -164,7 +166,7 @@ def test_create_and_update_search_profile_without_name(apiclient, user, setup_da assert response.status_code == 201 data = response.json() - assert data["name"] == "Searchprofile 1" + assert data["name"] == _("Searchprofile %d") % 1 assert data["number"] == 1 assert data["description"] == payload["description"] assert data["plans_only"] is False @@ -331,7 +333,7 @@ def test_creating_multiple_search_profiles_assign_correct_number( response = apiclient.post(url, payload, format="json") assert response.status_code == 201 data = response.json() - assert data["name"] == "Searchprofile " + str(i) + assert data["name"] == _("Searchprofile %d") % i assert data["number"] == i assert SearchProfile.objects.count() == 5