Skip to content

Commit d2527b1

Browse files
committed
Apply for all settings views
1 parent f002c87 commit d2527b1

3 files changed

Lines changed: 15 additions & 8 deletions

File tree

src/onegov/org/layout.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2741,8 +2741,10 @@ def links() -> Iterator[Link | LinkGroup]:
27412741
if self.request.is_manager:
27422742
yield Link(
27432743
text=_('Edit'),
2744-
url=self.request.link(self.request.app.org,
2745-
'event-settings'),
2744+
url=self.request.return_here(
2745+
self.request.link(self.request.app.org,
2746+
'event-settings')
2747+
),
27462748
attrs={'class': 'edit-link'}
27472749
)
27482750

src/onegov/org/views/settings.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from markupsafe import Markup
88
from webob.exc import HTTPForbidden
99
from onegov.api.models import ApiKey
10-
from onegov.core.elements import Link, Confirm, Intercooler, BackLink
10+
from onegov.core.elements import Link, Confirm, Intercooler
1111
from onegov.core.security import Secret
1212
from onegov.core.templates import render_macro
1313
from onegov.form import Form
@@ -136,16 +136,22 @@ def handle_generic_settings(
136136
subtitle: str | None = None
137137
) -> RenderData | Response:
138138

139+
settings_url = request.link(self, name='settings')
140+
139141
layout = layout or SettingsLayout(self, request, title)
140142
layout.edit_mode = True
141-
layout.editmode_links[1] = BackLink(attrs={'class': 'cancel-link'})
143+
layout.editmode_links[1] = Link(
144+
text=_('Cancel'),
145+
url=request.return_to_url(settings_url),
146+
attrs={'class': 'cancel-link'}
147+
)
142148
request.include('fontpreview')
143149

144150
if form.submitted(request):
145151
form.populate_obj(self)
146152

147153
request.success(_('Your changes were saved'))
148-
return request.redirect(request.link(self, name='settings'))
154+
return request.redirect(settings_url)
149155
elif request.method == 'GET':
150156
form.process(obj=self)
151157

tests/onegov/org/test_views_event.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,7 +1170,7 @@ def test_event_settings_return_to(client: Client) -> None:
11701170
# opening the event settings from the events overview remembers the origin,
11711171
# so both the cancel link and a successful save return to the overview
11721172
events = client.get('/events')
1173-
settings = events.click('Einstellungen', href='event-settings')
1173+
settings = events.click('Bearbeiten', href='event-settings')
11741174

11751175
cancel_href = settings.pyquery('a.cancel-link').attr('href')
11761176
assert cancel_href.endswith('/events')
@@ -1187,8 +1187,7 @@ def test_event_edit_cancel_returns_to_origin(client: Client) -> None:
11871187
client.login_admin()
11881188

11891189
# the occurrence page links to the edit view with a return-to parameter,
1190-
# so cancelling the edit returns to that occurrence instead of using the
1191-
# browser history
1190+
# so cancelling the edit returns to that occurrence
11921191
occurrence = client.get('/events').click('Generalversammlung')
11931192
origin = occurrence.request.url
11941193

0 commit comments

Comments
 (0)