__traceback_info__ = (content_instance, self.getName(), pairs) return DisplayList(pairs) def getStartupDirectory(self, instance): storage = getUtility(IMarscatsSettingsStorage) portal_type = instance.portal_type name = self.getName() return storage.getStartupDir(name, portal_type, ispath=True) def get(self, instance, **kwargs): startup_directory = self.getStartupDirectory(instance) portal_url = getToolByName(instance, 'portal_url') portal = portal_url.getPortalObject() startup_folder = portal.restrictedTraverse(str(startup_directory)) startup_folder_url = startup_folder.absolute_url() refcat = getToolByName(instance, 'reference_catalog') items = [] kwargs['aslist'] = True value = ReferenceField.getRaw(self, instance, **kwargs) for uid in value: obj = refcat.lookupObject(uid) item = getTitledPath(obj, startup_folder_url) items.append(' / '.join(item)) return items registerField(MarscatField, title='Mars Categories', description=('Used for categorizing MARS Collection Objects.')) registerPropertyType('categories', 'tuple', MarscatField)
from bika.lims.browser import ulocalized_time as ut class DateTimeWidget(TypesWidget): _properties = TypesWidget._properties.copy() _properties.update({ 'show_time': False, 'macro': "bika_widgets/datetimewidget", 'helper_js': ("bika_widgets/datetimewidget.js",), 'helper_css': ("bika_widgets/datetimewidget.css",), }) security = ClassSecurityInfo() def ulocalized_time(self, time, context, request): val = ut(time, long_format=self._properties['show_time'], time_only=False, context=context, request=request) return val registerWidget( DateTimeWidget, title='DateTimeWidget', description=('Simple text field, with a jquery date widget attached.') ) registerPropertyType('show_time', 'boolean')
from Products.Archetypes.Widget import DecimalWidget as _d from Products.Archetypes.Registry import registerPropertyType from Products.Archetypes.Registry import registerWidget from AccessControl import ClassSecurityInfo _marker = [] class DecimalWidget(_d): _properties = _d._properties.copy() _properties.update({ 'macro': "bika_widgets/decimal", 'unit': '', }) security = ClassSecurityInfo() registerWidget(DecimalWidget, title='Decimal', description=('Renders a HTML text input box which ' 'accepts a fixed point value'), ) registerPropertyType('unit', 'string', DecimalWidget)
title='In & Out', description=('Renders a widget for moving items ' 'from one list to another. Items are ' 'removed from the first list.'), used_for=('Products.Archetypes.Field.LinesField', 'Products.Archetypes.Field.ReferenceField',) ) registerWidget(PicklistWidget, title='Picklist', description=('Render a widget to pick from one ' 'list to populate another. Items ' 'stay in the first list.'), used_for=('Products.Archetypes.Field.LinesField',) ) registerPropertyType('maxlength', 'integer', StringWidget) registerPropertyType('populate', 'boolean') registerPropertyType('postback', 'boolean') registerPropertyType('rows', 'integer', RichWidget) registerPropertyType('cols', 'integer', RichWidget) registerPropertyType('rows', 'integer', TextAreaWidget) registerPropertyType('cols', 'integer', TextAreaWidget) registerPropertyType('append_only', 'boolean', TextAreaWidget) registerPropertyType('divider', 'string', TextAreaWidget) registerPropertyType('timestamp', 'boolean', TextAreaWidget) registerPropertyType('rows', 'integer', LinesWidget) registerPropertyType('cols', 'integer', LinesWidget) registerPropertyType('rows', 'integer', VisualWidget) registerPropertyType('cols', 'integer', VisualWidget)
# default form value of ['']. here we inject a 'custom' empty-value # to trigger the isempty-validator and not use the previous content of # the field. if field.required and field.multiValued and \ not emptyReturnsMarker and result == ([''], {}): return [], {} return result registerWidget(ReferenceBrowserWidget, title='Reference Browser', description=('Reference widget that allows you to browse or ' 'search the portal for objects to refer to.'), used_for=('Products.Archetypes.Field.ReferenceField',) ) registerPropertyType('default_search_index', 'string', ReferenceBrowserWidget) registerPropertyType('show_index_selector', 'boolean', ReferenceBrowserWidget) registerPropertyType('available_indexes', 'dictionary', ReferenceBrowserWidget) registerPropertyType('allow_search', 'boolean', ReferenceBrowserWidget) registerPropertyType('allow_browse', 'boolean', ReferenceBrowserWidget) registerPropertyType('allow_sorting', 'boolean', ReferenceBrowserWidget) registerPropertyType('startup_directory', 'string', ReferenceBrowserWidget) registerPropertyType('restrict_browsing_to_startup_directory', 'boolean', ReferenceBrowserWidget) registerPropertyType('search_catalog', 'string', ReferenceBrowserWidget) registerPropertyType('image_portal_types', 'lines', ReferenceBrowserWidget) registerPropertyType('image_method', 'string', ReferenceBrowserWidget) registerPropertyType('force_close_on_insert', 'boolean', ReferenceBrowserWidget)
""" from AccessControl import ClassSecurityInfo from Products.Archetypes.public import StringWidget from Products.Archetypes.Registry import registerWidget from Products.Archetypes.Registry import registerPropertyType class FormAutoFillWidget(StringWidget): # Vocabulary= function should return extra descriptions when # called with 'extended=True' security = ClassSecurityInfo() _properties = StringWidget._properties.copy() _properties.update( {"macro": "formautofill", "helper_url": None, "helper_text": "Open Subform", "icon": "autofill.png"} ) registerPropertyType("helper_url", "string", FormAutoFillWidget) registerPropertyType("helper_text", "string", FormAutoFillWidget) registerPropertyType("icon", "string", FormAutoFillWidget) registerWidget( FormAutoFillWidget, title="Form Auto Fill", description="A string field which uses javascript to fill the rest of the form.", used_for=("Products.Archetypes.public.StringField", "Products.Archetypes.Field.LinesField"), )
from Products.Archetypes.Registry import registerPropertyType #not sure if this is needed registerPropertyType('workflow_settings', 'workflow_settings')
'disabled': False, 'page': 5, 'helper_js': (), 'helper_css': (), }) security = ClassSecurityInfo() registerWidget(SliderWidget, title='Slider Widget', description=('Uma widget para escolher valores dentro de um dado intervalo ' 'na qual pode-se escolher deslizando um controle.'), used_for=('Products.Archetypes.Field.IntegerField', 'Products.Archetypes.Field.StringField', 'Products.Archetypes.Field.TextField' ) ) registerWidget(SpinnerWidget, title='Spinner Widget', description=('Uma widget para escolher valores dentro de um dado intervalo ' 'na qual pode-se escolher deslizando um controle.'), used_for=('Products.Archetypes.Field.IntegerField', 'Products.Archetypes.Field.StringField', 'Products.Archetypes.Field.TextField' ) ) registerPropertyType('marcadores', 'tuple', SliderWidget) #registerPropertyType('force_close_on_insert', 'boolean', SliderWidget)
try: # better use Tiran's 'urlupload'? value = urllib.urlopen(source_path).read() except: # XXX FIXME what to catch here? value = '' return value def getTextFromSvn(self, instance): source_path = self.getSourcePath(instance) error = None command = "svn export %s" % source_path try: value, error = _pipe(command) except: # XXX FIXME what to catch here? - or is pipe # robust enough never to blow up?? value = '' if error: return '' return value registerField(RemoteTextField, title="Remote Text Field", description="Populate a field from a remote source") registerPropertyType('source_types', 'lines', RemoteTextField) registerPropertyType('timeout', 'DateTime', RemoteTextField) registerPropertyType('customized', 'boolean', RemoteTextField)
def process_form(self, instance, field, form, empty_marker=None, emptyReturnsMarker=False): """ add the default protocol to the url field if there is none """ value = form.get(field.getName(), empty_marker) if value is empty_marker: return empty_marker if emptyReturnsMarker and value in ('', {}): return empty_marker url = value.get('url', None) if url and '://' not in url: url = self.default_protocol + '://' + url value.url = url return value, {} InitializeClass(LabeledUrlWidget) registerWidget(LabeledUrlWidget, title='LabeledUrl', description="Renders a URL in an anchor tag " "using label as display text.", used_for=('Products.ATExtensions.fields.LabeledUrlField', )) registerPropertyType('default_protocol', 'string', LabeledUrlWidget)
from Products.Archetypes.public import DateTimeField as BaseField from Products.Archetypes.Registry import registerField, \ registerPropertyType from Products.ATExtensions.widget.datetime import DateTimeWidget class DateTimeField(BaseField): """ An improved DateTime Field. It allows to specify whether only dates or only times are interesting. """ _properties = BaseField._properties.copy() _properties.update({ 'type' : 'datetime_ng', 'widget' : DateTimeWidget, 'with_time' : 1, # set to False if you want date only objects 'with_date' : 1, # set to False if you want time only objects }) security = ClassSecurityInfo() InitializeClass(DateTimeField) registerField(DateTimeField, title="DateTime Field", description="An improved DateTimeField, which also allows time or date only specifications.", ) registerPropertyType('with_time', 'boolean', DateTimeField) registerPropertyType('with_date', 'boolean', DateTimeField)
subfield, None) if subfield_validators: result = subfield_validators(value.get(subfield), instance=instance, errors=errors, field=self, **kwargs) if result is not True: total += result return total or result InitializeClass(RecordField) registerField( RecordField, title="Record", description="Used for storing a 'record' (dictionary-like) construct", ) registerPropertyType('subfields', 'lines', RecordField) registerPropertyType('required_subfields', 'lines', RecordField) registerPropertyType('subfield_validators', 'mapping', RecordField) registerPropertyType('subfield_types', 'mapping', RecordField) registerPropertyType('subfield_vocabularies', 'mapping', RecordField) registerPropertyType('subfield_labels', 'mapping', RecordField) registerPropertyType('subfield_sizes', 'mapping', RecordField) registerPropertyType('subfield_maxlength', 'mapping', RecordField) registerPropertyType('innerJoin', 'string', RecordField) registerPropertyType('outerJoin', 'string', RecordField)
if subfield_validators: result = subfield_validators(value.get(subfield), instance=instance, errors=errors, field=self, **kwargs ) if result is not True: total += result return total or result InitializeClass(RecordField) registerField(RecordField, title="Record", description="Used for storing a 'record' (dictionary-like) construct", ) registerPropertyType('subfields', 'lines', RecordField) registerPropertyType('required_subfields', 'lines', RecordField) registerPropertyType('subfield_validators', 'mapping', RecordField) registerPropertyType('subfield_types', 'mapping', RecordField) registerPropertyType('subfield_vocabularies', 'mapping', RecordField) registerPropertyType('subfield_labels', 'mapping', RecordField) registerPropertyType('subfield_sizes', 'mapping', RecordField) registerPropertyType('subfield_maxlength', 'mapping', RecordField) registerPropertyType('innerJoin', 'string', RecordField) registerPropertyType('outerJoin', 'string', RecordField)
#-*- coding: utf-8 -*- from DateTime import DateTime from DateTime.interfaces import DateTimeError from datetime import datetime, date from Products.Archetypes.Field import ObjectField, Field, DateTimeField from AccessControl import ClassSecurityInfo from plone.formwidget.datetime.at import YearWidget from Products.Archetypes.Registry import registerField from Products.Archetypes.Registry import registerPropertyType class YearField(DateTimeField): """A field that stores dates and times""" _properties = Field._properties.copy() _properties.update({ 'type' : 'datetime', 'widget' : YearWidget, }) registerPropertyType('default', 'datetime', DateTimeField) registerField(DateTimeField, title='Date Time', description='Used for storing date/time')
security = ClassSecurityInfo() def ulocalized_time(self, time, context, request): """Returns the localized time in string format """ value = ut(time, long_format=self.show_time, time_only=False, context=context, request=request) return value or "" def ulocalized_gmt0_time(self, time, context, request): """Returns the localized time in string format, but in GMT+0 """ value = get_date(context, time) if not value: return "" # DateTime is stored with TimeZone, but DateTimeWidget omits TZ value = value.toZone("GMT+0") return self.ulocalized_time(value, context, request) registerWidget( DateTimeWidget, title='DateTimeWidget', description=('Simple text field, with a jquery date widget attached.')) registerPropertyType('show_time', 'boolean')
result = None for record in value: result = RecordField.validate(self, record, instance, errors={}, **kwargs ) if result: return result return result InitializeClass(RecordsField) registerField(RecordsField, title="Records", description="Used for storing a list of records", ) registerPropertyType('subfields', 'lines', RecordsField) registerPropertyType('required_subfields', 'lines', RecordField) registerPropertyType('subfield_validators', 'mapping', RecordField) registerPropertyType('subfield_types', 'mapping', RecordsField) registerPropertyType('subfield_vocabularies', 'mapping', RecordsField) registerPropertyType('subfield_labels', 'mapping', RecordsField) registerPropertyType('subfield_sizes', 'mapping', RecordsField) registerPropertyType('subfield_maxlength', 'mapping', RecordsField) registerPropertyType('innerJoin', 'string', RecordsField) registerPropertyType('fixedSize', 'boolean', RecordsField) registerPropertyType('minimalSize', 'int', RecordsField) registerPropertyType('maximalSize', 'int', RecordsField)
for record in value: result = RecordField.validate(self, record, instance, errors={}, **kwargs) if result: return result return result InitializeClass(RecordsField) registerField( RecordsField, title="Records", description="Used for storing a list of records", ) registerPropertyType('subfields', 'lines', RecordsField) registerPropertyType('required_subfields', 'lines', RecordField) registerPropertyType('subfield_validators', 'mapping', RecordField) registerPropertyType('subfield_types', 'mapping', RecordsField) registerPropertyType('subfield_vocabularies', 'mapping', RecordsField) registerPropertyType('subfield_labels', 'mapping', RecordsField) registerPropertyType('subfield_sizes', 'mapping', RecordsField) registerPropertyType('subfield_maxlength', 'mapping', RecordsField) registerPropertyType('innerJoin', 'string', RecordsField) registerPropertyType('fixedSize', 'boolean', RecordsField) registerPropertyType('minimalSize', 'int', RecordsField) registerPropertyType('maximalSize', 'int', RecordsField)
_properties.update({ 'macro' : "activestring", 'helper_js' : ('sarissa.js','activestring.js', 'sarissa_ieemu_xpath.js'), 'size' : '30', 'dataurl' : 'string:${here/absolute_url}/searchVocabulary?field=${fieldName}', }) security = ClassSecurityInfo() registerWidget(ActiveStringWidget, title='Active String Widget', description=('A String widget that will auto-complete the value you type.'), used_for=('Products.Archetypes.Field.StringField',) ) registerPropertyType('dataurl', 'string', ActiveStringWidget) class RelationRefWidget(ReferenceWidget): _properties = ReferenceWidget._properties.copy() _properties.update({ 'macro' : "relation_ref_widget", }) class SearchKWAWidget(ActiveStringWidget): _properties = ActiveStringWidget._properties.copy() _properties.update({ 'macro' : "activestringa", }) class SearchKWBWidget(ActiveStringWidget): _properties = ActiveStringWidget._properties.copy()
from App.class_init import InitializeClass from AccessControl import ClassSecurityInfo from Products.Archetypes.public import StringWidget from Products.Archetypes.Registry import registerWidget from Products.Archetypes.Registry import registerPropertyType class EmailWidget(StringWidget): _properties = StringWidget._properties.copy() _properties.update({ 'macro_view': "email_widget", 'at_mask': '(at)', }) security = ClassSecurityInfo() InitializeClass(EmailWidget) registerWidget(EmailWidget, title='Email', description="Renders an email address (masked for anonymous).", used_for=('Products.ATExtensions.fields.EmailField', )) registerPropertyType('at_mask', 'string', EmailWidget)
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF # USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # #$Id: COREBlogWidgets.py 133 2005-12-21 08:23:15Z ats $ # ############################################################################## from Products.Archetypes.Widget import TypesWidget from AccessControl import ClassSecurityInfo from Products.Archetypes.Registry import registerWidget, registerPropertyType class CategoryWidget(TypesWidget): _properties = TypesWidget._properties.copy() _properties.update({ 'macro': 'cbcategory_widget', 'folderid': 'categories', #folder id for category 'helper_css': ('coreblogwidgets.css', ), }) security = ClassSecurityInfo() registerWidget(CategoryWidget, title='Category widgets', description="This is Category widget.", used_for=('Used for selecting category.', )) registerPropertyType('folderid', 'string', CategoryWidget)
browserDict['browse_images_portal_types'] = self.browse_images_portal_types browserDict['browse_flashs_portal_types'] = self.browse_flashs_portal_types return browserDict registerWidget(FckWidget, title='FCKeditor Widget', description=('Renders a HTML widget that allows you to ' 'type some content with FCKEditor, ' 'choose formatting and/or upload a file'), used_for=('Products.Archetypes.Field.TextField',) ) registerPropertyType('allow_content_upload', 'boolean', FckWidget) registerPropertyType('start_expanded', 'boolean', FckWidget) registerPropertyType('allow_relative_links', 'boolean', FckWidget) registerPropertyType('force_paste_as_text', 'boolean', FckWidget) registerPropertyType('allow_server_browsing', 'boolean', FckWidget) registerPropertyType('allow_file_upload', 'boolean', FckWidget) registerPropertyType('allow_image_upload', 'boolean', FckWidget) registerPropertyType('allow_flash_upload', 'boolean', FckWidget) registerPropertyType('fck_force_path', 'boolean', FckWidget) registerPropertyType('fck_force_root', 'boolean', FckWidget) registerPropertyType('fck_default_r2l', 'boolean', FckWidget) registerPropertyType('keyboard_entermode', 'string', FckWidget) registerPropertyType('keyboard_shiftentermode', 'string', FckWidget) registerPropertyType('keyboard_keystrokesmode', 'string', FckWidget) registerPropertyType('spellchecker', 'string', FckWidget) registerPropertyType('fck_force_width', 'string', FckWidget)
if(data) { $('#archetypes-fieldname-%(id)s #%(id)s-input').before("<" + "label class='plain'><" + "input type='checkbox' name='%(id)s:list' checked='checked' value='" + data + "' /> " + data + "</label><br />"); } }, 'html'); """ registerWidget(KeywordsAutocompleteSelectionWidget, title='Keywords Autocomplete selection', description=(''), used_for=('Products.Archetypes.Field.StringField',) ) registerWidget(KeywordsAutocompleteMultiSelectionWidget, title='Keywords Autocomplete multiselection', description=(''), used_for=('Products.Archetypes.Field.LinesField',) ) registerPropertyType('autoFill', 'boolean', KeywordsAutocompleteSelectionWidget) registerPropertyType('minChars', 'integer', KeywordsAutocompleteSelectionWidget) registerPropertyType('maxResults', 'integer', KeywordsAutocompleteSelectionWidget) registerPropertyType('mustMatch', 'boolean', KeywordsAutocompleteSelectionWidget) registerPropertyType('matchContains', 'boolean', KeywordsAutocompleteSelectionWidget) registerPropertyType('formatItem', 'string', KeywordsAutocompleteSelectionWidget) registerPropertyType('formatResult', 'string', KeywordsAutocompleteSelectionWidget)
# This file is part of Bika LIMS # # Copyright 2011-2016 by it's authors. # Some rights reserved. See LICENSE.txt, AUTHORS.txt. from Products.Archetypes.Widget import IntegerWidget as _i from Products.Archetypes.Registry import registerPropertyType from Products.Archetypes.Registry import registerWidget from AccessControl import ClassSecurityInfo _marker = [] class IntegerWidget(_i): _properties = _i._properties.copy() _properties.update({ 'macro': "bika_widgets/integer", 'unit': '', }) security = ClassSecurityInfo() registerWidget(IntegerWidget, title='Integer', description=('Renders a HTML text input box which ' 'accepts a integer value'), ) registerPropertyType('unit', 'string', IntegerWidget)
#-*- coding: utf-8 -*- from DateTime import DateTime from DateTime.interfaces import DateTimeError from datetime import datetime, date from Products.Archetypes.Field import ObjectField, Field, DateTimeField from AccessControl import ClassSecurityInfo from plone.formwidget.datetime.at import YearWidget from Products.Archetypes.Registry import registerField from Products.Archetypes.Registry import registerPropertyType class YearField(DateTimeField): """A field that stores dates and times""" _properties = Field._properties.copy() _properties.update({ 'type': 'datetime', 'widget': YearWidget, }) registerPropertyType('default', 'datetime', DateTimeField) registerField(DateTimeField, title='Date Time', description='Used for storing date/time')
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # # Copyright 2018-2020 by it's authors. # Some rights reserved, see README and LICENSE. from Products.Archetypes.Widget import IntegerWidget as _i from Products.Archetypes.Registry import registerPropertyType from Products.Archetypes.Registry import registerWidget from AccessControl import ClassSecurityInfo _marker = [] class IntegerWidget(_i): _properties = _i._properties.copy() _properties.update({ 'macro': "bika_widgets/integer", 'unit': '', }) security = ClassSecurityInfo() registerWidget(IntegerWidget, title='Integer', description=('Renders a HTML text input box which ' 'accepts a integer value'), ) registerPropertyType('unit', 'string', IntegerWidget)
'comment_msgid' : '', 'widget' : CommentWidget, }) security = ClassSecurityInfo() def get(self, instance, **kwargs): domain = self.widget.i18n_domain if self.comment_msgid: comment = instance.translate(domain=domain, msgid=self.comment_msgid, default=self.comment) else: comment = instance.translate(domain=domain, msgid=self.comment, default=self.comment) transforms = getToolByName(instance, 'portal_transforms', None) if transforms is None: return comment return transforms.convertTo('text/html', comment, context=instance, mimetype=self.comment_type).getData() def set(self, instance, value, **kwargs): pass InitializeClass(CommentField) registerField(CommentField, title="Comment", description="Used for inserting comments into the views", ) registerPropertyType('comment', 'string', CommentField) registerPropertyType('comment_type', 'string', CommentField)
'helper_js': ('widget_dbreference.js', ), 'table': 'hebergement', 'size': '', 'unique_column': 'heb_pk', 'allow_non_exact_match': True, 'default_columns': 'heb_nom', 'view_url': '/view_hebergement?heb_pk=$(uid)', 'viewable_columns': {'heb_nom': 'Nom'}}) security = ClassSecurityInfo() security.declarePublic('getBaseQuery') def getBaseQuery(self, instance, field): """ Return base query to use for content search """ results = {} results['portal_type']=[] return results registerWidget(DBReferenceWidget, title = 'DB reference widget', description= ('Render a popup to select a reference in a DB', ), used_for = ('Products.Archetypes.Field.LinesField', )) registerPropertyType('table', 'string', DBReferenceWidget) registerPropertyType('default_columns', 'string', DBReferenceWidget) registerPropertyType('unique_column', 'string', DBReferenceWidget) registerPropertyType('view_url', 'string', DBReferenceWidget) registerPropertyType('viewable_columns', 'dictionary', DBReferenceWidget) registerPropertyType('allow_non_exact_match', 'boolean', DBReferenceWidget)
registerWidget( InAndOutWidget, title="In & Out", description=( "Renders a widget for moving items " "from one list to another. Items are " "removed from the first list." ), used_for=("Products.Archetypes.Field.LinesField", "Products.Archetypes.Field.ReferenceField"), ) registerWidget( PicklistWidget, title="Picklist", description=("Render a widget to pick from one " "list to populate another. Items " "stay in the first list."), used_for=("Products.Archetypes.Field.LinesField",), ) registerPropertyType("maxlength", "integer", StringWidget) registerPropertyType("populate", "boolean") registerPropertyType("postback", "boolean") registerPropertyType("rows", "integer", RichWidget) registerPropertyType("cols", "integer", RichWidget) registerPropertyType("rows", "integer", TextAreaWidget) registerPropertyType("cols", "integer", TextAreaWidget) registerPropertyType("append_only", "boolean", TextAreaWidget) registerPropertyType("divider", "string", TextAreaWidget) registerPropertyType("timestamp", "boolean", TextAreaWidget) registerPropertyType("rows", "integer", LinesWidget) registerPropertyType("cols", "integer", LinesWidget) registerPropertyType("rows", "integer", VisualWidget) registerPropertyType("cols", "integer", VisualWidget)
default=self.comment, context=request) else: comment = translate(domain=domain, msgid=self.comment, default=self.comment, context=request) else: comment = self.comment transforms = getToolByName(instance, 'portal_transforms', None) if transforms is None: return comment return transforms.convertTo('text/html', comment, context=instance, mimetype=self.comment_type).getData() def set(self, instance, value, **kwargs): pass InitializeClass(CommentField) registerField( CommentField, title="Comment", description="Used for inserting comments into the views", ) registerPropertyType('comment', 'string', CommentField) registerPropertyType('comment_type', 'string', CommentField)
# # Copyright 2011-2017 by it's authors. # Some rights reserved. See LICENSE.txt, AUTHORS.txt. from Products.Archetypes.Widget import DecimalWidget as _d from Products.Archetypes.Registry import registerPropertyType from Products.Archetypes.Registry import registerWidget from AccessControl import ClassSecurityInfo _marker = [] class DecimalWidget(_d): _properties = _d._properties.copy() _properties.update({ 'macro': "bika_widgets/decimal", 'unit': '', }) security = ClassSecurityInfo() registerWidget(DecimalWidget, title='Decimal', description=('Renders a HTML text input box which ' 'accepts a fixed point value'), ) registerPropertyType('unit', 'string', DecimalWidget)
title='In & Out', description=('Renders a widget for moving items ' 'from one list to another. Items are ' 'removed from the first list.'), used_for=( 'Products.Archetypes.Field.LinesField', 'Products.Archetypes.Field.ReferenceField', )) registerWidget(PicklistWidget, title='Picklist', description=('Render a widget to pick from one ' 'list to populate another. Items ' 'stay in the first list.'), used_for=('Products.Archetypes.Field.LinesField', )) registerPropertyType('maxlength', 'integer', StringWidget) registerPropertyType('populate', 'boolean') registerPropertyType('postback', 'boolean') registerPropertyType('rows', 'integer', RichWidget) registerPropertyType('cols', 'integer', RichWidget) registerPropertyType('rows', 'integer', TextAreaWidget) registerPropertyType('cols', 'integer', TextAreaWidget) registerPropertyType('append_only', 'boolean', TextAreaWidget) registerPropertyType('divider', 'string', TextAreaWidget) registerPropertyType('timestamp', 'boolean', TextAreaWidget) registerPropertyType('rows', 'integer', LinesWidget) registerPropertyType('cols', 'integer', LinesWidget) registerPropertyType('rows', 'integer', VisualWidget) registerPropertyType('cols', 'integer', VisualWidget)
class ReportSerialTitleField(ExtensionField, ExtensionFieldMixin, SerialTitleField): """ Archetypes SchemaExtender aware serial title field """ class ReportManagementPlanField(ExtensionField, ExtensionFieldMixin, ManagementPlanField): """ Archetypes SchemaExtender aware management plan field """ class ReportFileField(ExtensionField, ExtensionFieldMixin, BlobField): """ Archetypes SchemaExtender aware file field """ def set(self, instance, value, **kwargs): """ Field mutator """ is_value = value and value != "DELETE_FILE" # Handle migration migration = kwargs.pop('_migration_', False) if is_value and not migration: notify(FileUploadedEvent(instance, value, True)) BlobField.set(self, instance, value, **kwargs) registerField(SerialTitleField, title='Serial Title Field', description=('Used for storing report serial title')) registerPropertyType('types_vocabulary', 'string') registerPropertyType('years_vocabulary', 'string')
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF # USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # #$Id: COREBlogWidgets.py 133 2005-12-21 08:23:15Z ats $ # ############################################################################## from Products.Archetypes.Widget import TypesWidget from AccessControl import ClassSecurityInfo from Products.Archetypes.Registry import registerWidget, registerPropertyType class CategoryWidget(TypesWidget): _properties = TypesWidget._properties.copy() _properties.update({ 'macro' : 'cbcategory_widget', 'folderid' : 'categories', #folder id for category 'helper_css': ('coreblogwidgets.css',), }) security = ClassSecurityInfo() registerWidget(CategoryWidget, title='Category widgets', description="This is Category widget.", used_for=('Used for selecting category.',) ) registerPropertyType('folderid', 'string', CategoryWidget)
'default_protocol' : 'http', }) security = ClassSecurityInfo() security.declarePublic('process_form') def process_form(self, instance, field, form, empty_marker=None, emptyReturnsMarker=False): """ add the default protocol to the url field if there is none """ value = form.get(field.getName(), empty_marker) if value is empty_marker: return empty_marker if emptyReturnsMarker and value in ('', {}): return empty_marker url = value.get('url', None) if url and '://' not in url: url = self.default_protocol + '://' + url value.url = url return value, {} InitializeClass(LabeledUrlWidget) registerWidget(LabeledUrlWidget, title='LabeledUrl', description="Renders a URL in an anchor tag " "using label as display text.", used_for=('Products.ATExtensions.fields.LabeledUrlField',) ) registerPropertyType('default_protocol', 'string', LabeledUrlWidget)
from App.class_init import InitializeClass from AccessControl import ClassSecurityInfo from Products.Archetypes.public import StringWidget from Products.Archetypes.Registry import registerWidget from Products.Archetypes.Registry import registerPropertyType class EmailWidget(StringWidget): _properties = StringWidget._properties.copy() _properties.update({ 'macro_view' : "email_widget", 'at_mask' : '(at)', }) security = ClassSecurityInfo() InitializeClass(EmailWidget) registerWidget(EmailWidget, title='Email', description="Renders an email address (masked for anonymous).", used_for=('Products.ATExtensions.fields.EmailField',) ) registerPropertyType('at_mask', 'string', EmailWidget)
# when removing all items from a required reference-field we get a # default form value of ['']. here we inject a 'custom' empty-value # to trigger the isempty-validator and not use the previous content of # the field. if field.required and field.multiValued and \ not emptyReturnsMarker and result == ([''], {}): return [], {} return result registerWidget(IssueReferenceWidget, title='Issue Reference Browser', description=('Reference widget that allows you to browse or ' 'search the portal for objects to refer to.'), used_for=('Products.Archetypes.Field.ReferenceField', )) registerPropertyType('default_search_index', 'string', IssueReferenceWidget) registerPropertyType('show_index_selector', 'boolean', IssueReferenceWidget) registerPropertyType('available_indexes', 'dictionary', IssueReferenceWidget) registerPropertyType('allow_search', 'boolean', IssueReferenceWidget) registerPropertyType('allow_browse', 'boolean', IssueReferenceWidget) registerPropertyType('allow_sorting', 'boolean', IssueReferenceWidget) registerPropertyType('startup_directory', 'string', IssueReferenceWidget) registerPropertyType('restrict_browsing_to_startup_directory', 'boolean', IssueReferenceWidget) registerPropertyType('search_catalog', 'string', IssueReferenceWidget) registerPropertyType('image_portal_types', 'lines', IssueReferenceWidget) registerPropertyType('image_method', 'string', IssueReferenceWidget) registerPropertyType('force_close_on_insert', 'boolean', IssueReferenceWidget)
_properties = atapi.StringWidget._properties.copy() _properties.update({ 'label_fallback_value': 'Fallback', 'label_fallback_unavailable': 'N/A', 'macro': 'widget_string_fallback', }) security = ClassSecurityInfo() security.declarePublic('process_form') def process_form(self, instance, field, form, empty_marker=None, emptyReturnsMarker=False, validating=True): value = form.get(field.getName(), empty_marker) if value == '': value = form.get(field.getName() + '_fallback', empty_marker) if value is empty_marker: return empty_marker if emptyReturnsMarker and value == '': return empty_marker return value, {} registerWidget(StringFallbackWidget, title='String with Fallback', description=('Accepts a line of text. Falls back to default if ' 'empty.'), used_for=('Products.Archetypes.Field.StringField',) ) registerPropertyType('label_fallback_value', 'string', StringFallbackWidget) registerPropertyType('label_fallback_unavailable', 'string', StringFallbackWidget)