Source code for reporting.report.admin

from django.contrib import admin

from reporting.report.models import (
    IPTS,
    DataRun,
    Error,
    Information,
    Instrument,
    InstrumentStatus,
    RunStatus,
    StatusQueue,
    StatusQueueMessageCount,
    Task,
    WorkflowSummary,
)


[docs] def reduction_not_needed(modeladmin, request, queryset): queryset.update(reduction_needed=False)
reduction_not_needed.short_description = "Mark selected runs as not needing reduction"
[docs] def reduction_needed(modeladmin, request, queryset): queryset.update(reduction_needed=True)
reduction_needed.short_description = "Mark selected runs needing reduction"
[docs] def reduction_incomplete(modeladmin, request, queryset): queryset.update(complete=False)
reduction_incomplete.short_description = "Mark selected runs as incomplete"
[docs] def reduction_complete(modeladmin, request, queryset): queryset.update(complete=True)
reduction_complete.short_description = "Mark selected runs as complete"
[docs] class DataRunAdmin(admin.ModelAdmin): list_filter = ("instrument_id", "ipts_id") list_display = ( "id", "run_number", "instrument_id", "ipts_id", "file", "run_title", "created_on", )
[docs] class IPTSAdmin(admin.ModelAdmin): list_display = ("expt_name", "created_on", "show_instruments") search_fields = ["instruments__name"]
[docs] def show_instruments(self, ipts): instruments = [str(i) for i in ipts.instruments.all()] return ", ".join(instruments)
show_instruments.short_description = "Instruments"
[docs] class RunStatusAdmin(admin.ModelAdmin): readonly_fields = ("run_id",) list_filter = ("run_id__instrument_id", "queue_id") list_display = ("id", "run_id", "queue_id", "created_on") search_fields = ["run_id__run_number"]
[docs] class InformationAdmin(admin.ModelAdmin): readonly_fields = ("run_status_id",) list_display = ("id", "run_status_id", "time", "description") search_fields = ["description"]
[docs] def time(self, obj): return obj.run_status_id.created_on
[docs] class ErrorAdmin(admin.ModelAdmin): readonly_fields = ("run_status_id",) list_display = ("id", "run_status_id", "time", "description") list_filter = ("run_status_id__run_id__instrument_id",) search_fields = ["description"]
[docs] def time(self, obj): return obj.run_status_id.created_on
[docs] class StatusQueueAdmin(admin.ModelAdmin): list_display = ("id", "name", "is_workflow_input") list_filter = ("is_workflow_input",)
[docs] class StatusQueueMessageCountAdmin(admin.ModelAdmin): list_display = ("id", "queue_id", "message_count", "created_on") list_filter = ("queue_id",)
[docs] class WorkflowSummaryAdmin(admin.ModelAdmin): readonly_fields = ("run_id",) list_filter = ( "run_id__instrument_id", "complete", "catalog_started", "cataloged", "reduction_needed", "reduction_started", "reduced", "reduction_cataloged", "reduction_catalog_started", ) list_display = ( "run_id", "date", "complete", "catalog_started", "cataloged", "reduction_needed", "reduction_started", "reduced", "reduction_cataloged", "reduction_catalog_started", ) search_fields = ["run_id__run_number"] actions = [ reduction_not_needed, reduction_needed, reduction_complete, reduction_incomplete, ] list_editable = ("reduction_needed",)
[docs] def date(self, summary): return summary.run_id.created_on.strftime("%y-%m-%d")
[docs] class TaskAdmin(admin.ModelAdmin): list_filter = ("instrument_id", "input_queue_id") list_display = ( "id", "instrument_id", "input_queue_id", "task_class", "task_queues", "success_queues", ) search_fields = ["instrument_id__name", "input_queue_id__name"]
[docs] class InstrumentStatusAdmin(admin.ModelAdmin): readonly_fields = ("last_run_id",) list_display = ("id", "instrument_id", "last_run_id")
admin.site.register(DataRun, DataRunAdmin) admin.site.register(StatusQueue, StatusQueueAdmin) admin.site.register(StatusQueueMessageCount, StatusQueueMessageCountAdmin) admin.site.register(RunStatus, RunStatusAdmin) admin.site.register(WorkflowSummary, WorkflowSummaryAdmin) admin.site.register(IPTS, IPTSAdmin) admin.site.register(Instrument) admin.site.register(Information, InformationAdmin) admin.site.register(Error, ErrorAdmin) admin.site.register(Task, TaskAdmin) admin.site.register(InstrumentStatus, InstrumentStatusAdmin)