예제 #1
0
        __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)
예제 #2
0
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')
예제 #3
0
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)
예제 #4
0
파일: Widget.py 프로젝트: CGTIC/Plone_SP
               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)
예제 #5
0
        # 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"),
)
예제 #7
0
from Products.Archetypes.Registry import registerPropertyType

#not sure if this is needed
registerPropertyType('workflow_settings', 'workflow_settings')
예제 #8
0
        '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)
예제 #9
0
        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)
예제 #10
0
    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)
예제 #11
0
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)
예제 #12
0
                    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)
예제 #13
0
파일: record.py 프로젝트: a25kk/stv2
                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)

예제 #14
0
파일: field.py 프로젝트: RBINS/mars
#-*- 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') 
예제 #15
0
    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')
예제 #16
0
            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)
예제 #17
0
            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)
예제 #18
0
    _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()
예제 #19
0
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)
예제 #20
0
# 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)
예제 #21
0
파일: FckWidget.py 프로젝트: Vinsurya/Plone
        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)
예제 #23
0
# 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)
예제 #24
0
파일: field.py 프로젝트: rockfruit/mars
#-*- 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')
예제 #25
0
# 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)
예제 #26
0
파일: remotetext.py 프로젝트: a25kk/stv2
        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)

예제 #27
0
파일: comment.py 프로젝트: a25kk/stv2
        '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)
예제 #28
0
                        '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)
예제 #29
0
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)
예제 #30
0
                                    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)
예제 #31
0
#
# 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)
예제 #32
0
               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)
예제 #33
0
파일: field.py 프로젝트: eea/eea.reports
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)
예제 #36
0
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)
예제 #37
0
        # 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)
예제 #38
0
    _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)