Skip to content

Commit

Permalink
apps/budgeting: display "map" as default back-link text, apps/proriza…
Browse files Browse the repository at this point in the history
…tions: display "back" as back-link text - fixes #4900
fuzzylogic2000 authored and khamui committed Feb 7, 2023
1 parent 6823f75 commit 6ca3802
Showing 4 changed files with 15 additions and 8 deletions.
7 changes: 4 additions & 3 deletions meinberlin/apps/budgeting/views.py
Original file line number Diff line number Diff line change
@@ -140,21 +140,22 @@ 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_string = _("map")
if "Referer" in self.request.headers:
referer = self.request.headers["Referer"]
parsed_url = urlparse(referer)
match = resolve(parsed_url.path)
if match.url_name == "project-detail" or match.url_name == "module-detail":
back_mode = None
back_string = _("map")
if "mode" in parse_qs(parsed_url.query):
back_mode = parse_qs(parsed_url.query)["mode"][0]
if back_mode == "list":
back_string = _("list")
back_link = referer + "#proposal_{}".format(self.object.id)
return back_link, back_string
return None, None
return None, None
return back_link, back_string
return back_link, back_string

def has_valid_token_in_session(self, request):
"""Return whether a valid token is stored in the session.
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@
<li>
<a href="{{ module.get_detail_url }}">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
{% translate 'list' %}
{% translate 'back' %}
</a>
</li>
</ul>
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@
<li>
<a href="{{ module.get_detail_url }}">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
{% translate 'list' %}
{% translate 'back' %}
</a>
</li>
</ul>
12 changes: 9 additions & 3 deletions tests/budgeting/test_views_integration.py
Original file line number Diff line number Diff line change
@@ -208,32 +208,38 @@ def test_detail_view_back_link(client, phase_factory, proposal_factory):
url = item.get_absolute_url()
project_referer = reverse("project-detail", kwargs={"slug": item.project.slug})
module_referer = reverse("module-detail", kwargs={"module_slug": item.module.slug})
filter_string = "?is_archived=&page=1&search="
filter_string = "?mode=list&is_archived=&page=1&search="
filtered_project_referer = project_referer + filter_string
filtered_module_referer = module_referer + filter_string
with freeze_phase(phase):
response = client.get(url, HTTP_referer=project_referer)
assert response.context["back"] == "{}#proposal_{}".format(
project_referer, item.id
)
assert response.context["back_string"] == "map"
response = client.get(url, HTTP_referer=module_referer)
assert response.context["back"] == "{}#proposal_{}".format(
module_referer, item.id
)
assert response.context["back_string"] == "map"

response = client.get(url, HTTP_referer=filtered_project_referer)
assert response.context["back"] == "{}#proposal_{}".format(
filtered_project_referer, item.id
)
assert response.context["back_string"] == "list"
response = client.get(url, HTTP_referer=filtered_module_referer)
assert response.context["back"] == "{}#proposal_{}".format(
filtered_module_referer, item.id
)
assert response.context["back_string"] == "list"

response = client.get(url, HTTP_referer="/")
assert not response.context["back"]
assert response.context["back"] == module.get_detail_url
assert response.context["back_string"] == "map"
response = client.get(url)
assert not response.context["back"]
assert response.context["back"] == module.get_detail_url
assert response.context["back_string"] == "map"


@pytest.mark.django_db

0 comments on commit 6ca3802

Please sign in to comment.