Merge in Rami's changes from last friday.
[htsworkflow.git] / htsworkflow / frontend / samples / admin.py
1 from htsworkflow.frontend.samples.models import Antibody, Cellline, Condition, Species, Affiliation, Library, Tag
2 from django.contrib import admin
3 from django.utils.translation import ugettext_lazy as _
4
5 class Library_Inline(admin.TabularInline):
6   model = Library
7
8 class CelllineOptions(admin.ModelAdmin):
9     list_display = ('cellline_name', 'nickname', 'notes')
10     search_fields = ('cellline_name', 'nickname', 'notes')
11     fieldsets = (
12       (None, {
13           'fields': (('cellline_name'),('notes'),)
14       }),
15      )
16
17 class LibraryOptions(admin.ModelAdmin):
18     date_hierarchy = "creation_date"
19     save_as = True
20     save_on_top = True
21     search_fields = (
22         'library_id',
23         'library_name',
24         'cell_line__cellline_name',
25         'library_species__scientific_name',
26         'library_species__common_name',
27     )
28     list_display = (
29         'library_id',
30         'aligned_reads',
31         'DataRun',
32         'library_name',
33         'experiment_type',
34         'organism',
35         'antibody_name',
36         'cell_line',
37         'libtags',
38         'made_for',
39         'made_by',
40         'stopping_point',
41         'creation_date',
42         'condition',
43     )
44     list_filter = (
45         'experiment_type', 
46         'library_species', 
47         'tags',
48         'made_for',
49         'made_by', 
50         'antibody',
51         'cell_line',
52         'condition',
53         'stopping_point')
54     list_display_links = ('library_id', 'library_name',)
55     fieldsets = (
56       (None, {
57         'fields': (
58           ('replicate','library_id','library_name'),
59           ('library_species'),
60           ('experiment_type'),
61           ('cell_line','condition','antibody'),)
62          }),
63          ('Creation Information:', {
64              'fields' : (('made_for', 'made_by', 'creation_date'), ('stopping_point', 'amplified_from_sample'), ('avg_lib_size','undiluted_concentration', 'ten_nM_dilution', 'successful_pM'), 'notes',)
65          }),
66          ('Library/Project Affiliation:', {
67              'fields' : (('affiliations'), ('tags'),)
68          }),
69          )
70
71 class AffiliationOptions(admin.ModelAdmin):
72     list_display = ('name','contact','email')
73     fieldsets = (
74       (None, {
75           'fields': (('name','contact','email'))
76       }),
77     )
78
79 # class UserOptions(admin.ModelAdmin):
80 #   inlines = [Library_Inline]
81
82 class AntibodyOptions(admin.ModelAdmin):
83     search_fields = ('antigene','nickname','catalog','antibodies','source','biology','notes')
84     list_display = ('antigene','nickname','antibodies','catalog','source','biology','notes')
85     list_filter = ('antibodies','source')
86     fieldsets = (
87       (None, {
88           'fields': (('antigene','nickname','antibodies'),('catalog','source'),('biology'),('notes'))
89       }),
90      )
91
92 class SpeciesOptions(admin.ModelAdmin):
93     fieldsets = (
94       (None, {
95           'fields': (('scientific_name', 'common_name'),)
96       }),
97     )
98
99 class ConditionOptions(admin.ModelAdmin):
100     list_display = (('condition_name'), ('notes'),)
101     fieldsets = (
102       (None, {
103           'fields': (('condition_name'),('nickname'),('notes'),)
104       }),
105      )
106
107 class TagOptions(admin.ModelAdmin):
108     list_display = ('tag_name', 'context')
109     fieldsets = ( 
110         (None, {
111           'fields': ('tag_name', 'context')
112           }),
113         )
114
115 admin.site.register(Affiliation, AffiliationOptions)
116 admin.site.register(Antibody, AntibodyOptions)
117 admin.site.register(Cellline, CelllineOptions)
118 admin.site.register(Condition, ConditionOptions)
119 admin.site.register(Library, LibraryOptions)
120 admin.site.register(Species, SpeciesOptions)
121 admin.site.register(Tag, TagOptions)