Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions src/staff/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.forms import Form
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404
from django.urls import reverse_lazy
from django.urls import reverse, reverse_lazy
from django.utils.timezone import now
from django.utils.translation import gettext as _
from django.views.generic import CreateView, DetailView, TemplateView
Expand Down Expand Up @@ -309,15 +309,18 @@ def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
)
return context

def get_success_url(self) -> str:
return reverse(
"staff:order-extraction-samples-lab", kwargs={"pk": self.get_order().pk}
)

def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse:
status_name = request.POST.get("status")
selected_ids = request.POST.getlist("checked")

redirect_url = self.request.path

if not selected_ids or not status_name:
messages.error(request, "No samples or status selected.")
return HttpResponseRedirect(redirect_url)
return HttpResponseRedirect(self.get_success_url())

order = self.get_order()

Expand All @@ -328,7 +331,7 @@ def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse:
)
except SampleStatus.DoesNotExist:
messages.error(request, f"Status '{status_name}' not found.")
return HttpResponseRedirect(redirect_url)
return HttpResponseRedirect(self.get_success_url())

samples = Sample.objects.filter(id__in=selected_ids)

Expand All @@ -343,7 +346,7 @@ def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse:
messages.success(
request, f"{len(samples)} samples updated with status '{status_name}'."
)
return HttpResponseRedirect(redirect_url)
return HttpResponseRedirect(self.get_success_url())


class ManaullyCheckedOrderActionView(SingleObjectMixin, ActionView):
Expand Down