1 from htsworkflow.frontend.experiments.models import FlowCell, DataRun, ClusterStation, Sequencer, Lane
2 from django.contrib import admin
3 from django.contrib.admin.widgets import FilteredSelectMultiple
4 from django.forms import ModelForm
5 from django.forms.fields import Field, CharField
6 from django.forms.widgets import TextInput
7 from django.utils.translation import ugettext_lazy as _
9 class DataRunOptions(admin.ModelAdmin):
14 '=fcid__lane_1_library__library_id',
15 '=fcid__lane_2_library__library_id',
16 '=fcid__lane_3_library__library_id',
17 '=fcid__lane_4_library__library_id',
18 '=fcid__lane_5_library__library_id',
19 '=fcid__lane_6_library__library_id',
20 '=fcid__lane_7_library__library_id',
21 '=fcid__lane_8_library__library_id'
22 'fcid__lane_1_library__library_name',
23 'fcid__lane_2_library__library_name',
24 'fcid__lane_3_library__library_name',
25 'fcid__lane_4_library__library_name',
26 'fcid__lane_5_library__library_name',
27 'fcid__lane_6_library__library_name',
28 'fcid__lane_7_library__library_name',
29 'fcid__lane_8_library__library_name' ]
37 list_filter = ('run_status', 'run_start_time')
39 # lane form setup needs to come before Flowcell form config
40 # as flowcell refers to the LaneInline class
41 class LaneForm(ModelForm):
42 comment = CharField(widget=TextInput(attrs={'size':'80'}), required=False)
47 class LaneInline(admin.StackedInline):
49 Controls display of Lanes on the Flowcell form.
55 raw_id_fields = ('library',)
58 'fields': ('lane_number', 'flowcell',
60 ('pM', 'cluster_estimate'),
65 class LaneOptions(admin.ModelAdmin):
67 Controls display of Lane browser
69 list_display = ('flowcell', 'lane_number', 'library', 'comment')
72 'fields': ('lane_number', 'flowcell',
74 ('pM', 'cluster_estimate'))
77 'classes': ('collapse', ),
78 'fields': ('comment', )
82 class FlowCellOptions(admin.ModelAdmin):
83 date_hierarchy = "run_date"
85 search_fields = ('flowcell_id',
87 'cluster_station__name',
88 '=lane__library__library_id',
89 'lane__library__library_name')
90 list_display = ('flowcell_id','run_date','Lanes')
91 list_filter = ('sequencer','cluster_station')
94 'fields': ('run_date', ('flowcell_id','cluster_station','sequencer'), ('read_length', 'control_lane', 'paired_end'),)
97 # 'fields' : (('lane__library__library_id', 'lane__pM', 'lane__cluster_estimate'),)
99 ('Notes:', { 'fields': ('notes',),}),
105 class ClusterStationOptions(admin.ModelAdmin):
106 list_display = ('name', )
107 fieldsets = ( ( None, { 'fields': ( 'name', ) } ), )
109 class SequencerOptions(admin.ModelAdmin):
110 list_display = ('name', )
111 fieldsets = ( ( None, { 'fields': ( 'name', ) } ), )
114 admin.site.register(DataRun, DataRunOptions)
115 admin.site.register(FlowCell, FlowCellOptions)
116 admin.site.register(ClusterStation, ClusterStationOptions)
117 admin.site.register(Sequencer, SequencerOptions)
118 admin.site.register(Lane, LaneOptions)