diff --git a/themis/fields/__init__.py b/themis/fields/__init__.py
index 1d8f9e0..90f29e8 100644
--- a/themis/fields/__init__.py
+++ b/themis/fields/__init__.py
@@ -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)
+
+
diff --git a/themis/fields/editors.py b/themis/fields/editors.py
index d3abd8a..cad3f68 100644
--- a/themis/fields/editors.py
+++ b/themis/fields/editors.py
@@ -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')
diff --git a/themis/fields/editors.zcml b/themis/fields/editors.zcml
index 159af36..1a15aff 100644
--- a/themis/fields/editors.zcml
+++ b/themis/fields/editors.zcml
@@ -77,4 +77,9 @@
component=".editors.RelatedDocFactory"
/>
+
+
diff --git a/themis/fields/handlers.py b/themis/fields/handlers.py
index 28a1fc9..1b83b8b 100644
--- a/themis/fields/handlers.py
+++ b/themis/fields/handlers.py
@@ -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)
+
diff --git a/themis/fields/handlers.zcml b/themis/fields/handlers.zcml
index 7cef426..c7375ff 100644
--- a/themis/fields/handlers.zcml
+++ b/themis/fields/handlers.zcml
@@ -79,4 +79,9 @@
name="themis.fields.RelatedDoc"
/>
+
+
diff --git a/themis/fields/interfaces.py b/themis/fields/interfaces.py
index 6295f2f..68cf7ea 100644
--- a/themis/fields/interfaces.py
+++ b/themis/fields/interfaces.py
@@ -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)
+
diff --git a/themis/fields/widgets.py b/themis/fields/widgets.py
index 7882273..c76bd30 100644
--- a/themis/fields/widgets.py
+++ b/themis/fields/widgets.py
@@ -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))
+
+
diff --git a/themis/fields/widgets.zcml b/themis/fields/widgets.zcml
index ffd411c..83d7ac1 100644
--- a/themis/fields/widgets.zcml
+++ b/themis/fields/widgets.zcml
@@ -30,6 +30,7 @@
+