From 31dbc6fd612911392850a58e8ad22c1b9174e2fe Mon Sep 17 00:00:00 2001 From: Bertine <112892518+aastabk@users.noreply.github.com> Date: Mon, 14 Jul 2025 07:46:45 +0200 Subject: [PATCH 01/23] Only one button for generating genlab id and set as "processing" (#248) --- src/genlab_bestilling/models.py | 8 ---- .../staff/extractionorder_detail.html | 7 +-- src/staff/templates/staff/sample_filter.html | 43 ++++++++++--------- src/staff/urls.py | 6 --- src/staff/views.py | 39 ++--------------- 5 files changed, 27 insertions(+), 76 deletions(-) diff --git a/src/genlab_bestilling/models.py b/src/genlab_bestilling/models.py index 8211e20f..3c0549b2 100644 --- a/src/genlab_bestilling/models.py +++ b/src/genlab_bestilling/models.py @@ -495,14 +495,6 @@ def confirm_order(self, persist: bool = True) -> None: if persist: super().confirm_order() - def order_manually_checked(self) -> None: - """ - Set the order as checked by the lab staff, generate a genlab id - """ - self.internal_status = self.Status.CHECKED - self.status = self.OrderStatus.PROCESSING - self.save(update_fields=["internal_status", "status"]) - @transaction.atomic def order_selected_checked( self, diff --git a/src/staff/templates/staff/extractionorder_detail.html b/src/staff/templates/staff/extractionorder_detail.html index cf21b4c0..40da9dbd 100644 --- a/src/staff/templates/staff/extractionorder_detail.html +++ b/src/staff/templates/staff/extractionorder_detail.html @@ -45,17 +45,12 @@

Order {{ object }}

{% endif %} - {% if object.status == object.OrderStatus.DELIVERED %} - {% url 'staff:order-manually-checked' pk=object.id as confirm_check_url %} - {% action-button action=confirm_check_url class="bg-secondary text-white" submit_text="Confirm - Order checked" csrf_token=csrf_token %} - {% endif %} - {% if object.status != object.OrderStatus.DRAFT %} {% url 'staff:order-to-draft' pk=object.id as to_draft_url %} {% action-button action=to_draft_url class="bg-secondary text-white" submit_text="Convert to draft" csrf_token=csrf_token %} {% endif %} - {% if object.next_status %} + {% if object.status == object.OrderStatus.DELIVERED and object.internal_status == "checked" %} {% url 'staff:order-to-next-status' pk=object.id as to_next_status_url %} {% with "Set as "|add:object.next_status as btn_name %} {% action-button action=to_next_status_url class="bg-secondary text-white" submit_text=btn_name csrf_token=csrf_token %} diff --git a/src/staff/templates/staff/sample_filter.html b/src/staff/templates/staff/sample_filter.html index 430cc1b9..1b522210 100644 --- a/src/staff/templates/staff/sample_filter.html +++ b/src/staff/templates/staff/sample_filter.html @@ -21,28 +21,29 @@ {% block page-inner %} {% if order %} -
- back - Download CSV - Lab -
- -
- {% csrf_token %} - - +
+ back + Download CSV + Lab + {% if order.status == order.OrderStatus.DELIVERED and order.internal_status == "checked" %} + {% url 'staff:order-to-next-status' pk=order.pk as to_next_status_url %} + {% action-button action=to_next_status_url class="bg-secondary text-white" submit_text="Set as processing" csrf_token=csrf_token %} + {% endif %} +
-
This page is under development. The genlab IDs will generate for all, and without sorting as per now.
- - {% render_table table %} + + {% csrf_token %} + + + {% render_table table %}
- + {% endif %} -{% endblock page-inner %} + +{% endblock %} diff --git a/src/staff/urls.py b/src/staff/urls.py index b43c512e..f977135b 100644 --- a/src/staff/urls.py +++ b/src/staff/urls.py @@ -12,7 +12,6 @@ ExtractionPlateDetailView, ExtractionPlateListView, GenerateGenlabIDsView, - ManaullyCheckedOrderActionView, MarkAsSeenView, OrderAnalysisSamplesListView, OrderExtractionSamplesListView, @@ -69,11 +68,6 @@ OrderToNextStatusActionView.as_view(), name="order-to-next-status", ), - path( - "orders//manually-checked/", - ManaullyCheckedOrderActionView.as_view(), - name="order-manually-checked", - ), path( "//add-staff/", StaffEditView.as_view(), diff --git a/src/staff/views.py b/src/staff/views.py index 7b44831f..1a60ab35 100644 --- a/src/staff/views.py +++ b/src/staff/views.py @@ -485,40 +485,6 @@ def post(self, request: HttpRequest, *args, **kwargs) -> JsonResponse: return JsonResponse({"error": "Sample not found"}, status=404) -class ManaullyCheckedOrderActionView(SingleObjectMixin, ActionView): - model = ExtractionOrder - - def get_queryset(self) -> models.QuerySet[ExtractionOrder]: - return ExtractionOrder.objects.filter(status=Order.OrderStatus.DELIVERED) - - def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: - self.object = self.get_object() - return super().post(request, *args, **kwargs) - - def form_valid(self, form: Form) -> HttpResponse: - try: - # TODO: check state transition - self.object.order_manually_checked() - messages.add_message( - self.request, - messages.SUCCESS, - _("The order was checked, GenLab IDs will be generated"), - ) - except Exception as e: - messages.error(self.request, f"Error: {str(e)}") - - return super().form_valid(form) - - def get_success_url(self) -> str: - return reverse_lazy( - f"staff:order-{self.object.get_type()}-detail", - kwargs={"pk": self.object.id}, - ) - - def form_invalid(self, form: Form) -> HttpResponse: - return HttpResponseRedirect(self.get_success_url()) - - class StaffEditView(StaffMixin, SingleObjectMixin, TemplateView): form_class = OrderStaffForm template_name = "staff/order_staff_edit.html" @@ -640,7 +606,10 @@ def form_valid(self, form: Form) -> HttpResponse: return super().form_valid(form) def get_success_url(self) -> str: - return reverse_lazy(f"staff:order-{self.object.get_type()}-list") + return reverse_lazy( + f"staff:order-{self.object.get_type()}-detail", + kwargs={"pk": self.object.pk}, + ) def form_invalid(self, form: Form) -> HttpResponse: return HttpResponseRedirect(self.get_success_url()) From c259dde4a6094cf47798d83f310093d47fdba459 Mon Sep 17 00:00:00 2001 From: Morten Lyngstad <81157760+mortenlyn@users.noreply.github.com> Date: Mon, 14 Jul 2025 08:06:56 +0200 Subject: [PATCH 02/23] Add logic to mark order as completed when all samples are isolated (#250) Updated checkbox-name so that it is connected to the order-id Co-authored-by: Morten Madsen Lyngstad --- src/staff/tables.py | 5 +++++ src/staff/templates/staff/sample_lab.html | 2 +- src/staff/views.py | 27 +++++++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/staff/tables.py b/src/staff/tables.py index a9ce9222..009ce00f 100644 --- a/src/staff/tables.py +++ b/src/staff/tables.py @@ -284,6 +284,11 @@ class Meta: "isolation_method", ] + def render_checked(self, record: Any) -> str: + return mark_safe( # noqa: S308 + f'' # noqa: E501 + ) + class OrderExtractionSampleTable(SampleBaseTable): class Meta(SampleBaseTable.Meta): diff --git a/src/staff/templates/staff/sample_lab.html b/src/staff/templates/staff/sample_lab.html index 47368e3c..155c65ea 100644 --- a/src/staff/templates/staff/sample_lab.html +++ b/src/staff/templates/staff/sample_lab.html @@ -54,7 +54,7 @@

{% block page-title %}{% if order %}{{ order }} - Samp const noteInputs = document.querySelectorAll('.internal_note-input'); selectAll?.addEventListener('change', function() { - const checkboxes = document.querySelectorAll('input[type="checkbox"]'); + const checkboxes = document.querySelectorAll(`input[name="checked-{{ order.pk }}"]`); checkboxes.forEach((cb) => { cb.checked = selectAll.checked; }) diff --git a/src/staff/views.py b/src/staff/views.py index 1a60ab35..5f44b6d3 100644 --- a/src/staff/views.py +++ b/src/staff/views.py @@ -4,7 +4,7 @@ from django.contrib import messages from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from django.db import models -from django.db.models import Count +from django.db.models import Count, Exists, OuterRef from django.forms import Form from django.http import HttpRequest, HttpResponse, HttpResponseRedirect, JsonResponse from django.shortcuts import get_object_or_404 @@ -376,7 +376,7 @@ def get_success_url(self) -> str: def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: status_name = request.POST.get("status") - selected_ids = request.POST.getlist("checked") + selected_ids = request.POST.getlist(f"checked-{self.get_order().pk}") isolation_method = request.POST.get("isolation_method") if not selected_ids: @@ -390,6 +390,10 @@ def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: if status_name: self.assign_status_to_samples(samples, status_name, order, request) + if status_name == "isolated": + # Cannot use "samples" here + # because we need to check all samples in the order + self.check_all_isolated(Sample.objects.filter(order=order)) if isolation_method: self.update_isolation_methods(samples, isolation_method, request) return HttpResponseRedirect(self.get_success_url()) @@ -436,6 +440,25 @@ def assign_status_to_samples( request, f"{samples.count()} samples updated with status '{status_name}'." ) + # Checks if all samples in the order are isolated + # If they are, it updates the order status to completed + def check_all_isolated(self, samples: models.QuerySet) -> None: + samples_with_flag = samples.annotate( + has_isolated=Exists( + SampleStatusAssignment.objects.filter( + sample=OuterRef("pk"), + status=SampleStatusAssignment.SampleStatus.ISOLATED, + ) + ) + ) + + if not samples_with_flag.filter(has_isolated=False).exists(): + self.get_order().to_next_status() + messages.success( + self.request, + "All samples are isolated. The order status is updated to completed.", + ) + def update_isolation_methods( self, samples: models.QuerySet, isolation_method: str, request: HttpRequest ) -> None: From 6dd52a7b0c4816e968f67830289f6d0360b4e3bd Mon Sep 17 00:00:00 2001 From: Ole Magnus Date: Mon, 14 Jul 2025 08:11:01 +0200 Subject: [PATCH 03/23] Add priority to urgent orders table (#251) --- src/staff/tables.py | 9 ++++++++- src/staff/templatetags/order_tags.py | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/staff/tables.py b/src/staff/tables.py index 009ce00f..772be91a 100644 --- a/src/staff/tables.py +++ b/src/staff/tables.py @@ -390,6 +390,13 @@ def render_id( class UrgentOrderTable(StaffIDMixinTable, StatusMixinTable): + priority = tables.TemplateColumn( + orderable=False, + verbose_name="Priority", + accessor="priority", + template_name="staff/components/priority_column.html", + ) + description = tables.Column( accessor="genrequest__name", verbose_name="Description", @@ -409,7 +416,7 @@ def render_delivery_date(self, value: Any) -> str: class Meta: model = Order - fields = ["id", "description", "delivery_date", "status"] + fields = ["priority", "id", "description", "delivery_date", "status"] empty_text = "No urgent orders" template_name = "django_tables2/tailwind_inner.html" diff --git a/src/staff/templatetags/order_tags.py b/src/staff/templatetags/order_tags.py index 77f63f48..b9c6046f 100644 --- a/src/staff/templatetags/order_tags.py +++ b/src/staff/templatetags/order_tags.py @@ -22,6 +22,13 @@ def urgent_orders_table(context: dict, area: Area | None = None) -> dict: ) .exclude(status=Order.OrderStatus.DRAFT) .select_related("genrequest") + .annotate( + priority=models.Case( + models.When(is_urgent=True, then=Order.OrderPriority.URGENT), + models.When(is_prioritized=True, then=Order.OrderPriority.PRIORITIZED), + default=1, + ), + ) ) if area: From a223d847a0b82652a21168eb49ab4208257e1f0a Mon Sep 17 00:00:00 2001 From: Morten Lyngstad <81157760+mortenlyn@users.noreply.github.com> Date: Mon, 14 Jul 2025 09:08:48 +0200 Subject: [PATCH 04/23] Exclude 'pop_id' and 'location' fields from OrderExtractionSampleTable (#254) Co-authored-by: Morten Madsen Lyngstad --- src/staff/tables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/staff/tables.py b/src/staff/tables.py index 772be91a..55933332 100644 --- a/src/staff/tables.py +++ b/src/staff/tables.py @@ -292,7 +292,7 @@ def render_checked(self, record: Any) -> str: class OrderExtractionSampleTable(SampleBaseTable): class Meta(SampleBaseTable.Meta): - fields = SampleBaseTable.Meta.fields + exclude = ("pop_id", "location") class OrderAnalysisSampleTable(tables.Table): From 9cf89ff5f2d643169382c46870c952dcc89cb5cc Mon Sep 17 00:00:00 2001 From: Bertine <112892518+aastabk@users.noreply.github.com> Date: Mon, 14 Jul 2025 10:21:14 +0200 Subject: [PATCH 05/23] Only genrequest members can mark an order as seen (#252) * Only genrequest members can mark an order as seen * Move logic closer to frontend * Removed unnecessary code, checks buttons everywhere, added check in post. * Removed prints * Fixed linter error --- src/staff/tables.py | 4 ++-- src/staff/templates/staff/analysisorder_detail.html | 3 ++- src/staff/templates/staff/components/seen_column.html | 8 +++++++- src/staff/templates/staff/extractionorder_detail.html | 3 ++- src/staff/templatetags/order_tags.py | 6 ++++++ src/staff/views.py | 11 +++++++++++ 6 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/staff/tables.py b/src/staff/tables.py index 55933332..b64a29d1 100644 --- a/src/staff/tables.py +++ b/src/staff/tables.py @@ -423,10 +423,10 @@ class Meta: class NewUnseenOrderTable(StaffIDMixinTable): seen = tables.TemplateColumn( + verbose_name="", orderable=False, - verbose_name="Seen", - template_name="staff/components/seen_column.html", empty_values=(), + template_name="staff/components/seen_column.html", ) description = tables.Column( diff --git a/src/staff/templates/staff/analysisorder_detail.html b/src/staff/templates/staff/analysisorder_detail.html index fc2ae045..a31480dd 100644 --- a/src/staff/templates/staff/analysisorder_detail.html +++ b/src/staff/templates/staff/analysisorder_detail.html @@ -1,5 +1,6 @@ {% extends "staff/base.html" %} {% load i18n %} +{% load order_tags %} {% block content %} @@ -18,7 +19,7 @@

Order {{ object }}

- {% if not object.is_seen %} + {% if object.genrequest.responsible_staff.all|is_responsible:request.user and not object.is_seen %}
{% csrf_token %} diff --git a/src/staff/templates/staff/components/seen_column.html b/src/staff/templates/staff/components/seen_column.html index 4e318c3c..8d0329b3 100644 --- a/src/staff/templates/staff/components/seen_column.html +++ b/src/staff/templates/staff/components/seen_column.html @@ -1,5 +1,11 @@ +{% load order_tags %} + +{% if record.genrequest.responsible_staff.all|is_responsible:request.user %} {% csrf_token %} - +
+{% endif %} diff --git a/src/staff/templates/staff/extractionorder_detail.html b/src/staff/templates/staff/extractionorder_detail.html index 40da9dbd..f48e3e2b 100644 --- a/src/staff/templates/staff/extractionorder_detail.html +++ b/src/staff/templates/staff/extractionorder_detail.html @@ -1,5 +1,6 @@ {% extends "staff/base.html" %} {% load i18n %} +{% load order_tags %} {% block content %} @@ -38,7 +39,7 @@

Order {{ object }}

- {% if not object.is_seen %} + {% if object.genrequest.responsible_staff.all|is_responsible:request.user and not object.is_seen %}
{% csrf_token %} diff --git a/src/staff/templatetags/order_tags.py b/src/staff/templatetags/order_tags.py index b9c6046f..57d34388 100644 --- a/src/staff/templatetags/order_tags.py +++ b/src/staff/templatetags/order_tags.py @@ -1,6 +1,7 @@ from django import template from django.db import models +from capps.users.models import User from genlab_bestilling.models import Area, Order from ..tables import ( @@ -14,6 +15,11 @@ register = template.Library() +@register.filter +def is_responsible(staff_queryset: models.QuerySet, user: User) -> bool: + return staff_queryset.filter(id=user.id).exists() + + @register.inclusion_tag("staff/components/order_table.html", takes_context=True) def urgent_orders_table(context: dict, area: Area | None = None) -> dict: urgent_orders = ( diff --git a/src/staff/views.py b/src/staff/views.py index 5f44b6d3..4b270d0d 100644 --- a/src/staff/views.py +++ b/src/staff/views.py @@ -190,6 +190,17 @@ def get_object(self) -> Order: def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: try: order = self.get_object() + + if not order.genrequest.responsible_staff.filter( + id=request.user.id + ).exists(): + messages.error( + request, _("You are not authorized to mark this order as seen.") + ) + return HttpResponseRedirect( + self.get_return_url(request.POST.get("return_to")) + ) + order.toggle_seen() messages.success(request, _("Order is marked as seen")) except Exception as e: From 5ce34454a7d57778e9d2139ffeb0039b9a548fc4 Mon Sep 17 00:00:00 2001 From: Ole Magnus Date: Mon, 14 Jul 2025 14:33:44 +0200 Subject: [PATCH 06/23] Count isolated samples (#260) --- src/staff/tables.py | 4 ++-- src/staff/templatetags/order_tags.py | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/staff/tables.py b/src/staff/tables.py index b64a29d1..c9fe7c7c 100644 --- a/src/staff/tables.py +++ b/src/staff/tables.py @@ -542,9 +542,9 @@ class AssignedOrderTable(StatusMixinTable, StaffIDMixinTable): orderable=False, ) - def render_samples_completed(self, value: int) -> str: + def render_samples_completed(self, value: int, record: Order) -> str: if value > 0: - return "- / " + str(value) + return str(record.isolated_sample_count) + " / " + str(value) return "-" class Meta: diff --git a/src/staff/templatetags/order_tags.py b/src/staff/templatetags/order_tags.py index 57d34388..4f321144 100644 --- a/src/staff/templatetags/order_tags.py +++ b/src/staff/templatetags/order_tags.py @@ -2,7 +2,7 @@ from django.db import models from capps.users.models import User -from genlab_bestilling.models import Area, Order +from genlab_bestilling.models import Area, Order, SampleStatusAssignment from ..tables import ( AssignedOrderTable, @@ -147,7 +147,20 @@ def assigned_orders_table(context: dict) -> dict: ) .select_related("genrequest") .annotate( - sample_count=models.Count("extractionorder__samples", distinct=True), + isolated_sample_count=models.Count( + "sample_status_assignments", + distinct=True, + filter=models.Q( + sample_status_assignments__status=SampleStatusAssignment.SampleStatus.ISOLATED, + ), + ), + sample_count=models.Case( + models.When( + extractionorder__isnull=False, + then=models.Count("extractionorder__samples", distinct=True), + ), + default=0, + ), priority=models.Case( models.When(is_urgent=True, then=Order.OrderPriority.URGENT), models.When(is_prioritized=True, then=Order.OrderPriority.PRIORITIZED), From 27ae878dc5c1ab48de80c1bb816293f5dfb922a2 Mon Sep 17 00:00:00 2001 From: Ole Magnus Date: Tue, 15 Jul 2025 09:28:56 +0200 Subject: [PATCH 07/23] Assign staff to all orders (#263) --- src/staff/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/staff/views.py b/src/staff/views.py index 4b270d0d..018584fd 100644 --- a/src/staff/views.py +++ b/src/staff/views.py @@ -527,7 +527,7 @@ def get_queryset(self) -> models.QuerySet[Order] | models.QuerySet[Genrequest]: model_type = self._get_model_type() if model_type == "genrequest": return Genrequest.objects.all() - return Order.objects.filter(status=Order.OrderStatus.DELIVERED) + return Order.objects.all() def _get_model_type(self) -> str: """Returns model type based on request data.""" From 6dd57b63e076b360ead9cfdd388675ddd8c48dd1 Mon Sep 17 00:00:00 2001 From: aastabk Date: Tue, 15 Jul 2025 11:25:48 +0200 Subject: [PATCH 08/23] Changes the buttons to a specified format. Moved buttons to the top. Preparing for filters. --- .../analysisorder_detail.html | 16 ++-- .../analysisorder_filter.html | 4 +- .../genlab_bestilling/analysisorder_form.html | 4 +- .../genlab_bestilling/base_filter.html | 2 +- .../equipmentorder_detail.html | 12 +-- .../equipmentorder_filter.html | 4 +- .../equipmentorder_form.html | 4 +- .../equipmentorderquantity_form.html | 2 +- .../extractionorder_detail.html | 37 +++++---- .../extractionorder_filter.html | 4 +- .../extractionorder_form.html | 4 +- .../genrequest_confirm_delete.html | 4 +- .../genlab_bestilling/genrequest_detail.html | 82 +++++++++---------- .../genlab_bestilling/genrequest_filter.html | 2 +- .../genlab_bestilling/genrequest_form.html | 6 +- .../order_confirm_delete.html | 4 +- .../genlab_bestilling/order_filter.html | 8 +- .../genlab_bestilling/sample_list.html | 10 +-- .../samplemarkeranalysis_list.html | 4 +- src/nina/templates/nina/project_detail.html | 44 +++++----- src/nina/templates/nina/project_form.html | 2 +- .../nina/projectmembership_form.html | 2 +- .../nina/projectmembership_list.html | 2 +- .../templates/staff/analysisorder_detail.html | 30 ++++--- .../templates/staff/analysisorder_filter.html | 2 +- .../staff/components/seen_column.html | 2 +- .../staff/equipmentorder_detail.html | 6 +- .../staff/equipmentorder_filter.html | 2 +- .../staff/extractionorder_detail.html | 21 +++-- .../staff/extractionorder_filter.html | 2 +- .../staff/extractionplate_detail.html | 2 +- .../staff/extractionplate_filter.html | 4 +- .../templates/staff/extractionplate_form.html | 6 +- .../templates/staff/order_staff_edit.html | 6 +- src/staff/templates/staff/project_detail.html | 2 +- src/staff/templates/staff/project_filter.html | 2 +- src/staff/templates/staff/sample_detail.html | 2 +- src/staff/templates/staff/sample_filter.html | 44 ++++++---- src/staff/templates/staff/sample_lab.html | 15 +++- .../staff/samplemarkeranalysis_filter.html | 4 +- src/templates/components/action-button.html | 2 +- src/templates/components/formset.html | 4 +- src/templates/users/user_detail.html | 4 +- src/templates/users/user_form.html | 2 +- src/theme/static_src/src/styles.css | 58 +++++++++++++ 45 files changed, 290 insertions(+), 195 deletions(-) diff --git a/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_detail.html b/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_detail.html index a23995de..11812109 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_detail.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_detail.html @@ -33,20 +33,20 @@
Samples to analyze
- back + Back {% if object.status == 'draft' %} - Edit Order + Edit Order {% if not object.from_order %} - Edit Samples + Edit Samples {% endif %} - Summary Samples + Summary Samples {% url 'genrequest-order-confirm' genrequest_id=object.genrequest_id pk=object.id as confirm_order_url %} {% url 'genrequest-order-clone' genrequest_id=object.genrequest_id pk=object.id as clone_order_url %} - {% action-button action=confirm_order_url class="bg-secondary text-white" submit_text="Deliver order" csrf_token=csrf_token %} - {% action-button action=clone_order_url class="bg-secondary text-white" submit_text="Clone Order" csrf_token=csrf_token %} - Delete + {% action-button action=confirm_order_url class="btn custom_order_button" submit_text="Deliver order" csrf_token=csrf_token %} + {% action-button action=clone_order_url class="btn custom_order_button" submit_text="Clone Order" csrf_token=csrf_token %} + Delete {% elif object.status == object.OrderStatus.DELIVERED %} - Samples + Samples {% endif %}
{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_filter.html b/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_filter.html index 23259bf5..9dc763bb 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_filter.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_filter.html @@ -6,8 +6,8 @@ {% block page-inner %}
{% if genrequest %} - back - Equipment order + Back + Equipment order {% endif %}
{% endblock page-inner %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_form.html b/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_form.html index 8379e70f..c201072b 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_form.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/analysisorder_form.html @@ -6,9 +6,9 @@

{% if object.id %}{{ object }}{% else %}Create {{ view
{% if object.id %} - back + Back {% else %} - back + Back {% endif %}
{% formset endpoint=request.path csrf_token=csrf_token form=form %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/base_filter.html b/src/genlab_bestilling/templates/genlab_bestilling/base_filter.html index 0f2c0924..4d24bcda 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/base_filter.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/base_filter.html @@ -9,8 +9,8 @@

{% block page-title %}{% endblock page-title %}

{{ filter.form | crispy }} +
- {% render_table table %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_detail.html b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_detail.html index c4f3c066..77f9fbaf 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_detail.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_detail.html @@ -12,7 +12,7 @@

Order {{ object }}

{% object-detail object=object %} @@ -35,13 +35,13 @@
Requested Equipment
{% if object.status == 'draft' %} - Edit - Edit requested equipment + Edit + Edit requested equipment {% url 'genrequest-order-confirm' genrequest_id=object.genrequest_id pk=object.id as confirm_order_url %} - {% action-button action=confirm_order_url class="bg-secondary text-white" submit_text="Deliver order" csrf_token=csrf_token %} - Delete + {% action-button action=confirm_order_url class="btn custom_order_button" submit_text="Deliver order" csrf_token=csrf_token %} + Delete {% endif %} {% url 'genrequest-order-clone' genrequest_id=object.genrequest_id pk=object.id as clone_order_url %} - {% action-button action=clone_order_url class="bg-secondary text-white" submit_text="Clone Order" csrf_token=csrf_token %} + {% action-button action=clone_order_url class="btn custom_order_button" submit_text="Clone Order" csrf_token=csrf_token %}
{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_filter.html b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_filter.html index 9b328e39..d0dad657 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_filter.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_filter.html @@ -6,8 +6,8 @@ {% block page-inner %}
{% if genrequest %} - back - Equipment order + Back + Equipment order {% endif %}
{% endblock page-inner %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_form.html b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_form.html index 0b9e874f..cc0cc260 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_form.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorder_form.html @@ -5,9 +5,9 @@

{% if object.id %}{{ object }}{% else %}Create {{ view.model|verbose_name }}{% endif %}

{% if object.id %} - back + Back {% else %} - back + Back {% endif %}
{% formset endpoint=request.path csrf_token=csrf_token form=form %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorderquantity_form.html b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorderquantity_form.html index e9f38114..2593b8b5 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/equipmentorderquantity_form.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/equipmentorderquantity_form.html @@ -4,7 +4,7 @@ {% block content %}

{% if object.id %}{{ object }}{% else %}Create {{ view.model|verbose_name }}{% endif %}

{% formset endpoint=request.path csrf_token=csrf_token form_collection=form_collection %} {% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_detail.html b/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_detail.html index ae3a5a89..0342d567 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_detail.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_detail.html @@ -16,30 +16,33 @@

Order {{ object }}

- {% object-detail object=object %} - - -
Delivered Samples
-
-

Uploaded {{ object.samples.count }} samples

-
-
- back + Back {% if object.status == 'draft' %} - Edit Order - Edit Samples - {% url 'genrequest-order-confirm' genrequest_id=object.genrequest_id pk=object.id as confirm_order_url %} - {% action-button action=confirm_order_url class="bg-secondary text-white" submit_text="Deliver order" csrf_token=csrf_token %} - Delete + Edit Order + Edit Samples + + {% url 'genrequest-order-confirm' genrequest_id=object.genrequest_id pk=object.id as confirm_order_url %} + {% action-button action=confirm_order_url class="btn custom_order_button" submit_text="Deliver order" csrf_token=csrf_token %} + + Delete {% endif %} - Samples + + Samples {% if object.status != 'draft' %} - Analyze these samples + Analyze these samples {% endif %} {% url 'genrequest-order-clone' genrequest_id=object.genrequest_id pk=object.id as clone_order_url %} - {% action-button action=clone_order_url class="bg-secondary text-white" submit_text="Clone Order" csrf_token=csrf_token %} + {% action-button action=clone_order_url class="btn custom_order_button" submit_text="Clone Order" csrf_token=csrf_token %} +
+ + {% object-detail object=object %} + + +
Delivered Samples
+
+

Uploaded {{ object.samples.count }} samples

{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_filter.html b/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_filter.html index 6668d719..b0676d9b 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_filter.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_filter.html @@ -6,8 +6,8 @@ {% block page-inner %}
{% if genrequest %} - back - Equipment order + Back + Equipment order {% endif %}
{% endblock page-inner %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_form.html b/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_form.html index 15e837a9..1f96a6e8 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_form.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/extractionorder_form.html @@ -6,9 +6,9 @@

{% if object.id %}{{ object }}{% else %}Create {{ view
{% if object.id %} - back + Back {% else %} - back + Back {% endif %}
{% formset endpoint=request.path csrf_token=csrf_token form=form %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_confirm_delete.html b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_confirm_delete.html index e57a4a4f..b3c0b53b 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_confirm_delete.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_confirm_delete.html @@ -5,14 +5,14 @@ {% block content %}

Delete request {{ object }}?

Are you sure you want to delete this request?

{% csrf_token %} - +
{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_detail.html b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_detail.html index 191aefc5..a24452f8 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_detail.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_detail.html @@ -15,49 +15,49 @@

{{ object.project_id }} - {{ object.name|d {% endif %} -
- {% object-detail object=object %} + +
+ {% object-detail object=object %}
{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_filter.html b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_filter.html index 9f64aa39..49382992 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_filter.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_filter.html @@ -5,6 +5,6 @@ {% block page-title %}Genetic Project{% endblock page-title %} {% block page-inner %} {% endblock page-inner %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_form.html b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_form.html index 2ad667d3..d06e6743 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/genrequest_form.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/genrequest_form.html @@ -5,10 +5,10 @@

{% if object.id %}{{ object }}{% else %}Create {{ view.model|verbose_name }}{% endif %}

{% if object.id %} - back + Back {% else %} - back - Register UBW project + Back + Register UBW project {% endif %}
{% formset endpoint=request.path csrf_token=csrf_token form=form %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/order_confirm_delete.html b/src/genlab_bestilling/templates/genlab_bestilling/order_confirm_delete.html index 8f762754..76eea90c 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/order_confirm_delete.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/order_confirm_delete.html @@ -5,14 +5,14 @@ {% block content %}

Delete Order {{ object }}?

Are you sure you want to delete this order?

{% csrf_token %} - +
{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/order_filter.html b/src/genlab_bestilling/templates/genlab_bestilling/order_filter.html index 5e32f0dd..80b5169a 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/order_filter.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/order_filter.html @@ -6,10 +6,10 @@ {% block page-inner %} {% endblock page-inner %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/sample_list.html b/src/genlab_bestilling/templates/genlab_bestilling/sample_list.html index dee3ee67..1ebbb60d 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/sample_list.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/sample_list.html @@ -6,16 +6,16 @@

Samples for Extraction #{{ view.kwargs.pk }}

{% render_table table %}
- back to order + Back to order {% if extraction.status == 'draft' %} {% url 'genrequest-order-confirm' genrequest_id=view.kwargs.genrequest_id pk=view.kwargs.pk as confirm_order_url %} - {% action-button action=confirm_order_url class="bg-secondary text-white" submit_text="Deliver order" csrf_token=csrf_token %} - edit samples + {% action-button action=confirm_order_url class="btn custom_order_button" submit_text="Deliver order" csrf_token=csrf_token %} + Edit samples {% endif %} {% if extraction.status != 'draft' %} - Analyze these samples + Analyze these samples {% endif %} - Download CSV + Download CSV
{% endblock %} diff --git a/src/genlab_bestilling/templates/genlab_bestilling/samplemarkeranalysis_list.html b/src/genlab_bestilling/templates/genlab_bestilling/samplemarkeranalysis_list.html index ede4ff29..5b81034a 100644 --- a/src/genlab_bestilling/templates/genlab_bestilling/samplemarkeranalysis_list.html +++ b/src/genlab_bestilling/templates/genlab_bestilling/samplemarkeranalysis_list.html @@ -13,12 +13,12 @@

{{ analysis }} - Samples

{% render_table table %}
- back to order + Back to order {% if analysis.status == 'draft' %} {% url 'genrequest-order-confirm' genrequest_id=view.kwargs.genrequest_id pk=view.kwargs.pk as confirm_order_url %} {% action-button action=confirm_order_url class="bg-secondary text-white" submit_text="Deliver order" csrf_token=csrf_token %} {% if not analysis.from_order %} - edit samples + Edit samples {% endif %} {% endif %}
diff --git a/src/nina/templates/nina/project_detail.html b/src/nina/templates/nina/project_detail.html index 6e5f3acc..bd38e40d 100644 --- a/src/nina/templates/nina/project_detail.html +++ b/src/nina/templates/nina/project_detail.html @@ -14,6 +14,28 @@

{{ object }}

{% endif %} +
+ Back + Edit + Members + {% if object.verified_at %} + Genetic projects + {% if object.active %} + New Genetic project + {% endif %} + {% endif %} +
+
{% object-detail object=object %} @@ -22,27 +44,5 @@

Members

{% render_table table %}
- -
- back - Edit - Members - {% if object.verified_at %} - Genetic projects - {% if object.active %} - new Genetic project - {% endif %} - {% endif %} -
{% endblock %} diff --git a/src/nina/templates/nina/project_form.html b/src/nina/templates/nina/project_form.html index 90d3d1f2..55da8b8d 100644 --- a/src/nina/templates/nina/project_form.html +++ b/src/nina/templates/nina/project_form.html @@ -9,6 +9,6 @@

{% if object.id %}{{ object }}{% else %}Create {{ view {% render_form form "tailwind" %} - + {% endblock %} diff --git a/src/nina/templates/nina/projectmembership_form.html b/src/nina/templates/nina/projectmembership_form.html index 792de137..fbdfb9e1 100644 --- a/src/nina/templates/nina/projectmembership_form.html +++ b/src/nina/templates/nina/projectmembership_form.html @@ -4,7 +4,7 @@ {% block content %}

{{ object }}

{% formset endpoint=request.path csrf_token=csrf_token form_collection=form_collection %} {% endblock %} diff --git a/src/nina/templates/nina/projectmembership_list.html b/src/nina/templates/nina/projectmembership_list.html index 4a0790c1..d626c8fe 100644 --- a/src/nina/templates/nina/projectmembership_list.html +++ b/src/nina/templates/nina/projectmembership_list.html @@ -4,7 +4,7 @@ {% block content %}

NINA Projects you are involved in

{% render_table table %} diff --git a/src/staff/templates/staff/analysisorder_detail.html b/src/staff/templates/staff/analysisorder_detail.html index a31480dd..ba9ece3a 100644 --- a/src/staff/templates/staff/analysisorder_detail.html +++ b/src/staff/templates/staff/analysisorder_detail.html @@ -8,35 +8,43 @@

Order {{ object }}

- back - Samples + Back + Samples {% if extraction_order %} - Go to {{ extraction_order}} + Go to {{ extraction_order}} {% endif %} - Assign staff -
{% if object.genrequest.responsible_staff.all|is_responsible:request.user and not object.is_seen %}
{% csrf_token %} - +
{% endif %} - {% if object.status == object.OrderStatus.DELIVERED %} + {% if object.status != object.OrderStatus.DRAFT %} {% url 'staff:order-to-draft' pk=object.id as to_draft_url %} - {% action-button action=to_draft_url class="bg-secondary text-white" submit_text="Convert to draft" csrf_token=csrf_token %} + {% action-button action=to_draft_url class="custom_order_button" submit_text=" Convert to draft"|safe csrf_token=csrf_token %} {% endif %} - {% if object.status != object.OrderStatus.DRAFT and object.next_status %} + {% if object.status == object.OrderStatus.DELIVERED %} {% url 'staff:order-to-next-status' pk=object.id as to_next_status_url %} - {% with "Set as "|add:object.next_status as btn_name %} - {% action-button action=to_next_status_url class="bg-secondary text-white" submit_text=btn_name csrf_token=csrf_token %} + {% with " Set as "|add:object.next_status as btn_name %} + {% action-button action=to_next_status_url class="bg-yellow-200 text-yellow-800 border border-yellow-700 hover:bg-yellow-300" submit_text=btn_name csrf_token=csrf_token %} {% endwith %} {% endif %} + + {% if object.status == object.OrderStatus.PROCESSING %} + {% url 'staff:order-to-next-status' pk=object.id as to_next_status_url %} + {% with " Set as "|add:object.next_status as btn_name %} + {% action-button action=to_next_status_url class="custom_order_button_green" submit_text=btn_name csrf_token=csrf_token %} + {% endwith %} + {% endif %} +
+ {% fragment as table_header %} diff --git a/src/staff/templates/staff/analysisorder_filter.html b/src/staff/templates/staff/analysisorder_filter.html index a0ac89a4..47e8ee21 100644 --- a/src/staff/templates/staff/analysisorder_filter.html +++ b/src/staff/templates/staff/analysisorder_filter.html @@ -10,8 +10,8 @@
{{ filter.form | crispy }} +
-
{% render_table table %} diff --git a/src/staff/templates/staff/components/seen_column.html b/src/staff/templates/staff/components/seen_column.html index 8d0329b3..4b5deec7 100644 --- a/src/staff/templates/staff/components/seen_column.html +++ b/src/staff/templates/staff/components/seen_column.html @@ -4,7 +4,7 @@
{% csrf_token %} -
diff --git a/src/staff/templates/staff/equipmentorder_detail.html b/src/staff/templates/staff/equipmentorder_detail.html index 7f76f07b..061dee90 100644 --- a/src/staff/templates/staff/equipmentorder_detail.html +++ b/src/staff/templates/staff/equipmentorder_detail.html @@ -11,7 +11,7 @@

Order {{ object }}

{% object-detail object=object %} @@ -33,8 +33,8 @@
Requested Equipment
{% /table %}
- back - Assign staff + Back + Assign staff {% comment %} {% if object.status == 'draft' %} Edit diff --git a/src/staff/templates/staff/equipmentorder_filter.html b/src/staff/templates/staff/equipmentorder_filter.html index 434f0c13..fa7658e2 100644 --- a/src/staff/templates/staff/equipmentorder_filter.html +++ b/src/staff/templates/staff/equipmentorder_filter.html @@ -10,8 +10,8 @@
{{ filter.form | crispy }} +
-
{% render_table table %} diff --git a/src/staff/templates/staff/extractionorder_detail.html b/src/staff/templates/staff/extractionorder_detail.html index f48e3e2b..77317877 100644 --- a/src/staff/templates/staff/extractionorder_detail.html +++ b/src/staff/templates/staff/extractionorder_detail.html @@ -1,6 +1,7 @@ {% extends "staff/base.html" %} {% load i18n %} {% load order_tags %} +{% load static %} {% block content %} @@ -8,13 +9,13 @@

Order {{ object }}

- back - Samples + Back + Samples {% if analysis_orders|length > 1 %}
{% elif analysis_orders|length == 1 %} - Go to {{ analysis_orders.first}} + Go to {{ analysis_orders.first}} {% endif %} - Assign staff
{% if object.genrequest.responsible_staff.all|is_responsible:request.user and not object.is_seen %}
{% csrf_token %} - +
{% endif %} {% if object.status != object.OrderStatus.DRAFT %} {% url 'staff:order-to-draft' pk=object.id as to_draft_url %} - {% action-button action=to_draft_url class="bg-secondary text-white" submit_text="Convert to draft" csrf_token=csrf_token %} + {% action-button action=to_draft_url class="custom_order_button" submit_text=" Convert to draft"|safe csrf_token=csrf_token %} {% endif %} {% if object.status == object.OrderStatus.DELIVERED and object.internal_status == "checked" %} {% url 'staff:order-to-next-status' pk=object.id as to_next_status_url %} - {% with "Set as "|add:object.next_status as btn_name %} - {% action-button action=to_next_status_url class="bg-secondary text-white" submit_text=btn_name csrf_token=csrf_token %} + {% with " Set as "|add:object.next_status as btn_name %} + {% action-button action=to_next_status_url class="bg-yellow-200 text-yellow-800 border border-yellow-700 hover:bg-yellow-300" submit_text=btn_name csrf_token=csrf_token %} {% endwith %} {% endif %}
+ {% fragment as table_header %} {% #table-cell header=True %}GUID{% /table-cell %} diff --git a/src/staff/templates/staff/extractionorder_filter.html b/src/staff/templates/staff/extractionorder_filter.html index e2c1e8d9..9dd1315d 100644 --- a/src/staff/templates/staff/extractionorder_filter.html +++ b/src/staff/templates/staff/extractionorder_filter.html @@ -10,8 +10,8 @@
{{ filter.form | crispy }} +
-
{% render_table table %} diff --git a/src/staff/templates/staff/extractionplate_detail.html b/src/staff/templates/staff/extractionplate_detail.html index 07c5904c..e688e864 100644 --- a/src/staff/templates/staff/extractionplate_detail.html +++ b/src/staff/templates/staff/extractionplate_detail.html @@ -10,6 +10,6 @@

Plate {{ object }}

{% object-detail object=object %} {% endblock %} diff --git a/src/staff/templates/staff/extractionplate_filter.html b/src/staff/templates/staff/extractionplate_filter.html index 26e046dd..4463ae68 100644 --- a/src/staff/templates/staff/extractionplate_filter.html +++ b/src/staff/templates/staff/extractionplate_filter.html @@ -8,14 +8,14 @@ {% block page-inner %}
{{ filter.form | crispy }}
- +
{% render_table table %} diff --git a/src/staff/templates/staff/extractionplate_form.html b/src/staff/templates/staff/extractionplate_form.html index 83ce49f6..8274f222 100644 --- a/src/staff/templates/staff/extractionplate_form.html +++ b/src/staff/templates/staff/extractionplate_form.html @@ -5,15 +5,15 @@

{% if object.id %}{{ object }}{% else %}Create {{ view.model|verbose_name }}{% endif %}

{% if object.id %} - back + Back {% else %} - back + Back {% endif %}
{{ form|crispy }} {% csrf_token %} -
diff --git a/src/staff/templates/staff/order_staff_edit.html b/src/staff/templates/staff/order_staff_edit.html index efeab57b..9ea3ef7d 100644 --- a/src/staff/templates/staff/order_staff_edit.html +++ b/src/staff/templates/staff/order_staff_edit.html @@ -17,9 +17,9 @@

Manage Responsible Staff - {{ object }}

{% if model_type == "genrequest" %} - Back to Genrequest + Back to Genrequest {% else %} - Back to Order + Back to Order {% endif %}
@@ -43,7 +43,7 @@

Assign Staff to Order

- +
diff --git a/src/staff/templates/staff/project_detail.html b/src/staff/templates/staff/project_detail.html index 1a6b19e3..4aa8eb2a 100644 --- a/src/staff/templates/staff/project_detail.html +++ b/src/staff/templates/staff/project_detail.html @@ -7,7 +7,7 @@

Project {{ object }}

- back + Back {% url 'staff:projects-verify' pk=object.pk as verify_url %} {% if object.verified_at is null %} {% action-button action=verify_url class="btn-secondary text-white" submit_text="Mark as verified" csrf_token=csrf_token %} diff --git a/src/staff/templates/staff/project_filter.html b/src/staff/templates/staff/project_filter.html index b0434b4c..dc7c836d 100644 --- a/src/staff/templates/staff/project_filter.html +++ b/src/staff/templates/staff/project_filter.html @@ -10,8 +10,8 @@
{{ filter.form | crispy }} +
-
{% render_table table %} diff --git a/src/staff/templates/staff/sample_detail.html b/src/staff/templates/staff/sample_detail.html index 6b6c7c77..477ba47d 100644 --- a/src/staff/templates/staff/sample_detail.html +++ b/src/staff/templates/staff/sample_detail.html @@ -10,6 +10,6 @@

Sample {{ object }}

{% object-detail object=object %} {% endblock %} diff --git a/src/staff/templates/staff/sample_filter.html b/src/staff/templates/staff/sample_filter.html index 1b522210..4b98e0d6 100644 --- a/src/staff/templates/staff/sample_filter.html +++ b/src/staff/templates/staff/sample_filter.html @@ -11,39 +11,53 @@ Samples {% endif %}
- {% if order %} -
- {{ order.filled_genlab_count }} / {{ order.samples.count }} Genlabs generated -
- {% endif %} {% endblock page-title %} {% block page-inner %} {% if order %}
- back - Download CSV - Lab + Back + Lab {% if order.status == order.OrderStatus.DELIVERED and order.internal_status == "checked" %} {% url 'staff:order-to-next-status' pk=order.pk as to_next_status_url %} {% action-button action=to_next_status_url class="bg-secondary text-white" submit_text="Set as processing" csrf_token=csrf_token %} {% endif %}
+ {% comment %}
+
+ {{ filter.form | crispy }} + +
+
{% endcomment %} +
{% csrf_token %} - +
+ + Download CSV + +
+
+ {{ order.filled_genlab_count }} / {{ order.samples.count }} samples with genlabID +
+
+
+
+
+
+ {% render_table table %}
- + {% endif %}