From 4683cbd27d899440d3d74a064eeae9c54150e469 Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Thu, 12 Mar 2009 23:56:57 +0000 Subject: [PATCH] Use django's FilteredSelectMultiple javascript widget for picking affiliations --- htsworkflow/frontend/samples/admin.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 = ( -- 2.30.2