def table_header(code, name=None, description=None, fields=None, attrname=None, sortable=True, width=None, extraclass=None, hidden=False, filter=None): '''Utility for creating an instance of a :class:`table_header_` namedtuple. :param code: unique code for the header :param attrname: optional attribute name, if not supplied the *code* will be used. The attrname is the actual attribute name in the object, and therefore the actual field in the database. :param extraclass: additional classes for HTML rendering. :param filter: to specify a filter type. This will render into a input element in the header or footer of the table. ''' if isinstance(code, table_header_): return code if name is None: name = nicename(code) attrname = attrname or slugify(code) fields = fields or attrname if not isinstance(fields, (list, tuple)): fields = (fields,) else: fields = tuple(fields) return table_header_(code, name, description, fields, attrname, sortable, width, extraclass, hidden, filter)
def table_header(code, name=None, description=None, fields=None, attrname=None, sortable=True, width=None, extraclass=None, hidden=False, filter=None): '''Utility for creating an instance of a :class:`table_header_` namedtuple. :param code: unique code for the header :param attrname: optional attribute name, if not supplied the *code* will be used. The attrname is the actual attribute name in the object, and therefore the actual field in the database. :param extraclass: additional classes for HTML rendering. :param filter: to specify a filter type. This will render into a input element in the header or footer of the table. ''' if isinstance(code, table_header_): return code if name is None: name = nicename(code) attrname = attrname or slugify(code) fields = fields or attrname if not isinstance(fields, (list, tuple)): fields = (fields, ) else: fields = tuple(fields) return table_header_(code, name, description, fields, attrname, sortable, width, extraclass, hidden, filter)
def addClass(self, cn): '''Add the specific class names to the class set and return ``self``.''' if cn: if isinstance(cn,(tuple,list,set,frozenset)): add = self.addClass for c in cn: add(c) else: add = self.classes.add for cn in cn.split(): add(slugify(cn)) return self
def addClass(self, cn): '''Add the specific class names to the class set and return ``self``.''' if cn: if isinstance(cn, (tuple, list, set, frozenset)): add = self.addClass for c in cn: add(c) else: add = self.classes.add for cn in cn.split(): add(slugify(cn)) return self
def makename(self, name, description): name = name or self.name if not name: path = self.path if '<' not in path: name = path.replace('/', ' ') else: name = self.__class__.__name__.lower() if len(name) > 4 and name.endswith('view'): name = name[:-4] name = name.replace(SPLITTER, '_').lower() self.description = description or self.description or nicename(name) self.name = str(slugify(name, rtx='_'))
def makename(self, name, description): name = name or self.name if not name: path = self.path if "<" not in path: name = path.replace("/", " ") else: name = self.__class__.__name__.lower() if len(name) > 4 and name.endswith("view"): name = name[:-4] name = name.replace(SPLITTER, "_").lower() self.description = description or self.description or nicename(name) self.name = str(slugify(name, rtx="_"))
def handle_params(self, max_length = 30, char_transform = None, toslug = None, **kwargs): if not max_length: raise ValueError('max_length must be provided for {0}'\ .format(self.__class__.__name__)) self.max_length = int(max_length) if self.max_length <= 0: raise ValueError('max_length must be positive') self.char_transform = char_transform if toslug: if toslug == True: toslug = '-' toslug = slugify(toslug) self.toslug = toslug self._raise_error(kwargs)
def _clean(self, value, bfield): try: value = to_string(value) except: raise ValidationError() if self.toslug: value = slugify(value, self.toslug) if self.char_transform: if self.char_transform == 'u': value = value.upper() else: value = value.lower() if self.required and not value: raise ValidationError( self.validation_error.format(bfield.name, value)) return value
def _clean(self, value, bfield): try: value = to_string(value) except: raise ValidationError() if self.toslug: value = slugify(value, self.toslug) if self.char_transform: if self.char_transform == 'u': value = value.upper() else: value = value.lower() if self.required and not value: raise ValidationError( self.validation_error.format(bfield.name,value)) return value
def handle_params(self, max_length=30, char_transform=None, toslug=None, **kwargs): if not max_length: raise ValueError('max_length must be provided for {0}'\ .format(self.__class__.__name__)) self.max_length = int(max_length) if self.max_length <= 0: raise ValueError('max_length must be positive') self.char_transform = char_transform if toslug: if toslug == True: toslug = '-' toslug = slugify(toslug) self.toslug = toslug self._raise_error(kwargs)
def testSlugify(self): self.assertEqual(slugify(URI_RESERVED_CHARS), '') self.assertEqual(slugify('ciao pippo'), 'ciao-pippo') self.assertEqual(slugify('ciao "pippo"'), 'ciao-pippo') self.assertEqual(slugify("ciao 'bla' 'go';;;pippo"), 'ciao-bla-gopippo')