def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     input_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         input_attrs['value'] = force_text(self._format_value(value))
     input_attrs = dict([(key, conditional_escape(val)) for key, val in input_attrs.items()])  # python2.6 compatible
     if not self.picker_id:
         self.picker_id = input_attrs.get('id', '') + '_picker'
     self.div_attrs['id'] = self.picker_id
     picker_id = conditional_escape(self.picker_id)
     div_attrs = dict(
         [(key, conditional_escape(val)) for key, val in self.div_attrs.items()])  # python2.6 compatible
     icon_attrs = dict([(key, conditional_escape(val)) for key, val in self.icon_attrs.items()])
     html = self.html_template % dict(div_attrs=flatatt(div_attrs),
                                      input_attrs=flatatt(input_attrs),
                                      icon_attrs=flatatt(icon_attrs))
     if self.options:
         self.options['language'] = translation.get_language()
         js = self.js_template % dict(picker_id=picker_id,
                                      options=json.dumps(self.options or {}))
     else:
         js = ''
     return mark_safe(force_text(html + js))
 def render(self, name, value, attrs=None):                
     tags = value or []
     hidden_value = ''
     if any(tags):                        
         hidden_value = force_text(",".join(tags))
     
     final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     final_attrs['autocomplete'] = 'off'
     labutils.add_class(final_attrs, TagInput.default_input_class)
             
     id = final_attrs['id']
     name = final_attrs['name']
                 
     hidden_attrs = {
         'type' : 'hidden',
         'id' : '%s_hidden' % id,
         'name' : '%s_hidden' % name,
         'class' : 'cl-tag-hidden',
         'value' : hidden_value            
     }
                                                                                             
     inputs_html = u"<input%s/><input%s/>" % (flatatt(final_attrs), flatatt(hidden_attrs))
     tag_list_html = ""
     for tag in tags:
         tag_list_html += "<div class='tag'>%s<div class='tag-close'></div></div>" % escape(tag)
     inputs_wrap_html = u"<div id='tag_wrap_{0}' class='cl-tag-wrap'>{1}<div id='tag_list_{0}' class='cl-tag-list'>{2}</div></div>".format(id, inputs_html, tag_list_html)
     jquery_bootstrap = u"<script>jQuery(function() { jQuery('#tag_wrap_%s').cekolabs_tagwidget() })</script>" % id
         
     return mark_safe(inputs_wrap_html + jquery_bootstrap)    
Exemple #3
0
 def render(self):
     attrs = self.attrs
     name = self.name
     value = self.value
     if (value == 'True'):
         value = 1
     elif (value == 'False'):
         value = 0
     else:
         value = int(value) if value else False
     btn_attrs = attrs.pop('btn_attrs', {})
     data_attrs = attrs.pop('data_attrs', {})
     btn_container_attrs = attrs.pop('btn_container_attrs', {})
     data_container_attrs = attrs.pop('data_container_attrs', {})
     btn_container = []
     data_container = []
     output = []
     for (option_value, option_label) in self.choices:
         option_label = force_unicode(option_label)
         btn = ButtonWidget(attrs=dict(btn_attrs, text=option_label, value=option_value))
         rendered_btn = btn.render(attrs=btn_attrs)
         btn_container.append(rendered_btn)
         if option_value == value:
                 rb = StoriesServiceInput(attrs=dict(data_attrs, type='radio', name=name, value=option_value, checked='checked'))
         else:
                 rb = StoriesServiceInput(attrs=dict(data_attrs, type='radio', name=name, value=option_value))
         rendered_rb = rb.render(name, value)
         data_container.append(rendered_rb)
     btn = '<div%s>%s</div>' % (flatatt(btn_container_attrs), join(btn_container))
     data = '<div%s>%s</div>' % (flatatt(data_container_attrs), join(data_container))
     output.append(btn)
     output.append(data)
     return mark_safe(u'\n'.join(output))
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     input_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         # Issue#28
         if isinstance(value, datetime.time):
             value = datetime.datetime(2014, 11, 25, value.hour, value.minute, value.second) # any date with value time 
         input_attrs['value'] = force_text(self._format_value(value))
     input_attrs = dict([(key, conditional_escape(val)) for key, val in input_attrs.items()])  # python2.6 compatible
     if not self.picker_id:
         self.picker_id = input_attrs.get('id', '') + '' if self.hide_div else '_picker'
     self.div_attrs['id'] = self.picker_id
     picker_id = conditional_escape(self.picker_id)
     div_attrs = dict(
         [(key, conditional_escape(val)) for key, val in self.div_attrs.items()])  # python2.6 compatible
     icon_attrs = dict([(key, conditional_escape(val)) for key, val in self.icon_attrs.items()])
     html = self.html_template % dict(input_attrs=flatatt(input_attrs))
     if not self.hide_icon:
         html += self.button_template % dict(icon_attrs=flatatt(icon_attrs))
     if not self.hide_div:
         html = self.div_template % dict(div_attrs=flatatt(div_attrs), content=html)
     # html = self.html_template % dict(div_attrs=flatatt(div_attrs),
     #                                  input_attrs=flatatt(input_attrs),
     #                                  icon_attrs=flatatt(icon_attrs))
     if not self.options:
         js = ''
     else:
         js = self.js_template % dict(picker_id=picker_id,
                                      options=json.dumps(self.options or {}))
     return mark_safe(force_text(html + js))
 def render(self, name, value, attrs=None):
     """
     Figures out whether it is a widget for a textarea or for an input. 
     """
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     if value != '':
         final_attrs['value'] = force_unicode(self._format_value(value))
     maxlength = final_attrs.get('maxlength',False)
     if not maxlength:
         return mark_safe(u'<input%s />'%flatatt(final_attrs))
     current = force_unicode(int(maxlength) - len(value))
     html = u"""
         <span class="charsleft charsleft-input">
         <input %(attrs)s /> 
         <span><span class="count">%(current)s</span> characters remaining</span>
         <span class="maxlength">%(maxlength)s</span>
         </span>
     """ % { 
         'attrs':flatatt(final_attrs),
         'current':current,
         'maxlength':int(maxlength),
     }
     return mark_safe(html)
Exemple #6
0
    def render(self, name, value, attrs=None, hattrs=None, initial_objects=u''):
        if value is None:
            value = ''

        classes = {}
        lookup = ''
        if self.settings.field and self.settings.field.rel:
            if self.js_options['multiple']:
                classes['class'] = 'vManyToManyRawIdAdminField'
            hidden_id = attrs.pop('id', 'id_%s' % name)
            attrs['id'] = 'id_ac_%s' % name

            if self.settings.lookup:
                related_url = '%s%s/%s/' % (reverse('admin:index'),
                                            self.settings.field.rel.to._meta.app_label,
                                            self.settings.field.rel.to._meta.object_name.lower())
                params = self.url_parameters()
                if params:
                    url = '?' + '&amp;'.join(['%s=%s' % (k, v) for k, v in params.items()])
                else:
                    url = ''
                lookup = (u'<a href="%s%s" class="related-lookup" id="lookup_id_%s" '
                          u'onclick="return showRelatedObjectLookupPopup(this);"> '
                          u'<img src="%sselector-search.gif" width="16" height="16" alt="%s" />'
                          u'</a>' % (related_url, url, name, ADMIN_URL, _('Lookup')))

        else:
            hidden_id = 'id_hidden_%s' % name
        hidden_attrs = self.build_attrs(classes, type='hidden', name=name, value=value, id=hidden_id)
        if self.script_tag:
            normal_attrs = self.build_attrs(attrs, type='text')
        else:
            data_options = dict([('data-%s' % format_js_data(key),
                                  JS_VALUE_MAPPING.get(option, option))
                                 for key, option in self.js_options.items()])
            normal_attrs = self.build_attrs(attrs, type='text', name=name, **data_options)
            normal_attrs['class'] = 'dj-ac'
        if value:
            if self.settings.reverse_label:
                normal_attrs['value'] = self.label_for_value(value)
            else:
                normal_attrs['value'] = value
        if not self.js_options.get('source'):
            self.js_options['source'] = self.settings.get_absolute_url()
        options = simplejson.dumps(self.js_options)
        if self.script_tag:
            return mark_safe(u''.join((
                u'<input%s />\n' % flatatt(hidden_attrs),
                u'<input%s />\n' % flatatt(normal_attrs),
                lookup,
                initial_objects,
                u'<script type="text/javascript">',
                u'django.autocomplete("#%s", %s);' % (attrs['id'], options),
                u'</script>\n',
            )))
        else:
            return mark_safe(u''.join((
                u'<input%s />\n' % flatatt(normal_attrs),
                lookup,
            )))
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     input_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         input_attrs['value'] = force_text(self._format_value(value))
     input_attrs = dict([(key, conditional_escape(val)) for key, val in input_attrs.items()]) # python2.6 compatible
     if not self.picker_id:
         self.picker_id = input_attrs.get('id', '') + '_picker'
     self.div_attrs['id'] = self.picker_id
     picker_id = conditional_escape(self.picker_id)
     div_attrs = dict([(key, conditional_escape(val)) for key, val in self.div_attrs.items()]) # python2.6 compatible
     html = '''
             <div%(div_attrs)s>
                 <input%(input_attrs)s/>
                 <span class="input-group-addon">
                     <span class="glyphicon glyphicon-calendar"></span>
                 </span>
             </div>''' % dict(div_attrs=flatatt(div_attrs),
                              input_attrs=flatatt(input_attrs))
     if self.options == False:
         js = ''
     else:
         js = '''
             <script>
                 $(function() {
                     $("#%(picker_id)s").datetimepicker(%(options)s);
                 });
             </script>''' % dict(picker_id=picker_id, 
                                 options=json.dumps(self.options or {}))
     return mark_safe(force_text(html + js))
Exemple #8
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = u''
     span_attrs = merge_html_attrs(self.attrs, attrs, contenteditable=u'true', class_=u'editable-span')
     input_attrs = dict(type=u'hidden', name=name, value=force_text(value))
     return format_html(u'<span{0}>{1}</span><input{2} />',
             flatatt(span_attrs), force_text(value), flatatt(input_attrs))
    def render(self, name, value, attrs=None):
        # Render actual input tag - an <input type="hidden">
        # which will be manipulated via JS.
        input_tag = super(MediaPopupWidget, self).render(name, value, attrs)

        try:
            value = FileNode.objects.get(pk=value)
            selected_title = value.file.name
        except FileNode.DoesNotExist:
            value = None
            selected_title = None

        media_title = format_html("<strong>{0}</strong>", selected_title)

        url = reverse('admin:media_tree_filenode_changelist')
        btn_attrs = {'href': url + self.for_param,
                     'class': 'mediatree-btn-select',
                     'id': attrs['id'] + '-select'}
        button_select = format_html(BTN, flatatt(btn_attrs), _("Select media"))

        url = reverse('admin:media_tree_filenode_add')
        btn_attrs = {'href': url + self.for_param,
                     'class': 'mediatree-btn-upload',
                     'id': attrs['id'] + '-upload'}
        button_upload = format_html(BTN, flatatt(btn_attrs), _("Upload media"))

        return format_html(
            WIDGET, input_tag, media_title, button_select, button_upload)
Exemple #10
0
    def render(self, name, value, attrs=None, choices=()):

        if value is None: value = ''
        final_attrs = self.build_attrs(attrs, name=name)
        output = [u'<select%s>' % flatatt(final_attrs)]
        options = self.render_options(choices, [value])
        if options:
            output.append(options)
        output.append(u'</select>')
        output.append(u'</div>')
        
        picker_id = conditional_escape(self.attrs['id'])
        div_attrs = dict([(key, conditional_escape(val)) for key, val in self.div_attrs.items()])  # python2.6 compatible
        icon_attrs = dict([(key, conditional_escape(val)) for key, val in self.icon_attrs.items()])
        html = self.html_template % dict(div_attrs=flatatt(div_attrs),
                                         icon_attrs=flatatt(icon_attrs))

        html += u'\n'.join(output)
        if self.options:
            #self.options['language'] = translation.get_language()
            js = self.js_template % dict(picker_id=picker_id,
                                         options=json.dumps(self.options or {}))
        else:
            js = ''

        #return mark_safe(u'\n'.join(output))
        return mark_safe(force_text(html + js))
Exemple #11
0
 def render(self, name, value, attrs=None):
     final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     hidden_atts = final_attrs.copy()
     hidden_atts.update(type='hidden', value='--remove--', disabled='disabled')
     
     attrs = final_attrs.copy()
     attrs.update(image_url=self.image_url, 
                  height=self.height, 
                  flat_atts=flatatt(final_attrs), 
                  hidden_atts=flatatt(hidden_atts),
                  rand=time.time())
     
     if self.image_url and value and value != self.initial:
         return mark_safe(u'''
         <div id="dbfi_%(id)s" class="dbfi">
             <div class="dbfi_display">
                 <span id="dbfi_%(id)s_show" class="dbfi_action"><img src="%(image_url)s?rand=%(rand)s" height="%(height)s" alt="Image"/></span>
                 <span id="dbfi_%(id)s_change" class="dbfi_action" style="display:none;"><input%(flat_atts)s /></span>
                 <span id="dbfi_%(id)s_delete" class="dbfi_action" style="display:none;"><span style="background-color: lightyellow; padding: 3px;">Your image will be removed on submit.</span><input%(hidden_atts)s /></span>
             </div>
             <div class="dbfi_choices">
                 <a href="#dbfi_%(id)s_change">Change</a> | <a href="#dbfi_%(id)s_delete">Delete</a>
             </div>
             <div class="dbfi_cancel" style="display:none;">
                 <a href="#dbfi_%(id)s_show">Cancel</a>
             </div>
         </div>
         ''' % attrs)
     return super(ExistingImageWidget, self).render(name, None, attrs=attrs)
Exemple #12
0
    def render(self, name, value, attrs=None):
        if value is None:
            value = []
        else:
            value = json.loads(value)
        #import pdb;pdb.set_trace()
                
        html = "<br />"
        for prestacion_obj in Prestacion.objects.all():
            html += "<br /><h3>%s</h3><br />" % prestacion_obj.titulo
            for prestacion in prestacion_obj.prestaciones.split('\r\n'):
                if not prestacion:
                    continue
                att = {'type': "checkbox",
                       'value': prestacion,
                       'data-hidden-id': attrs['id'],}

                if prestacion in value:
                    att['checked'] = 'checked'

                html += "<input %s onchange=togglePrestacion(this) /> %s" % (flatatt(att), prestacion)
                html += "<br />"
        
        attrs['name'] = name
        attrs['type'] = 'hidden'
        html = "<input %s value=\"%s\" /> %s" % (flatatt(attrs), escape(json.dumps(value)), html)
        html = """
               <script type=\"text/javascript\" src=\"/static/js/admin.js\"></script>
               %s
               """ % html
        return format_html(html)
Exemple #13
0
    def render(self, name, value, attrs=None, choices=()):
        if self.attrs is None:
            attrs = {}
        else:
            attrs = self.attrs

        if value is None:
            value = ''
        display_value = ''
        for k, v in self.choices:
            if k == value:
                display_value = v

        classname = '%s %s' % (self.attrs['class'], 'chained') if 'class' in self.attrs else 'chained'

        display_attrs = dict(self.display_settings, **{
            'id': 'id_%s_display' % name,
            'data-hidden-id': 'id_%s' % name,
            'class': classname,
            'value': display_value,
        })

        hidden_attrs = dict(self.hidden_settings, **{
            'id':'id_%s' % name,
            'name': name,
            'value': value,
            'class': 'chained'
        })

        return render_to_string('form/widgets/chained_text_widget.html', {
            'display_attrs': flatatt(display_attrs),
            'attrs': flatatt(hidden_attrs),
            'display_value': display_value
        })
    def render(self, name, value, attrs=None, choices=()):
        if value is None:
            value = ''

        # insert a nice bit of javascript to show the flag of the country
        # selected
        # TODO check that attrs['id'] is set?
        output = [ '''\
        <script type="text/javascript">
            jQuery(function(){
                FlagSelect.init("%(id)s", "%(media)s");
            });
        </script>
        ''' % {
            'id': attrs ['id'],
            'media': settings.MEDIA_URL,
        }]

        span_attrs = self.build_attrs(attrs)
        select_attrs = self.build_attrs(name=name)
        output.append(u'<span%s><select%s>' % (flatatt(span_attrs), flatatt(select_attrs)))
        options = self.render_options(choices, [value])
        if options:
            output.append(options)
        output.append('</select></span>')
        return mark_safe(u'\n'.join(output))
    def render(self, name, value, attrs=None, choices=()):
        if value is None: value = []
        final_attrs = self.build_attrs(attrs, name=name)

        # Pop id
        id = final_attrs['id']
        del final_attrs['id']

        # Insert blank value
        choices = [('','---')] + list(self.choices)

        # Build values
        items = []
        for val in value:
            opts = "\n".join([TPL_OPTION %{'value': k, 'desc': v, 'selected': val == k and 'selected="selected"' or ''} for k, v in choices])
            
            items.append(TPL_SELECT %{'attrs': flatatt(final_attrs), 'opts': opts})

        # Build blank value
        opts = "\n".join([TPL_OPTION %{'value': k, 'desc': v, 'selected': ''} for k, v in choices])
        items.append(TPL_SELECT %{'attrs': flatatt(final_attrs), 'opts': opts})

        script = TPL_SCRIPT %{'id': id}
        output = TPL_FULL %{'id': id, 'values': '\n'.join(items), 'script': script}

        return mark_safe(output)
Exemple #16
0
 def render(self, name, value, attrs=None):
     if value is None: value = ''
     widget_attrs = self.build_attrs(attrs)
     hidden_attrs = {'id':attrs['id'], 'name':name}
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         widget_attrs['value'] = force_unicode(self.model.objects.get(pk=value))
         hidden_attrs['value'] = force_unicode(value)
     widget_attrs['id'] = 'widget_' + attrs['id']
     return mark_safe(u'''
         <div class="autocomplete">
         <input type="text"%(widget_attrs)s />
         <input type="hidden"%(hidden_attrs)s />
         <script type="text/javascript">
             $('#%(widget_id)s').james('%(url)s', {%(options)s,
                 params: 'limit=%(limit)s',
                 onSelect: function(data, json) {
                     $('#%(hidden_id)s').val(json.pk);
                     return data;
                 }
             });
         </script>
         </div>
     ''' % {
         'widget_attrs':flatatt(widget_attrs),
         'hidden_attrs':flatatt(hidden_attrs),
         'widget_id':widget_attrs['id'],
         'hidden_id':hidden_attrs['id'],
         'url':self.url, 'options': plist_from_dict(self.options),
         'limit':self.limit,
     })
Exemple #17
0
    def render(self, name, value, attrs=None, choices=()):
        if value is None:
            value = ''
        final_attrs = self.build_attrs(attrs, type='hidden', name=name)
        if value != '':
            # Only add the 'value' attribute if a value is non-empty.
            final_attrs['value'] = force_unicode(self._format_value(value))

        hidden = u'<input%s />' % flatatt(final_attrs)

        final_attrs['type'] = 'text'
        final_attrs['id'] += '_ac'
        del final_attrs['name']

        try:
            model = self.choices.queryset.get(pk=value)
            final_attrs['value'] = force_unicode(model)
        except (self.choices.queryset.model.DoesNotExist, ValueError, TypeError):
            final_attrs['value'] = u''

        if self.is_required:
            ac = u'<input%s />' % flatatt(final_attrs)
        else:
            final_attrs['class'] = final_attrs.get('class', '') + ' ac_nullable'

            ac = (u' <a href="#" id="%(id)s_cl" class="ac_clear"> %(text)s</a>' % {
                'id': final_attrs['id'][:-3],
                'text': _('clear'),
                }) + (u'<input%s />' % flatatt(final_attrs))

        js = u'''<script type="text/javascript">
$(function() {
    $('#%(id)s_ac').autocomplete({
        source: %(source)s,
        minLength: 2,
        focus: function(event, ui) {
            $('#%(id)s_ac').val(ui.item.label);
            return false;
        },
        select: function(event, ui) {
            $('#%(id)s').val(ui.item.value).trigger('change');
            $('#%(id)s_ac').val(ui.item.label);
            return false;
        }
    }).bind('focus', function() {
        this.select();
    }).bind('blur', function() {
        if (!this.value)
            $('#%(id)s').val('');
    });
    $('#%(id)s_cl').click(function(){
        $('#%(id)s, #%(id)s_ac').val('');
        return false;
    });
});
</script>
''' % {'id': attrs.get('id', name), 'name': name, 'source': self._source()}

        return mark_safe(hidden + ac + js)
Exemple #18
0
    def test_flatatt(self):
        ###########
        # flatatt #
        ###########

        self.assertEqual(flatatt({'id': "header"}), ' id="header"')
        self.assertEqual(flatatt({'class': "news", 'title': "Read this"}), ' class="news" title="Read this"')
        self.assertEqual(flatatt({}), '')
 def render(self, name, node, attrs=None):
     if not attrs:
         attrs = {}
     final_attrs = self.build_attrs(attrs)
     if self.form:
         if hasattr(self.form, 'render'):
             return self.form.render()
         return mark_safe(u'<table%s>%s</table>' % (flatatt(final_attrs), self.form.as_table()))
     return mark_safe(u'<table%s>&nbsp;</table>' % flatatt(final_attrs))
Exemple #20
0
 def render(self, name, value=None, attrs=None):
     """
     The widget consists of two text fields: 
     1. Field with id = "id_<field_name>_text", which holds the text values
     2. Field with id = "id_<field_name>", which is hidden and holds the pk 
         of a selected item.
     """
     text_field_attrs = self.build_attrs(attrs, name=name + "_text")
     
     # if there is any initial value available, fill the text field from the queryset
     text_field_value = "" 
     if value:
         func = get_installed("%(app)s.ajax.%(func)s" % {
             'app': self.app,
             'func': self.qs_function,
             })
         queryset = func("all")
         try:      
             obj = queryset.get(pk=value)
             text_field_value = getattr(obj, self.display_attr)
             if callable(text_field_value) and not getattr(text_field_value, "alters_data", False):
                 text_field_value = text_field_value()
         except:
             pass
                 
     text_field_attrs['value'] = text_field_value
     text_field_attrs['class'] = "autocomplete textinput textInput form-control"
     
     if not self.attrs.has_key('id'):
         text_field_attrs['id'] = 'id_%s_text' % name
         
     # hidden field for key value
     hidden_field_attrs = {
         'id' : 'id_%s' % name,
         'name' : '%s' % name,
         'value' : value or "",
         'class' : "form_hidden",
     }
     
     return mark_safe(
         u"""
         <input type="text" %(text_field_attrs)s/>
         <input type="hidden" %(hidden_field_attrs)s />
         <script type="text/javascript">
         /* <![CDATA[ */
         %(js)s
         /* ]]> */
         </script>""" % {
             'text_field_attrs' : flatatt(text_field_attrs),
             'js' : self.render_js(
                 hidden_field_attrs['id'],
                 text_field_attrs['id'],
                 text_field_value,
                 ),
             'hidden_field_attrs' : flatatt(hidden_field_attrs),
         }
     )
Exemple #21
0
 def render(self, name, value, attrs=None):
     final_attrs = self.build_attrs(attrs)
     final_attrs['class'] = ' '.join(final_attrs.get('class', u'').split() + ['model-link'])
     if self.object:
         return mark_safe(u'<a target="_blank" %s href="../../../%s/%s/%s/">%s</a>' %
                 (flatatt(final_attrs), self.object._meta.app_label,
                  self.object._meta.object_name.lower(), self.object.pk, self.object))
     else:
         return mark_safe(u'<span %s>nie wybrano</span>' % flatatt(final_attrs))
Exemple #22
0
    def render(self, name, value, attrs=None):
        if isinstance(value, list):
            chbx = value[0]
            taxo = value[1]
        else:
            (chbx, taxo) = self.decompress(value)

        taxo_attrs = self.build_attrs(attrs, name=name + '_1', type='text')
        taxo_attrs['id'] = 'id_' + name + '_1'

        chbx_attrs = {'id': 'id_' + name + '_0', 'name': name + '_0',
                      'style': 'vertical-align: text-bottom;',
                      'type': 'checkbox'}
        if chbx:
            chbx_attrs['checked'] = ''

        # Only add the 'value' attribute if a value is non-empty.
        taxo_attrs['value'] = force_text(self._format_value(taxo))

        return format_html(r'''
            <span id="id_{3}_cbox"><span style="vertical-align: text-bottom;">Any:</span>
            <input {0} type="checkbox"
                 onClick="
                     if (this.checked) {{
                         var nam = '{3}' + '_1';
                         $('[name = ' + nam + ']').val('');
                     }}
                     taxonomy_update();
                          "/></span>

            <input {1}
                 onfocus="
                     if ($('#id_taxonomy_type').val() == 1) {{
                         $('#id_{3}_cbox').css('visibility', 'visible');
                         $('#id_{3}_taxtweb').css('visibility', 'visible');
                         }}
                     else {{
                         $('#id_{3}_cbox').css('visibility', 'hidden');
                         $('#id_{3}_taxtweb').css('visibility', 'hidden');
                         }}"

                 onblur="
                     $('[name={3}_0]').prop('checked', this.value == '');
                     taxonomy_update();"

                 onchange="
                     $('[name={3}_0]').prop('checked', this.value == '');
                     taxonomy_update();"
                 />&nbsp;&nbsp;
             <a id="id_{3}_taxtweb" style="font-size: 16px;
             font-weight: bold;" href="#" onclick="var pu_win = window.open('''
             ''''/taxtweb/{2}?is_popup=yes', '_blank', 'scrollbars=no,resizable=yes, width=800,'''
             '''  height=800, status=no, location=no, toolbar=no');">TaxTweb</a>''',
                           flatatt(chbx_attrs), flatatt(taxo_attrs),
                           force_text(self._format_value(taxo)), name)
 def render(self, name, value, attrs=None):        
     if value is None:
         value = ''
     
     final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         final_attrs['value'] = force_unicode(self._format_value(value))
     if self.measure:
         return mark_safe(u'<input%s /> %s' % (flatatt(final_attrs),self.measure))
     return mark_safe(u'<input%s />' % flatatt(final_attrs))
Exemple #24
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = u''
     # Workaround for Safari 7: If ``data-padding`` attribute is set in javascript only, Safari
     # 7 ignores it until the span is clicked. So the span is invisible if it is empty.
     # Therefore we must set it here as well.
     span_attrs = merge_html_attrs(self.attrs, attrs, {'data-padding': '. '*47},
             contenteditable=u'true', class_=u'pln-editable-span')
     input_attrs = dict(type=u'hidden', name=name, value=force_text(value))
     return format_html(u'<span{0}>{1}</span><input{2} />',
             flatatt(span_attrs), force_text(value), flatatt(input_attrs))
Exemple #25
0
    def render(self, name, value, attrs=None, choices=()):
        final_attrs = self.build_attrs(attrs, name=name)

        if isinstance(value, models.Model):
            output = ['<input type="text" %s value="%s"/>'
                      %(flatatt(final_attrs), getattr(value, self.fk_field_name))]
        else:
            output = ['<input type="text" %s/>'%flatatt(final_attrs)]

        options = self.render_options(choices, value, attrs['id'], name)
        output.append(options)
        return mark_safe(u'\n'.join(output))
Exemple #26
0
    def render(self, name, value, attrs=None):
        attrs = attrs or self.attrs

        parent_attrs = {
            "class": "wed-widget-parent",
            }
        wed_attrs = {
            "class": "wed-widget loading container",
            "style": "display: none",
            "id": attrs['id']
            }
        return mark_safe('<div%s><div>Loading...</div><div%s>%s</div></div>' %
                         (flatatt(parent_attrs), flatatt(wed_attrs), value))
Exemple #27
0
 def render(self, name, value=None, attrs=None, prelabel=None):
     self.attrs.update(attrs or {})
     final_attrs = self.build_attrs(self.attrs, name=name)
     prelabel = prelabel or self.prelabel
     if prelabel:
         out = u'<label for="%s" >%s</label><input type="checkbox"%s >' \
               % (self.attrs.get("id", ""), value or self.label,
                  flatatt(final_attrs))
     else:
         out = u'<input type="checkbox"%s ><label for="%s" >%s</label>' \
               % (flatatt(final_attrs), self.attrs.get("id", ""),
                  value or self.label)
     return mark_safe(out)
Exemple #28
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     value = force_unicode(value)
     final_attrs = self.build_attrs(attrs, name=name)
     textarea_output = mark_safe(u'<textarea%s>%s</textarea>'
                                 % (flatatt(final_attrs),
                                    conditional_escape(force_unicode(value))))
     geometry_context = Context({'geometry_field_id': final_attrs.get('id'),
                                 'geometry_attrs': mark_safe(flatatt(self.attrs)),
                                 'geometry_update_address_field': self.update_address_field})
     geometry_template = Template(GEOMETRY_TEMPLATE)
     geometry_output = mark_safe(geometry_template.render(geometry_context))
     return mark_safe(u"%s%s" % (textarea_output, geometry_output))
Exemple #29
0
 def render(self, name, value, attrs=None):
     final_attrs = self.build_attrs(attrs, name=name)
     if not value:
         render = """
         <link rel="stylesheet" type="text/css" href="%(media_url)scss/cupertino/ui.all.css" />
         <div%(attrs)s></div><div id="dateselected_%(div_id)s"></div>
         <script type="text/javascript">
             $("#%(div_id)s").datepicker({
                 dateFormat: 'yy-mm-dd',
                 onSelect: function(date, instance) {
                     $("#dateselected_%(div_id)s").html("<input type='hidden' name='%(name)s' value='"+ date +" 12:00'/>");
                 }
             });
         </script>
         """ % {
                'media_url': settings.MEDIA_URL,
                'attrs': flatatt(final_attrs),
                'div_id': final_attrs['id'],
                'name': final_attrs['name'],
               }
     else:
         if isinstance(value, unicode) or isinstance(value, str):
             if value.find(":") > 0:
                 value = datetime.datetime.strptime(value, "%Y-%m-%d %H:%M")
             else:
                 value = datetime.datetime.strptime(value, "%Y-%m-%d")
         render = """
         <link rel="stylesheet" type="text/css" href="%(media_url)scss/cupertino/ui.all.css" />
         <div%(attrs)s></div><div id="dateselected_%(div_id)s"></div>
         <script type="text/javascript">
             $("#%(div_id)s").datepicker({
                 dateFormat: 'yy-mm-dd',
                 onSelect: function(date, instance) {
                     $("#dateselected_%(div_id)s").html("<input type='hidden' name='%(name)s' value='"+ date +" 12:00'/>");
                 }
             });
             $("#%(div_id)s").datepicker("setDate", new Date(%(year)d,%(monthzerobased)02d,%(day)02d));
             $("#dateselected_%(div_id)s").html("<input type='hidden' name='%(name)s' value='%(year)d-%(month)02d-%(day)02d 12:00'/>");
         </script>
         """ % {
                'media_url': settings.MEDIA_URL,
                'attrs': flatatt(final_attrs),
                'div_id': final_attrs['id'],
                'name': final_attrs['name'],
                'year': value.year,
                'monthzerobased': value.month-1,
                'month': value.month,
                'day': value.day,
               }
     return render
Exemple #30
0
    def render(self, name, value, attrs=None):
        if value is None: return u''
        final_attrs = self.build_attrs(attrs, name=name)

        # output input-hidden together with <iframe>
        # this is necessary to keep the ForeignKey relationship intact
        input_hidden_attrs = self.build_attrs(attrs, name=name, style='', width='')
        if value != '':
            input_hidden_attrs['value'] = force_unicode(value)

        return mark_safe(u'<input type="hidden" %s /><iframe src="%s" %s></iframe>' % (
                flatatt(input_hidden_attrs),
                conditional_escape(force_unicode(reverse("form_entry_edit", args=[value,]))),
                flatatt(final_attrs),
                ))
Exemple #31
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     final_attrs['class'] = 'nav nav-pills nav-stacked'
     output = [u'<ul%s>' % flatatt(final_attrs)]
     options = self.render_options(force_unicode(value), final_attrs['id'])
     if options:
         output.append(options)
     output.append(u'</ul>')
     output.append(
         '<input type="hidden" id="%s_input" name="%s" value="%s"/>' %
         (final_attrs['id'], name, force_unicode(value)))
     return mark_safe(u'\n'.join(output))
Exemple #32
0
 def tag(self):
     if 'id' in self.attrs:
         self.attrs['id'] = '%s_%s' % (self.attrs['id'], self.index)
     if 'ng-model' in self.attrs:
         self.attrs['ng-model'] = '%s.%s' % (self.attrs['ng-model'],
                                             self.choice_value)
     name = '%s.%s' % (self.name, self.choice_value)
     final_attrs = dict(self.attrs,
                        type=self.input_type,
                        name=name,
                        value=self.choice_value)
     if self.is_checked():
         final_attrs['checked'] = 'checked'
     return format_html('<input{0} />', flatatt(final_attrs))
 def render(self, name, value, attrs={}):
     if value is None: value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     final_id = final_attrs['id'].replace('-', '_')
     del final_attrs['id']
     return mark_safe(
         render_to_string(
             self.template, {
                 'final_attrs': flatatt(final_attrs),
                 'value': conditional_escape(force_text(value)),
                 'id': final_id,
                 'server_side_preview':
                 settings.PAGEDOWN_SERVER_SIDE_PREVIEW,
             }))
Exemple #34
0
    def render(self, name, value, attrs=None, choices=()):
        if value is None: value = []
        if attrs:
            attrs['class'] = attrs.get('class', '') + ' admin-tree'
        else:
            attrs['class'] = 'admin-tree'

        final_attrs = self.build_attrs(attrs, name=name)
        output = [u'<div%s>' % flatatt(final_attrs)]
        # Normalize to strings
        str_values = set([force_unicode(v) for v in value])
        self.fill_output(output, self.choices, str_values)
        output.append(u'</div>')
        return mark_safe(u'\n'.join(output))
Exemple #35
0
    def render(self, name, value, attrs=None):
        widget_attrs = self.build_widget_attrs(name)
        attrs = self.build_attrs(attrs)
        self.html_id = attrs.pop('id', name)

        autocomplete = self.autocomplete(values=value)
        choices = autocomplete.choices_for_values()
        values = [autocomplete.choice_value(c) for c in choices]

        context = {
            'name': name,
            'values': values,
            'choices': choices,
            'widget': self,
            'attrs': safestring.mark_safe(flatatt(attrs)),
            'widget_attrs': safestring.mark_safe(flatatt(widget_attrs)),
            'autocomplete': autocomplete,
        }
        context.update(self.extra_context)

        template = getattr(autocomplete, 'widget_template',
                           self.widget_template)
        return safestring.mark_safe(render_to_string(template, context))
    def render(self, name, value, attrs=None):

        if value is None:
            value = []

        final_attrs = self.build_attrs(attrs)
        self.html_id = final_attrs.pop('id', name)

        lookup = get_lookup(self.channel)

        # eg. value = [3002L, 1194L]
        if value:
            current_ids = "|" + "|".join(
                str(pk) for pk in value) + "|"  # |pk|pk| of current
        else:
            current_ids = "|"

        objects = lookup.get_objects(value)

        # text repr of currently selected items
        initial = []
        for obj in objects:
            display = lookup.format_item_display(obj)
            initial.append([display, obj.pk])

        if self.show_help_text:
            help_text = self.help_text
        else:
            help_text = u''

        context = {
            'name': name,
            'html_id': self.html_id,
            'current': value,
            'current_ids': current_ids,
            'current_reprs': mark_safe(simplejson.dumps(initial)),
            'help_text': help_text,
            'extra_attrs': mark_safe(flatatt(final_attrs)),
            'func_slug': self.html_id.replace("-", ""),
            'add_link': self.add_link,
        }
        context.update(
            plugin_options(lookup, self.channel, self.plugin_options, initial))
        context.update(bootstrap())

        return mark_safe(
            render_to_string(
                ('autocompleteselectmultiple_%s.html' % self.channel,
                 'autocompleteselectmultiple.html'), context))
Exemple #37
0
    def render(self, name, data, attrs=None):
        from mysite.personnel.views import get_dept_tree_data
        from django.core.urlresolvers import reverse

        #print "ZDeptChoiceWidget_render data", data

        if data is not None:
            try:
                data = int(data)
            except:
                pass
            if type(data) in (int, long):
                data = self.choices.queryset.model.objects.get(pk=data)
        if attrs: self.attrs.update(attrs)
        if 'id' not in self.attrs: self.attrs['id'] = 'id_' + name
        self.attrs['class'] = self.attrs['class'] + ' filetree r'
        self.attrs = self.build_attrs(self.attrs, name=name)
        required = ""
        if hasattr(self.choices.field,
                   "required") and self.choices.field.required:
            required = "class='wZBaseCharField required input_showDeptTree'"
        try:
            vdata = filterdata_by_user(self.choices.queryset.all(),
                                       threadlocals.get_current_user())
            for ii in vdata:
                if ii.parent_id is not None:
                    l = [e for e in vdata if e.id == ii.parent_id]
                    if not l: ii.parent_id = None

            html = DeptTree(vdata).html_ul_li(data and [data.pk] or [])
            html_el = {
                "disp": data or "",
                "name": name,
                "value": data and data.pk or "",
                "attr": flatatt(self.attrs),
                "required": required,
                "id": self.attrs['id'],
                "uid": "%s" % id(self),
                "none": _(u"撤销选择").capitalize(),
                "items": html,
                "ok": _(u"确定")
            }
            if self.flat == False:  #平铺
                return ('<input %(required)s class="wZBaseCharField input_showDeptTree" type="text" readonly="readonly" value="%(disp)s"><input type=hidden name="%(name)s" value="%(value)s">'+\
                                u'<span class="btn_showDeptTree"><img onclick="render_dept_dropdown(this, false)" src="/media/img/sug_down_on.gif" id="id_drop_dept"><div  id="show_deptment" style="display: none;"><div class="title"><span class="span_selectNone Link_blue1" onclick="dept_tree_none(this)"><a href="javascript: void(0)">%(none)s</a>&nbsp;&nbsp;</span><span onclick="javascript:$(this).parent().parent().hide();" class="close btn">%(ok)s</span></div><div id="id_dept"><ul %(attr)s>%(items)s</ul></div></div></span>')%html_el
            else:
                return u'<input type=hidden><input value="%(disp)s" type=hidden>%(value)s<div id="show_deptment"><div id=%(uid)s><ul %(attr)s>%(items)s</ul></div><script>render_dept_($("#%(uid)s"),false,true)</script></div>' % html_el
        except:
            print_exc()
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     input_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         input_attrs['value'] = force_text(self._format_value(value))
     input_attrs = dict([(key, conditional_escape(val)) for key, val in input_attrs.items()])  # python2.6 compatible
     if not self.picker_id:
         self.picker_id = input_attrs.get('id', '') + '_picker'
     self.div_attrs['id'] = self.picker_id
     picker_id = conditional_escape(self.picker_id)
     div_attrs = dict(
         [(key, conditional_escape(val)) for key, val in self.div_attrs.items()])  # python2.6 compatible
     icon_attrs = dict([(key, conditional_escape(val)) for key, val in self.icon_attrs.items()])
     html = self.html_template % dict(div_attrs=flatatt(div_attrs),
                                      input_attrs=flatatt(input_attrs),
                                      icon_attrs=flatatt(icon_attrs))
     if not self.options:
         js = ''
     else:
         js = self.js_template % dict(picker_id=picker_id,
                                      options=json.dumps(self.options or {}))
     return mark_safe(force_text(html + js))
Exemple #39
0
  def render(self, name, value, attrs=None):
    readonly_attrs = {
        'id': 'tos-content',
        }
    if self.tos_text:
      text = mark_safe(
          u'<div id="tos-readonly-%s"><div %s>%s</div></div>' % (
          name, flatatt(readonly_attrs),
          conditional_escape(mark_safe(force_unicode(self.tos_text)))))
    else:
      text = mark_safe(
          u'<div id="tos-readonly-%s">Terms of Agreement content is not set.</div>')

    checkbox = super(TOSWidget, self).render(name, value, attrs)
    return mark_safe(u'%s%s' % (text, checkbox))
Exemple #40
0
 def render(self, name, value, attrs=None):
     final_attrs = self.build_attrs(attrs, type='text', name=name)
     if not type(value) == unicode and value is not None:
         out_vals = []
         for val in value:
             try:
                 out_vals.append(str(User.objects.get(pk=val).username))
             except:
                 continue
         value = ', '.join(out_vals)
         if value:
             final_attrs['value'] = smart_str(value)
     else:
         final_attrs['value'] = smart_str(value)
     return mark_safe(u'<input%s />' % flatatt(final_attrs))
Exemple #41
0
 def attr_string(self):
     """
     Returns a flattened string of HTML attributes based on the
     ``attrs`` dict provided to the class.
     """
     final_attrs = copy.copy(self.attrs)
     # Handle css class concatenation
     default = " ".join(getattr(settings,
                                "ACTION_CSS_CLASSES",
                                ACTION_CSS_CLASSES))
     defined = self.attrs.get('class', '')
     additional = " ".join(self.classes)
     final_classes = " ".join((defined, default, additional)).strip()
     final_attrs.update({'class': final_classes})
     return flatatt(final_attrs)
Exemple #42
0
 def render(self, name, value, attrs={}):
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     self.config['container'] = "%s_epiceditor" % (final_attrs['id'], )
     self.config['textarea'] = final_attrs['id']
     return mark_safe(
         render_to_string(
             'epiced/widget.html', {
                 'final_attrs': flatatt(final_attrs),
                 'parser': self.config['parser'],
                 'field_id': final_attrs['id'],
                 'value': conditional_escape(force_unicode(value)),
                 'config': json.JSONEncoder().encode(self.config)
             }))
Exemple #43
0
    def format_output(self, attrs, rendered_widgets):
        """
        This output will yeild all widgets grouped in a un-ordered list
        """
        final_attrs = self.build_attrs(attrs)
        id_ = final_attrs.get('id', None)
        ret = ['<ul class="formfield" %s>' % flatatt(final_attrs)]
        for i, field in enumerate(self.fields.values()):
            label = self.format_label(field, id_, i)
            help_text = self.format_help_text(field, i)
            ret.append('<li>%s %s %s</li>' %
                       (label, rendered_widgets[i], help_text))

        ret.append('</ul>')
        return u''.join(ret)
Exemple #44
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = []
     attrs = self.attrs
     btn_attrs = attrs.pop('btn_attrs', {})
     data_attrs = attrs.pop('data_attrs', {})
     btn_container_attrs = attrs.pop('btn_container_attrs', {})
     data_container_attrs = attrs.pop('data_container_attrs', {})
     btn_container = []
     data_container = []
     output = []
     for (option_value, option_label) in self.choices:
         option_label = force_unicode(option_label)
         btn = ButtonWidget(attrs=dict(btn_attrs, text=option_label, value=option_value))
         rendered_btn = btn.render(attrs=btn_attrs)
         btn_container.append(rendered_btn)
         cb = CheckboxInput(data_attrs, check_test=lambda x: x in value)
         rendered_cb = cb.render(name, option_value)
         data_container.append(rendered_cb)
     btn = '<div%s>%s</div>' % (flatatt(btn_container_attrs), join(btn_container))
     data = '<div%s>%s</div>' % (flatatt(data_container_attrs), join(data_container))
     output.append(btn)
     output.append(data)
     return mark_safe(u'\n'.join(output))
Exemple #45
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, name=name, readonly="readonly", type="text")
     if value != '':
         # Only add the 'value' attribute if a value is non-empty.
         final_attrs['value'] = force_text(self._format_value(value))
     return format_html("""
     <div class="input-group">
   <input class="form-control" {0}>
   <span class="input-group-btn">
     <button class="btn btn-primary" data-toggle="modal" href="#phonenumber-search" type="button">Search for Available Numbers</button>
   </span>
 </div><!-- /input-group -->
 """, flatatt(final_attrs))
Exemple #46
0
 def render(self, name, selected=None, attrs=None, choices=()):
     attrs['id'] = 'TagSelectorWidget-' + ''.join(
         random.choice(string.ascii_uppercase + string.digits)
         for x in range(10))
     if selected is None: selected = []
     final_attrs = self.build_attrs(attrs, name=name)
     output = [
         u'<select multiple="multiple" class="chosen" %s>' %
         flatatt(final_attrs)
     ]
     options = self.render_options(choices, selected)
     if options:
         output.append(options)
     output.append('</select>')
     return mark_safe(u'\n'.join(output))
Exemple #47
0
 def render(self, name, value, attrs=None):
     attrs['id'] = 'NumberSliderWidget-' + ''.join(
         random.choice(string.ascii_uppercase + string.digits)
         for x in range(10))
     final_attrs = self.build_attrs(attrs, name=name)
     output = [u'<input type="number" class="number-slider-widget" value="%s" data-slider-min="1" data-slider-max="63" data-slider-step="1" id="%s" %s>' \
         % (value, attrs['id'], flatatt(final_attrs))]
     output.append('''<script type="text/javascript">$('#%s').slider({
         selection: 'before',
         value: %s,
         formater: function(value) {
             return 'days to discuss before voting: '+value+ ' days';
         }
     });</script>''' % (attrs['id'], value))
     return mark_safe(u'\n'.join(output))
Exemple #48
0
 def render(self, name, value, attrs={}):
     if value is None: value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     # self.config['filebrowserUploadUrl'] = reverse('ckeditor_upload')
     # self.config['filebrowserBrowseUrl'] = reverse('ckeditor_browse')
     return mark_safe(u'''<textarea{flat_attrs}>{value}</textarea>
     <script type="text/javascript">
         django.jQuery(function() {{
             django.jQuery("#{id}").cleditor();
         }})
     </script>'''.format(
         flat_attrs=flatatt(final_attrs),
         value=value,
         id=final_attrs.get('id'),
     ))
Exemple #49
0
 def render(self, name, value, attrs=None):
     if value is None: value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     textarea_widget = u'<textarea%s>%s</textarea>' % (
         flatatt(final_attrs), conditional_escape(force_text(value)))
     wid = final_attrs.get('id', 'unknown')
     toolbar_widget = self.render_toolbar_widget(wid)
     pos = wid.find('__prefix__')
     if pos != -1:
         js_widget = self.render_js_delay_widget(wid, pos)
     else:
         js_widget = self.render_js_init_widget(wid)
         return mark_safe(u'<div style="display:inline-block">' +
                          toolbar_widget + textarea_widget + u'</div>' +
                          js_widget)
Exemple #50
0
 def render(self, name, value, attrs=None):
     if value is None: value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     output = []
     output.append(
         u'<a href="javascript: toggle(\'notes_%s\',\'img_%s\'); "><img id=\'img_%s\' src=\'/static/img/admin/icon_changelink.gif\' /></a>'
         % (final_attrs["id"], final_attrs["id"], final_attrs["id"]))
     output.append(
         u'<div style=\'z-index: 10000; display: none;\' id=\'notes_%s\'>' %
         final_attrs["id"])
     output.append(
         u'<textarea%s>%s</textarea>' %
         (flatatt(final_attrs), conditional_escape(force_unicode(value))))
     output.append("</div>")
     return mark_safe(u' '.join(output))
Exemple #51
0
    def label_tag(self, contents=None, attrs=None):
        """
        Wraps the given contents in a <label>, if the field has an ID attribute.
        Does not HTML-escape the contents. If contents aren't given, uses the
        field's HTML-escaped label.

        If attrs are given, they're used as HTML attributes on the <label> tag.
        """
        contents = contents or conditional_escape(self.label)
        widget = self.field.widget
        id_ = widget.attrs.get('id') or self.auto_id
        if id_:
            attrs = attrs and flatatt(attrs) or ''
            contents = '<label for="%s"%s>%s</label>' % (widget.id_for_label(id_), attrs, unicode(contents))
        return mark_safe(contents)
Exemple #52
0
    def render(self, name, value, attrs=None):
        final_attrs = self.build_attrs(attrs, type='checkbox', name=name)
        try:
            result = self.check_test(value)
        except:  # Silently catch exceptions
            result = False

        if result:
            final_attrs['checked'] = 'checked'

        if value not in ('', True, False, 'True', 'False', None):
            # Only add the 'value' attribute if a value is non-empty.
            final_attrs['value'] = force_unicode(value)

        return mark_safe(u'<input%s />' % flatatt(final_attrs))
    def render(self, name, value, attrs=None):
        if value is None:
            value = ''
        final_attrs = self.build_attrs(attrs, type=self.input_type, name=name)
        if value != '':
            # Only add the 'value' attribute if a value is non-empty.

            if str(value).find('.') == -1:
                value = Decimal(str(value) + '.00')
            elif str(value).split('.'):
                if len(str(value).split('.')[1]) < 2:
                    value = Decimal(str(value) + '0')

            final_attrs['value'] = force_unicode(self._format_value(value))
        return mark_safe(u'<input%s alt="area" /> m²' % flatatt(final_attrs))
Exemple #54
0
    def render(self, name, value, attrs=None):
        taxo_attrs = self.build_attrs(None,
                                      name=name,
                                      id="id_" + name,
                                      type='hidden')
        # Only add the 'value' attribute if a value is non-empty.
        taxo_attrs['value'] = force_text(self._format_value(value))
        view_attrs = self.build_attrs(attrs, name=name + "_view", type='text')
        view_attrs['id'] = "id_" + name + "_view"
        # import pdb ; pdb.set_trace()
        #  /*  */
        return format_html(
            r'''
             <input {0}/>
             <input {1} value=""><br>
<label>Visualization:</label>
<select id="OutTypeCB" onChange="
                     taxonomy_update();
">
<option value="0">Full</option>
<option value="1">Omit Unknown</option>
<option value="2" selected>Short</option>
</select>
            ''', flatatt(taxo_attrs), flatatt(view_attrs))
Exemple #55
0
    def render(self, name, value, attrs=None, choices=()):
        if value is None: value = ''
        final_attrs = self.build_attrs(attrs, name=name)
        final_attrs['data-type'] = name
        output = [format_html(u'<div{0}>Валюта:', flatatt(final_attrs))]
        for option_value, option_label in chain(self.choices, choices):
            _active_str = ''
            if value == option_value:
                _active_str = ' active '
            output.append(
                format_html(u'<span class="{0}" data-value="{1}">{2}</span>',
                            _active_str, option_value, option_label))

        output.append(u'</div>')
        return mark_safe('\n'.join(output))
Exemple #56
0
 def render(self, name, value, attrs={}):
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     self.config.setdefault('filebrowserUploadUrl',
                            reverse('ckeditor_upload'))
     self.config.setdefault('filebrowserBrowseUrl',
                            reverse('ckeditor_browse'))
     return mark_safe(
         render_to_string(
             'ckeditor/widget.html', {
                 'final_attrs': flatatt(final_attrs),
                 'value': conditional_escape(force_text(value)),
                 'id': final_attrs['id'],
                 'config': json_encode(self.config)
             }))
Exemple #57
0
    def label_tag(self, contents=None, attrs=None):
        """
        Wraps the given contents in a <label>, if the field has an ID attribute.
        contents should be 'mark_safe'd to avoid HTML escaping. If contents
        aren't given, uses the field's HTML-escaped label.

        If attrs are given, they're used as HTML attributes on the <label> tag.
        """
        contents = contents or conditional_escape(self.label)
        widget = self.field.widget
        id_ = widget.attrs.get('id') or self.auto_id
        if id_:
            attrs = attrs and flatatt(attrs) or ''
            contents = format_html('<label for="{0}"{1}>{2}</label>',
                                   widget.id_for_label(id_), attrs, contents)
        return mark_safe(contents)
Exemple #58
0
 def render(self, name, value, attrs=None):
     code = get_current_code()
     empty_current_code()
     input_attrs = self.build_attrs(attrs, type='text', name=name)
     src = reverse(draw, kwargs={'code': code})
     return mark_safe(
         self.template % {
             'src': src,
             'input_attrs': flatatt(input_attrs),
             'alt': settings.ALT,
             'width': WIDTH,
             'length': LENGTH,
             'height': HEIGHT,
             'rnd': random(),
             'refresh_text': REFRESH_LINK_TEXT
         })
Exemple #59
0
    def render(self, name, value, attrs={}):
        if value is None:
            value = ''

        final_attrs = self.build_attrs(attrs, name=name)

        self.options['filebrowserBrowseUrl'] = reverse('cked_elfinder')

        return mark_safe(
            render_to_string(
                'cked/ckeditor.html', {
                    'final_attrs': flatatt(final_attrs),
                    'value': conditional_escape(force_unicode(value)),
                    'id': final_attrs['id'],
                    'options': json_encode(self.options)
                }))
Exemple #60
0
    def render(self, name, value, attrs=None):
        attrs = attrs or {}

        ace_attrs = {
            "class": "django-ace-widget loading",
        }
        if self.mode:
            ace_attrs["data-mode"] = self.mode
        if self.theme:
            ace_attrs["data-theme"] = self.theme
        if self.wordwrap:
            ace_attrs["data-wordwrap"] = "true"

        textarea = super(AceWidget, self).render(name, value, attrs)
        return mark_safe('<div%s><div></div></div>%s' %
                         (flatatt(ace_attrs), textarea))