示例#1
0
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)
示例#2
0
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)
示例#3
0
 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
示例#4
0
 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
示例#5
0
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='_'))
示例#6
0
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="_"))
示例#7
0
 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)
示例#8
0
 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
示例#9
0
 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
示例#10
0
 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)
示例#11
0
 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')
示例#12
0
 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')