From 8534dfcc6bffcee24d5a4826ceca2cd7b8505d95 Mon Sep 17 00:00:00 2001 From: Emil Telstad <22004178+emilte@users.noreply.github.com> Date: Tue, 1 Jul 2025 01:16:59 +0200 Subject: [PATCH] Improve AnalysisResultAdmin. --- src/genlab_bestilling/admin.py | 31 ++++++++++++++++++++++++++++++- src/genlab_bestilling/models.py | 13 ++++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/genlab_bestilling/admin.py b/src/genlab_bestilling/admin.py index 1f701ba3..9cad527c 100644 --- a/src/genlab_bestilling/admin.py +++ b/src/genlab_bestilling/admin.py @@ -376,4 +376,33 @@ class ExtractionPlateAdmin(ModelAdmin): ... @admin.register(AnalysisResult) -class AnalysisResultAdmin(ModelAdmin): ... +class AnalysisResultAdmin(ModelAdmin): + M = AnalysisResult + list_display = [ + M.name.field.name, + M.marker.field.name, + M.order.field.name, + M.analysis_date.field.name, + M.last_modified_at.field.name, + M.created_at.field.name, + ] + + search_help_text = "Search for analysis result name" + search_fields = [M.name.field.name] + list_filter = [ + (M.name.field.name, unfold_filters.FieldTextFilter), + (M.marker.field.name, unfold_filters.AutocompleteSelectMultipleFilter), + (M.order.field.name, unfold_filters.AutocompleteSelectMultipleFilter), + M.analysis_date.field.name, + M.last_modified_at.field.name, + M.created_at.field.name, + ] + autocomplete_fields = [M.marker.field.name, M.order.field.name] + list_filter_submit = True + list_filter_sheet = False + filter_horizontal = [M.samples.field.name] + readonly_fields = [ + M.analysis_date.field.name, + M.last_modified_at.field.name, + M.created_at.field.name, + ] diff --git a/src/genlab_bestilling/models.py b/src/genlab_bestilling/models.py index 9cd342cc..296ab501 100644 --- a/src/genlab_bestilling/models.py +++ b/src/genlab_bestilling/models.py @@ -707,16 +707,19 @@ def __str__(self): class AnalysisResult(models.Model): name = models.CharField() - created_at = models.DateTimeField(auto_now_add=True) - last_modified_at = models.DateTimeField(auto_now=True) analysis_date = models.DateTimeField(null=True, blank=True) marker = models.ForeignKey(f"{an}.Marker", on_delete=models.DO_NOTHING) - result_file = models.FileField(null=True, blank=True) - samples = models.ManyToManyField(f"{an}.Sample", blank=True) - extra = models.JSONField(null=True, blank=True) order = models.ForeignKey( f"{an}.AnalysisOrder", null=True, blank=True, on_delete=models.SET_NULL, ) + result_file = models.FileField(null=True, blank=True) + samples = models.ManyToManyField(f"{an}.Sample", blank=True) + extra = models.JSONField(null=True, blank=True) + created_at = models.DateTimeField(auto_now_add=True) + last_modified_at = models.DateTimeField(auto_now=True) + + def __str__(self) -> str: + return f"{self.name}"