X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=blobdiff_plain;f=htsworkflow%2Ffrontend%2Fsamples%2Fadmin.py;h=d686e21e1bf14875e0d7e0c0ada807d623e64958;hp=c7d543a65cb442c152237082d87f7fc9aeb46983;hb=b5b068e8dce90e45a41149c94b30b742655cf618;hpb=2078a8ad53370bbe1ef08a573f7ee800a71b4937 diff --git a/htsworkflow/frontend/samples/admin.py b/htsworkflow/frontend/samples/admin.py index c7d543a..d686e21 100644 --- a/htsworkflow/frontend/samples/admin.py +++ b/htsworkflow/frontend/samples/admin.py @@ -1,18 +1,42 @@ 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.db import models from django.utils.translation import ugettext_lazy as _ -from htsworkflow.frontend.samples.models import Antibody, Cellline, Condition, ExperimentType, LibraryType, Species, Affiliation, Library, Tag +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')) + }), + ) -class LaneLibraryInline(admin.StackedInline): - model = Lane - extra = 0 + # 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 Library_Inline(admin.TabularInline): - model = Library +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') @@ -23,11 +47,28 @@ class CelllineOptions(admin.ModelAdmin): }), ) +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 HTSUserOptions(UserAdmin): pass + +class LaneLibraryInline(admin.StackedInline): + model = Lane + extra = 0 + +class Library_Inline(admin.TabularInline): + model = Library + class LibraryTypeOptions(admin.ModelAdmin): model = LibraryType @@ -106,27 +147,6 @@ class LibraryOptions(admin.ModelAdmin): print db_field.name, kwargs return rv -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')) - }), - ) - class SpeciesOptions(admin.ModelAdmin): fieldsets = ( (None, { @@ -134,14 +154,6 @@ class SpeciesOptions(admin.ModelAdmin): }), ) -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 = ( @@ -155,6 +167,7 @@ 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)