33import django_tables2 as tables
44from django .db .models import QuerySet
55from django .templatetags .static import static
6+ from django .urls import reverse
67from django .utils .html import format_html
78from django .utils .safestring import mark_safe
89
@@ -270,6 +271,12 @@ class SampleBaseTable(tables.Table):
270271 empty_values = (),
271272 )
272273
274+ genlab_id = tables .Column (
275+ orderable = False ,
276+ empty_values = (None ,),
277+ verbose_name = "Genlab ID" ,
278+ )
279+
273280 name = tables .Column ()
274281
275282 class Meta :
@@ -317,6 +324,13 @@ def order_name(
317324 queryset = queryset .order_by (f"{ prefix } name_as_int" , "name" )
318325 return (queryset , True )
319326
327+ def render_genlab_id (self , value : Any , record : Any ) -> Any :
328+ from_url = reverse (
329+ "staff:order-extraction-samples" , kwargs = {"pk" : record .order .pk }
330+ )
331+ url = reverse ("staff:samples-detail" , kwargs = {"pk" : record .id })
332+ return format_html ('<a href="{}?from={}">{}</a>' , url , from_url , value )
333+
320334
321335class SampleStatusTable (tables .Table ):
322336 """
@@ -339,6 +353,12 @@ class SampleStatusTable(tables.Table):
339353 verbose_name = "Mark" ,
340354 )
341355
356+ genlab_id = tables .Column (
357+ orderable = False ,
358+ empty_values = (None ,),
359+ verbose_name = "Genlab ID" ,
360+ )
361+
342362 internal_note = tables .TemplateColumn (
343363 template_name = "staff/note_input_column.html" ,
344364 orderable = False ,
@@ -402,6 +422,13 @@ def render_checked(self, record: Any) -> str:
402422 record .id ,
403423 )
404424
425+ def render_genlab_id (self , value : Any , record : Any ) -> Any :
426+ from_url = reverse (
427+ "staff:order-extraction-samples-lab" , kwargs = {"pk" : record .order .pk }
428+ )
429+ url = reverse ("staff:samples-detail" , kwargs = {"pk" : record .id })
430+ return format_html ('<a href="{}?from={}">{}</a>' , url , from_url , value )
431+
405432
406433class OrderExtractionSampleTable (SampleBaseTable ):
407434 class Meta (SampleBaseTable .Meta ):
0 commit comments