if t is None:            
            return ERROR_MESSAGE
            
        output, messages = t.evaluate(context)
        self.outputTemplateErrors(instance, messages)
        if output is None:
            return ERROR_MESSAGE            
        
        return unicode(output).encode("utf-8")
        
    def get(self, instance, **kwargs):        
        """ Define view mode accessor for the widget """                
            
        text = TextField.get(self, instance, **kwargs)
            
        raw = kwargs.get("raw", False)
        
        if raw:
            return text
        else:
            return self._getCooked(instance, text)
    


registerField(TemplatedTextField,
              title='TemplatedTextField',
              description=('A place holder field without value storing'))

    


class FixedRow:
    """ Row which is always present at DataGridField data.

    This is a useful use case for situations where user must be
    forced to fill in some rows containing pre-set data. An example could
    be the filling of programming language knowledge in CV.
    Languages are preset and user fills in his/her experience.
    User can also add some weird languages outside pre-set languages.

    Instead of going with normal field.default behavior, fixed rows allow some
    flexibility when changing the fixed data set after item initialization.
    For example, the set of programming languages can be updated and user
    refills missing values to his/her CV.
    """

    def __init__(self, keyColumn, initialData):
        """
        @param initialData Dictionary for the row when user has deleted the
        fixed row/item is initialized
        @param keyColumn Column which existence of value determines the need
        for a fixed row
        """
        self.keyColumn = keyColumn
        self.initialData = initialData

registerField(DataGridField,
              title='DataGridField',
              description=('Used for storing tabular string data'))
        t, messages = self.compile(text)

        self.outputTemplateErrors(instance, messages)
        if t is None:
            return ERROR_MESSAGE

        output, messages = t.evaluate(context)
        self.outputTemplateErrors(instance, messages)
        if output is None:
            return ERROR_MESSAGE

        return unicode(output).encode("utf-8")

    def get(self, instance, **kwargs):
        """ Define view mode accessor for the widget """

        text = TextField.get(self, instance, **kwargs)

        raw = kwargs.get("raw", False)

        if raw:
            return text
        else:
            return self._getCooked(instance, text)


registerField(TemplatedTextField,
              title='TemplatedTextField',
              description=('A place holder field without value storing'))
示例#4
0
    implements(IQueryField)
    _properties = ObjectField._properties.copy()

    security = ClassSecurityInfo()

    def get(self, instance, **kwargs):
        """Get the query dict from the request or from the object"""
        raw = kwargs.get('raw', None)
        value = self.getRaw(instance)
        if raw == True:
            # We actually wanted the raw value, should have called getRaw
            return value
        querybuilder = QueryBuilder(instance, getSite().REQUEST)

        sort_on = kwargs.get('sort_on', instance.getSort_on())
        sort_order = 'reverse' if instance.getSort_reversed() else 'ascending'
        limit = kwargs.get('limit', instance.getLimit())
        return querybuilder(query=value, batch=kwargs.get('batch', False),
            b_start=kwargs.get('b_start', 0), b_size=kwargs.get('b_size', 30),
            sort_on=sort_on, sort_order=sort_order,
            limit=limit, brains=kwargs.get('brains', False),
            custom_query=kwargs.get('custom_query', {}))

    def getRaw(self, instance, **kwargs):
        return deepcopy(ObjectField.get(self, instance, **kwargs) or [])


registerField(QueryField, title='QueryField',
    description=('query field for storing a query'))
示例#5
0
    security = ClassSecurityInfo()

    def get(self, instance, **kwargs):
        """Get the query dict from the request or from the object"""
        raw = kwargs.get('raw', None)
        value = self.getRaw(instance)
        if raw:
            # We actually wanted the raw value, should have called getRaw
            return value
        request = getSite().REQUEST
        request['catalog_name'] = self.catalog_name
        querybuilder = QueryBuilder(instance, request,
                                    catalog_name=self.catalog_name)

        sort_on = kwargs.get('sort_on', instance.getSort_on())
        sort_order = 'reverse' if instance.getSort_reversed() else 'ascending'
        limit = kwargs.get('limit', instance.getLimit())

        return querybuilder(query=value, batch=kwargs.get('batch', False),
                            b_start=kwargs.get('b_start', 0),
                            b_size=kwargs.get('b_size', 30),
                            sort_on=sort_on, sort_order=sort_order,
                            limit=limit, brains=kwargs.get('brains', False))

    def getRaw(self, instance, **kwargs):
        return ObjectField.get(self, instance, **kwargs) or ()


registerField(QueryField, title='QueryField',
              description=('query field for storing a query'))
        'type': 'mxdatetimefield',
        'widget': MxDateTimeWidget,
        })

    security = ClassSecurityInfo()
    security.declarePrivate('set')
    security.declarePrivate('get')

    def set(self, instance, value, **kwargs):
        """
        Check if value is an actual date/time value. If not, attempt
        to convert it to one; otherwise, set to None. Assign all
        properties passed as kwargs to object.
        """
        if not value:
            value = None

        if type(value) in StringTypes:
            value = DateTimeFrom(value)

        if value and type(value) != DateTimeType:
            raise ValueError("Argument to MxDateTimeField must be either "
                             "a string or a MxDateTime object, but "
                             "got: %s" % repr(value))

        ObjectField.set(self, instance, value, **kwargs)

registerField(MxDateTimeField,
              title='MxDateTimeField',
              description='')