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'))
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'))
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='')