Skip to content

Commit 46cecc1

Browse files
committed
Why doesnt this work
1 parent 5b82f1a commit 46cecc1

File tree

5 files changed

+25
-20
lines changed

5 files changed

+25
-20
lines changed

src/genlab_bestilling/managers.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import TYPE_CHECKING
44

55
from django.db import models, transaction
6-
from django.db.models import BigIntegerField, Case, QuerySet, Value, When
6+
from django.db.models import BigIntegerField, Case, IntegerField, QuerySet, Value, When
77
from django.db.models.functions import Cast
88
from polymorphic.managers import PolymorphicManager, PolymorphicQuerySet
99

@@ -40,6 +40,23 @@ def filter_in_draft(self) -> QuerySet:
4040
"""
4141
return self.filter(status=self.model.OrderStatus.DRAFT)
4242

43+
def annotate_priority_order(self) -> QuerySet:
44+
"""
45+
Annotate the queryset with a priority order based on urgency and prioritization.
46+
Order should be: urgent > prioritized > normal.
47+
"""
48+
return self.annotate(
49+
priority_order=Case(
50+
When(is_urgent=True, then=self.model.OrderPriority.URGENT),
51+
When(
52+
is_prioritized=True,
53+
then=Value(self.model.OrderPriority.PRIORITIZED),
54+
),
55+
default=Value(self.model.OrderPriority.NORMAL),
56+
output_field=IntegerField(),
57+
)
58+
)
59+
4360

4461
OrderManager = PolymorphicManager.from_queryset(OrderQuerySet)
4562

src/staff/filters.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ class Meta:
133133
)
134134

135135

136-
class ExtractionOrderFilter(HideStatusesByDefaultMixin, filters.FilterSet):
136+
class ExtractionOrderFilter(filters.FilterSet):
137137
id = CharFilter(
138138
field_name="id",
139139
label="Order ID",
@@ -188,11 +188,6 @@ class ExtractionOrderFilter(HideStatusesByDefaultMixin, filters.FilterSet):
188188
),
189189
)
190190

191-
@property
192-
def qs(self) -> QuerySet:
193-
queryset = super().qs
194-
return self.exclude_hidden_statuses(queryset, self.data)
195-
196191
class Meta:
197192
model = ExtractionOrder
198193
fields = (

src/staff/mixins.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -135,24 +135,16 @@ def order_sample_status(
135135

136136

137137
class PriorityMixinTable(tables.Table):
138-
priority = tables.TemplateColumn(
138+
priority_order = tables.TemplateColumn(
139139
orderable=True,
140140
verbose_name="Priority",
141141
template_name="staff/components/priority_column.html",
142142
)
143143

144-
def order_priority(
144+
def order_priority_order(
145145
self, queryset: QuerySet[Order], is_descending: bool
146146
) -> tuple[QuerySet[Order], bool]:
147147
prefix = "-" if is_descending else ""
148-
queryset = queryset.annotate(
149-
priority_order=Case(
150-
When(is_urgent=True, then=2),
151-
When(is_prioritized=True, then=1),
152-
default=0,
153-
output_field=IntegerField(),
154-
)
155-
)
156148
sorted_by_priority = queryset.order_by(f"{prefix}priority_order")
157149

158150
return (sorted_by_priority, True)

src/staff/tables.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def render_id(self, record: Order) -> str:
8888

8989
class Meta:
9090
fields = (
91-
"priority",
91+
"priority_order",
9292
"id",
9393
"status",
9494
"area",
@@ -98,7 +98,7 @@ class Meta:
9898
"responsible_staff",
9999
)
100100
empty_text = "No Orders"
101-
order_by = ("-priority", "status")
101+
order_by = ("-priority_order", "status")
102102

103103

104104
class AnalysisOrderTable(OrderTable):
@@ -180,7 +180,7 @@ class Meta(OrderTable.Meta):
180180
"confirmed_at",
181181
) # type: ignore[assignment]
182182
sequence = (
183-
"priority",
183+
"priority_order",
184184
"id",
185185
"status",
186186
"area",

src/staff/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ def get_queryset(self) -> QuerySet[ExtractionOrder]:
138138
"genrequest__area",
139139
)
140140
.prefetch_related("species", "sample_types")
141+
.annotate_priority_order()
141142
.annotate(
142143
total_samples=Count("samples"),
143144
total_samples_isolated=models.Count(

0 commit comments

Comments
 (0)