Add a new "mail ref id" field, to get a specialized view later on

This commit is contained in:
Frédéric Péters 2011-07-27 08:22:35 +02:00
parent 40093a7b1c
commit 7b43be9b0f
8 changed files with 47 additions and 0 deletions

View File

@ -26,6 +26,7 @@ from themis.fields.interfaces import IDateOnly
from themis.fields.interfaces import IRadioChoice
from themis.fields.interfaces import ISubjects, ILegisSession, IList
from themis.fields.interfaces import IRelatedDoc
from themis.fields.interfaces import IMailRefId
from themis.fields.vocabs import SubjectsSource
from themis.fields.vocabs import LegislativeSessionsSource
@ -352,3 +353,8 @@ class RelatedDoc(Relation):
clone.vocabulary = self.vocabulary(object)
return clone
class MailRefId(Field):
implements(IMailRefId)

View File

@ -13,6 +13,7 @@ from themis.fields import Deputy, Deputies
from themis.fields import Ministry, Ministries
from themis.fields import DeputyOrMinistry, DeputiesOrMinistries
from themis.fields import RelatedDoc
from themis.fields import MailRefId
from plone.schemaeditor.fields import FieldFactory
@interface.implementer(editor_ifaces.IFieldEditFormSchema)
@ -44,3 +45,5 @@ DateOnlyFactory = FieldFactory(DateOnly, u'Date')
RadioChoiceFactory = FieldFactory(RadioChoice, u'Choice (radio)', values=[])
RelatedDocFactory = FieldFactory(RelatedDoc, u'Related Document')
MailRefIdFactory = FieldFactory(MailRefId, u'Mail Reference')

View File

@ -77,4 +77,9 @@
component=".editors.RelatedDocFactory"
/>
<utility
name="themis.fields.MailRefId"
component=".editors.MailRefIdFactory"
/>
</configure>

View File

@ -22,6 +22,7 @@ if HAVE_SUPERMODEL:
from themis.fields import Contact, Contacts
from themis.fields import LegisSession
from themis.fields import RelatedDoc
from themis.fields import MailRefId
class CommissionHandler_(BaseHandler):
pass
@ -98,4 +99,9 @@ if HAVE_SUPERMODEL:
RelatedDocHandler = RelatedDocHandler_(RelatedDoc)
class MailRefIdHandler_(BaseHandler):
pass
MailRefIdHandler = MailRefIdHandler_(MailRefId)

View File

@ -79,4 +79,9 @@
name="themis.fields.RelatedDoc"
/>
<utility
component=".handlers.MailRefIdHandler"
name="themis.fields.MailRefId"
/>
</configure>

View File

@ -93,3 +93,15 @@ class IRelatedDoc(IRelation):
title=IField['missing_value'].title,
description=IField['missing_value'].description,
required=False)
class IMailRefId(IField):
default = schema.Text(
description=IField['default'].description,
required=False)
missing_value = schema.Text(
title=IField['missing_value'].title,
description=IField['missing_value'].description,
required=False)

View File

@ -19,6 +19,7 @@ from themis.fields.interfaces import IMinistry, IMinistries
from themis.fields.interfaces import IDeputyOrMinistry, IDeputiesOrMinistries
from themis.fields.interfaces import IOrderedSelectAndAddWidget
from themis.fields.interfaces import IRelatedDoc
from themis.fields.interfaces import IMailRefId
from plone.formwidget.autocomplete.interfaces import IAutocompleteWidget
from plone.formwidget.autocomplete.widget import AutocompleteSelectionWidget
@ -27,6 +28,7 @@ from plone.formwidget.autocomplete import AutocompleteFieldWidget
from z3c.form.browser.orderedselect import OrderedSelectWidget
from z3c.form.browser.checkbox import CheckBoxWidget
from z3c.form.browser.select import SelectWidget
from z3c.form.browser.text import TextWidget
from z3c.form.browser.radio import RadioWidget
from plone.formwidget.contenttree.widget import ContentTreeWidget
@ -189,3 +191,10 @@ def RelatedDocFieldWidget(field, request):
'''IFieldWidget factory for RadioChoiceWidget'''
return FieldWidget(field, ContentTreeWidget(request))
@adapter(IMailRefId, IFormLayer)
@implementer(IFieldWidget)
def MailRefIdFieldWidget(field, request):
"""IFieldWidget factory for MailRefId"""
return FieldWidget(field, TextWidget(request))

View File

@ -30,6 +30,7 @@
<adapter factory=".widgets.DateFieldWidget"/>
<adapter factory=".widgets.RadioChoiceFieldWidget"/>
<adapter factory=".widgets.RelatedDocFieldWidget"/>
<adapter factory=".widgets.MailRefIdFieldWidget"/>
<class class=".widgets.OrderedSelectAndAddWidget">
<require