コード例 #1
0
ファイル: core.py プロジェクト: cwen0708/order-plus
def html_params(**kwargs):
    """
    Generate HTML attribute syntax from inputted keyword arguments.

    The output value is sorted by the passed keys, to provide consistent output
    each time this function is called with the same parameters. Because of the
    frequent use of the normally reserved keywords `class` and `for`, suffixing
    these with an underscore will allow them to be used.

    In addition, the values ``True`` and ``False`` are special:
      * ``attr=True`` generates the HTML compact output of a boolean attribute,
        e.g. ``checked=True`` will generate simply ``checked``
      * ``attr=`False`` will be ignored and generate no output.

    >>> html_params(name='text1', id='f', class_='text')
    'class="text" id="f" name="text1"'
    >>> html_params(checked=True, readonly=False, name="text1", abc="hello")
    'abc="hello" checked name="text1"'
    """
    params = []
    for k, v in sorted(iteritems(kwargs)):
        if k in ('class_', 'class__', 'for_'):
            k = k[:-1]
        if v is True:
            params.append(k)
        elif v is False:
            pass
        else:
            params.append('%s="%s"' %
                          (text_type(k), escape(text_type(v), quote=True)))
    return ' '.join(params)
コード例 #2
0
ファイル: core.py プロジェクト: cwen0708/order-plus
    def render_option(cls, value, label, selected, **kwargs):
        if value is True:
            # Handle the special case of a 'True' value.
            value = text_type(value)

        options = dict(kwargs, value=value)
        if selected:
            options['selected'] = True
        return HTMLString('<option %s>%s</option>' %
                          (html_params(**options), escape(text_type(label))))
コード例 #3
0
ファイル: fields.py プロジェクト: cwen0708/order-plus
 def _get_object_list(self):
     if self._object_list is None:
         query = self.query or self.query_factory()
         get_pk = self.get_pk
         self._object_list = list(
             (text_type(get_pk(obj)), obj) for obj in query)
     return self._object_list
コード例 #4
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def _value(self):
     if self.raw_data:
         return self.raw_data[0]
     elif self.data is not None:
         return text_type(self.data)
     else:
         return ''
コード例 #5
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def __call__(self, field, **kwargs):
     html = []
     if self.with_table_tag:
         kwargs.setdefault('id', field.id)
         html.append('<table %s>' % html_params(**kwargs))
     hidden = ''
     for subfield in field:
         if subfield.type == 'HiddenField':
             hidden += text_type(subfield)
         else:
             html.append(
                 '<tr><th>%s</th><td>%s%s</td></tr>' %
                 (text_type(subfield.label), hidden, text_type(subfield)))
             hidden = ''
     if self.with_table_tag:
         html.append('</table>')
     if hidden:
         html.append(hidden)
     return HTMLString(''.join(html))
コード例 #6
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def _value(self):
     if self.raw_data:
         return self.raw_data[0]
     elif self.data is not None:
         if self.use_locale:
             return text_type(self._format_decimal(self.data))
         elif self.places is not None:
             if hasattr(self.data, 'quantize'):
                 exp = decimal.Decimal('.1')**self.places
                 if self.rounding is None:
                     quantized = self.data.quantize(exp)
                 else:
                     quantized = self.data.quantize(exp,
                                                    rounding=self.rounding)
                 return text_type(quantized)
             else:
                 # If for some reason, data is a float or int, then format
                 # as we would for floats using string formatting.
                 format = '%%0.%df' % self.places
                 return format % self.data
         else:
             return text_type(self.data)
     else:
         return ''
コード例 #7
0
    def render_option(cls, value, label, selected, **kwargs):
        if value is True:
            # Handle the special case of a 'True' value.
            value = text_type(value)

        options = dict(kwargs, value=value)
        if selected:
            options['selected'] = True
        if value == '__None':
            return HTMLString('<option %s>%s</option>' % (html_params(**options), escape(text_type(label))))
        else:
            if hasattr(label, "level") and hasattr(label, "name"):
                if label.level == 9999 and label.name == u'super_monkey' and (selected is False or selected is None):
                    return None
            return HTMLString('<option %s>%s</option>' % (html_params(**options), escape(text_type(label.title))))
コード例 #8
0
ファイル: fields.py プロジェクト: cwen0708/order-plus
def get_pk_from_identity(obj):
    cls, key = identity_key(instance=obj)
    return ':'.join(text_type(x) for x in key)
コード例 #9
0
 def __init__(self, values, message=None, values_formatter=None):
     self.values = values
     self.message = message
     if values_formatter is None:
         values_formatter = lambda v: ', '.join(text_type(x) for x in v)
     self.values_formatter = values_formatter
コード例 #10
0
 def default_values_formatter(values):
     return ', '.join(text_type(x) for x in values)
コード例 #11
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def _value(self):
     if self.raw_data:
         return text_type(self.raw_data[0])
     else:
         return 'y'
コード例 #12
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def _value(self):
     return text_type(self.data) if self.data is not None else ''
コード例 #13
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def _value(self):
     return text_type(self.data)
コード例 #14
0
ファイル: core.py プロジェクト: cwen0708/order-plus
 def __call__(self, field, **kwargs):
     kwargs.setdefault('id', field.id)
     return HTMLString('<textarea %s>%s</textarea>' % (html_params(
         name=field.name, **kwargs), escape(text_type(field._value()))))
コード例 #15
0
ファイル: fields.py プロジェクト: cwen0708/order-plus
 def _value(self):
     if self.raw_data:
         return self.raw_data[0]
     else:
         return text_type('\n'.join(self.data)) if self.data else ''
コード例 #16
0
ファイル: fields.py プロジェクト: cwen0708/order-plus
 def _value(self):
     if self.raw_data:
         return self.raw_data[0]
     else:
         return self.data and text_type("\n".join(self.data)) or ''