-from htsworkflow.frontend.samples.models import Antibody, Cellline, Condition, Species, Affiliation, Library, Tag
from django.contrib import admin
+from django.contrib.admin import widgets
+from django.contrib.admin.models import User
+from django.contrib.auth.admin import UserAdmin
+from django.contrib.auth.forms import UserCreationForm, UserChangeForm
+from django.db import models
from django.utils.translation import ugettext_lazy as _
-class Library_Inline(admin.TabularInline):
- model = Library
+from htsworkflow.frontend.samples.models import Antibody, Cellline, Condition, ExperimentType, HTSUser, LibraryType, Species, Affiliation, Library, Tag
+from htsworkflow.frontend.experiments.models import Lane
+
+class AffiliationOptions(admin.ModelAdmin):
+ list_display = ('name','contact','email')
+ fieldsets = (
+ (None, {
+ 'fields': (('name','contact','email','users'))
+ }),
+ )
+
+ # some post 1.0.2 version of django has formfield_overrides
+ # which would replace this code with:
+ # formfield_overrids = {
+ # models.ManyToMany: { 'widget': widgets.FilteredSelectMultiple }
+ # }
+ def formfield_for_dbfield(self, db_field, **kwargs):
+ if db_field.name == 'users':
+ kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical))
+ rv = super(AffiliationOptions, self).formfield_for_dbfield(db_field, **kwargs)
+ # print db_field.name, kwargs
+ return rv
+
+class AntibodyOptions(admin.ModelAdmin):
+ search_fields = ('antigene','nickname','catalog','antibodies','source','biology','notes')
+ list_display = ('antigene','nickname','antibodies','catalog','source','biology','notes')
+ list_filter = ('antibodies','source')
+ fieldsets = (
+ (None, {
+ 'fields': (('antigene','nickname','antibodies'),('catalog','source'),('biology'),('notes'))
+ }),
+ )
class CelllineOptions(admin.ModelAdmin):
list_display = ('cellline_name', 'nickname', 'notes')
}),
)
+class ConditionOptions(admin.ModelAdmin):
+ list_display = (('condition_name'), ('notes'),)
+ fieldsets = (
+ (None, {
+ 'fields': (('condition_name'),('nickname'),('notes'),)
+ }),
+ )
+
+class ExperimentTypeOptions(admin.ModelAdmin):
+ model = ExperimentType
+ #list_display = ('name',)
+ #fieldsets = ( (None, { 'fields': ('name',) }), )
+
+class HTSUserCreationForm(UserCreationForm):
+ class Meta:
+ model = HTSUser
+ fields = ("username",)
+
+class HTSUserChangeForm(UserChangeForm):
+ class Meta:
+ model = HTSUser
+
+class HTSUserOptions(UserAdmin):
+ form = HTSUserChangeForm
+ add_form = HTSUserCreationForm
+
+
+class LaneLibraryInline(admin.StackedInline):
+ model = Lane
+ extra = 0
+
+class Library_Inline(admin.TabularInline):
+ model = Library
+
+class LibraryTypeOptions(admin.ModelAdmin):
+ model = LibraryType
+
class LibraryOptions(admin.ModelAdmin):
+ class Media:
+ css = {
+ "all": ("css/wide_account_number.css",)
+ }
+
date_hierarchy = "creation_date"
save_as = True
save_on_top = True
#'aligned_reads',
#'DataRun',
'library_name',
+ 'public',
#'experiment_type',
#'organism',
#'antibody_name',
#'made_by',
'undiluted_concentration',
'creation_date',
- 'stopping_point',
+ 'stopping_point',
#'condition',
)
'antibody',
'cell_line',
'condition',
- 'stopping_point')
+ 'stopping_point',
+ 'hidden')
list_display_links = ('library_id', 'library_name',)
fieldsets = (
(None, {
'fields': (
- ('replicate','library_id','library_name'),
+ ('library_id','library_name','hidden'),
('library_species'),
- ('experiment_type'),
+ ('library_type', 'experiment_type', 'replicate'),
('cell_line','condition','antibody'),)
}),
('Creation Information:', {
- 'fields' : (('made_for', 'made_by', 'creation_date'), ('stopping_point', 'amplified_from_sample'), ('avg_lib_size','undiluted_concentration', 'ten_nM_dilution', 'successful_pM'), 'notes',)
+ 'fields' : (('made_for', 'made_by', 'creation_date'), ('stopping_point', 'amplified_from_sample'), ('avg_lib_size','undiluted_concentration', 'ten_nM_dilution', 'successful_pM'), 'account_number', 'notes',)
}),
('Library/Project Affiliation:', {
'fields' : (('affiliations'), ('tags'),)
}),
)
+ inlines = [
+ LaneLibraryInline,
+ ]
-class AffiliationOptions(admin.ModelAdmin):
- list_display = ('name','contact','email')
- fieldsets = (
- (None, {
- 'fields': (('name','contact','email'))
- }),
- )
-
-# class UserOptions(admin.ModelAdmin):
-# inlines = [Library_Inline]
-
-class AntibodyOptions(admin.ModelAdmin):
- search_fields = ('antigene','nickname','catalog','antibodies','source','biology','notes')
- list_display = ('antigene','nickname','antibodies','catalog','source','biology','notes')
- list_filter = ('antibodies','source')
- fieldsets = (
- (None, {
- 'fields': (('antigene','nickname','antibodies'),('catalog','source'),('biology'),('notes'))
- }),
- )
+ # some post 1.0.2 version of django has formfield_overrides
+ # which would replace this code with:
+ # formfield_overrids = {
+ # models.ManyToMany: { 'widget': widgets.FilteredSelectMultiple }
+ # }
+ def formfield_for_dbfield(self, db_field, **kwargs):
+ if db_field.name == 'affiliations':
+ kwargs['widget'] = widgets.FilteredSelectMultiple(db_field.verbose_name, (db_field.name in self.filter_vertical))
+ rv = super(LibraryOptions, self).formfield_for_dbfield(db_field, **kwargs)
+ return rv
class SpeciesOptions(admin.ModelAdmin):
fieldsets = (
}),
)
-class ConditionOptions(admin.ModelAdmin):
- list_display = (('condition_name'), ('notes'),)
- fieldsets = (
- (None, {
- 'fields': (('condition_name'),('nickname'),('notes'),)
- }),
- )
-
class TagOptions(admin.ModelAdmin):
list_display = ('tag_name', 'context')
fieldsets = (
admin.site.register(Antibody, AntibodyOptions)
admin.site.register(Cellline, CelllineOptions)
admin.site.register(Condition, ConditionOptions)
+admin.site.register(ExperimentType, ExperimentTypeOptions)
+admin.site.register(HTSUser, HTSUserOptions)
+admin.site.register(LibraryType, LibraryTypeOptions)
admin.site.register(Library, LibraryOptions)
admin.site.register(Species, SpeciesOptions)
admin.site.register(Tag, TagOptions)