Skip to content

Commit b753033

Browse files
authored
fix: RedirectBackMixin (#987)
1 parent 0f49467 commit b753033

File tree

7 files changed

+23
-15
lines changed

7 files changed

+23
-15
lines changed

bullet/bullet_admin/mixins.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,12 @@ def get_context_data(self, **kwargs):
122122

123123

124124
class RedirectBackMixin:
125-
def get_default_success_url(self):
125+
default_success_url = None
126+
127+
def get_default_success_url(self) -> str:
128+
if self.default_success_url:
129+
return self.default_success_url
130+
126131
raise ImproperlyConfigured(
127132
"No URL to redirect to. Provide a get_default_success_url."
128133
)

bullet/bullet_admin/templates/bullet_admin/components/link.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% load utils %}
2-
{% query_transform back=request.get_full_path as back %}
2+
{% query_transform next=request.get_full_path as back %}
33
<a href="{{ attributes.url }}{% if not attributes.disable_back %}{{ back }}{% endif %}"
44
class="p-2 -m-2 {% if attributes.type == "edit" %} text-green-600 hover:text-green-400 {% elif attributes.type == "delete" %} text-red-600 hover:text-red-400 {% else %} text-blue-600 hover:text-blue-400 {% endif %}"
55
title="{% if attributes.type == "edit" %}Edit{% elif attributes.type == "delete" %}Delete{% elif attributes.type == "view" %}View{% elif attributes.type == "history" %}History{% elif attributes.type == "internal-view" %}View{% elif attributes.type == "download" %}Download sources{% elif attributes.type == "generate" %}Generate documents{% endif %}">

bullet/bullet_admin/templates/bullet_admin/generic/list.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
{% endif %}
1919
{% endslot %}
2020
{% slot buttons %}
21-
{% query_replace back=request.get_full_path as back %}
21+
{% query_replace next=request.get_full_path as back %}
2222
{% if help_url %}
2323
{% #abtn icon="mdi:help" label="Help" url=help_url|add:back %}
2424
{% endif %}
@@ -162,13 +162,13 @@
162162
{% if forloop.first %}
163163
{% if view_url %}
164164
<a class="link absolute inset-0"
165-
href="{{ view_url }}{% query_transform back=request.get_full_path %}"></a>
165+
href="{{ view_url }}{% query_transform next=request.get_full_path %}"></a>
166166
{% elif edit_url %}
167167
<a class="link absolute inset-0"
168-
href="{{ edit_url }}{% query_transform back=request.get_full_path %}"></a>
168+
href="{{ edit_url }}{% query_transform next=request.get_full_path %}"></a>
169169
{% elif delete_url %}
170170
<a class="link absolute inset-0"
171-
href="{{ delete_url }}{% query_transform back=request.get_full_path %}"></a>
171+
href="{{ delete_url }}{% query_transform next=request.get_full_path %}"></a>
172172
{% endif %}
173173
{% endif %}
174174
{% if item or item == 0 %}{{ item }}{% endif %}

bullet/bullet_admin/templates/bullet_admin/scanning/_review_teams.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
{% add_query back_url venue=venue.id as back_url %}
99
<p>
1010
All teams in this venue are reviewed. Please, <a class="link"
11-
href="{% url "badmin:venue_finish_review" venue.id %}?back={{ back_url|urlencode }}">finish the review</a> when ready.
11+
href="{% url "badmin:venue_finish_review" venue.id %}?next={{ back_url|urlencode }}">finish the review</a> when ready.
1212
</p>
1313
{% else %}
1414
<p>

bullet/bullet_admin/templates/bullet_admin/venues/waiting_list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
Edit
9191
</a>
9292
{% if not competition.results_public %}
93-
<a href="{% url "badmin:team_to_competition" pk=team.id %}?back={{ request.get_full_path|urlencode }}"
93+
<a href="{% url "badmin:team_to_competition" pk=team.id %}?next={{ request.get_full_path|urlencode }}"
9494
class="text-gray-400 hover:text-red-600 text-left flex items-center gap-2">
9595
<span class="iconify"
9696
data-icon="mdi:play"></span>

bullet/bullet_admin/views/albums.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
from bullet_admin.access import PhotoUploadAccess
1313
from bullet_admin.forms.album import AlbumForm
14+
from bullet_admin.mixins import RedirectBackMixin
1415
from bullet_admin.utils import get_active_competition
1516
from bullet_admin.views import GenericDelete, GenericForm, GenericList
1617

@@ -53,7 +54,7 @@ def dispatch(self, request, *args, **kwargs):
5354
return super().dispatch(request, *args, **kwargs)
5455

5556

56-
class AlbumFormMixin(GenericForm):
57+
class AlbumFormMixin(RedirectBackMixin, GenericForm):
5758
form_class = AlbumForm
5859
form_multipart = True
5960

@@ -80,7 +81,7 @@ def form_valid(self, form):
8081
photo.save()
8182
return HttpResponseRedirect(self.get_success_url())
8283

83-
def get_success_url(self):
84+
def get_default_success_url(self):
8485
return reverse("badmin:album_edit", kwargs={"pk": self.object.id})
8586

8687

@@ -105,9 +106,9 @@ def form_valid(self, form):
105106
return ret
106107

107108

108-
class AlbumDeleteView(PhotoUploadAccess, GenericDelete, DeleteView):
109+
class AlbumDeleteView(PhotoUploadAccess, RedirectBackMixin, GenericDelete, DeleteView):
109110
model = Album
110-
success_url = reverse_lazy("badmin:album_list")
111+
default_success_url = reverse_lazy("badmin:album_list")
111112

112113
def form_valid(self, form):
113114
super().form_valid(form)

bullet/bullet_admin/views/education.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from bullet import search
88
from bullet_admin.access import CountryAdminAccess, CountryAdminInAccess
99
from bullet_admin.forms.education import SchoolForm
10+
from bullet_admin.mixins import RedirectBackMixin
1011
from bullet_admin.utils import get_allowed_countries
1112
from bullet_admin.views import GenericForm, GenericList
1213

@@ -69,14 +70,15 @@ def get_edit_url(self, school: School) -> str:
6970
class SchoolUpdateView(
7071
CountryAdminInAccess,
7172
SchoolQuerySetMixin,
73+
RedirectBackMixin,
7274
GenericForm,
7375
UpdateView,
7476
):
7577
form_class = SchoolForm
7678
template_name = "bullet_admin/education/school_form.html"
7779
form_title = "Edit school"
7880
require_unlocked_competition = False
79-
success_url = reverse_lazy("badmin:school_list")
81+
default_success_url = reverse_lazy("badmin:school_list")
8082

8183
def get_permission_country(self):
8284
return self.get_object().country
@@ -93,12 +95,12 @@ def form_valid(self, form):
9395

9496

9597
class SchoolCreateView(
96-
CountryAdminAccess, SchoolQuerySetMixin, GenericForm, CreateView
98+
CountryAdminAccess, SchoolQuerySetMixin, RedirectBackMixin, GenericForm, CreateView
9799
):
98100
require_unlocked_competition = False
99101
form_class = SchoolForm
100102
form_title = "New school"
101-
success_url = reverse_lazy("badmin:school_list")
103+
default_success_url = reverse_lazy("badmin:school_list")
102104

103105
def form_valid(self, form):
104106
school: School = form.save(commit=False)

0 commit comments

Comments
 (0)