From: Diane Trout Date: Thu, 12 Mar 2009 23:56:57 +0000 (+0000) Subject: Use django's FilteredSelectMultiple javascript widget for picking affiliations X-Git-Tag: 0.2.0.2~13 X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=commitdiff_plain;h=4683cbd27d899440d3d74a064eeae9c54150e469 Use django's FilteredSelectMultiple javascript widget for picking affiliations --- diff --git a/htsworkflow/frontend/samples/admin.py b/htsworkflow/frontend/samples/admin.py index d3131ec..643413f 100644 --- a/htsworkflow/frontend/samples/admin.py +++ b/htsworkflow/frontend/samples/admin.py @@ -1,7 +1,10 @@ -from htsworkflow.frontend.samples.models import Antibody, Cellline, Condition, ExperimentType, Species, Affiliation, Library, Tag from django.contrib import admin +from django.contrib.admin import widgets +from django.db import models from django.utils.translation import ugettext_lazy as _ +from htsworkflow.frontend.samples.models import Antibody, Cellline, Condition, ExperimentType, Species, Affiliation, Library, Tag + class Library_Inline(admin.TabularInline): model = Library @@ -79,6 +82,18 @@ class LibraryOptions(admin.ModelAdmin): }), ) + # 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) + print db_field.name, kwargs + return rv + class AffiliationOptions(admin.ModelAdmin): list_display = ('name','contact','email') fieldsets = (