From 33f5b7a4ff381a2094c937a74b9a6672ef740ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 12 Mar 2014 16:19:04 +0100 Subject: [PATCH] defer loading concerned persons to widget (#4450) --- src/pfwbged/basecontent/types.py | 4 ++-- src/pfwbged/basecontent/widget.py | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/pfwbged/basecontent/types.py b/src/pfwbged/basecontent/types.py index e1c5e36..c2e1431 100644 --- a/src/pfwbged/basecontent/types.py +++ b/src/pfwbged/basecontent/types.py @@ -9,7 +9,7 @@ from collective.dms.mailcontent.dmsmail import IDmsIncomingMail, DmsIncomingMail from pfwbged.basecontent import _ -from .widget import AjaxChosenFieldWidget +from .widget import AjaxChosenFieldWidget, ReallyAjaxChosenFieldWidget class IPfwbBaseDocument(IDmsDocument): @@ -30,7 +30,7 @@ class IMedicalCertificate(IDmsIncomingMail): title=_(u'Concerned Person'), required=True, vocabulary='plone.principalsource.Users') - form.widget(concerned_person=AjaxChosenFieldWidget) + form.widget(concerned_person=ReallyAjaxChosenFieldWidget) class MedicalCertificate(DmsIncomingMail): diff --git a/src/pfwbged/basecontent/widget.py b/src/pfwbged/basecontent/widget.py index d3ccc0a..889f0e7 100644 --- a/src/pfwbged/basecontent/widget.py +++ b/src/pfwbged/basecontent/widget.py @@ -9,4 +9,13 @@ def AjaxChosenFieldWidget(field, request): widget = z3c.form.widget.FieldWidget(field, AjaxChosenSelectionWidget(request)) widget.populate_select = True + widget.ignoreMissing = True + return widget + +@implementer(z3c.form.interfaces.IFieldWidget) +def ReallyAjaxChosenFieldWidget(field, request): + widget = z3c.form.widget.FieldWidget(field, + AjaxChosenSelectionWidget(request)) + widget.populate_select = False + widget.ignore_missing = True return widget