Example #1
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))
Example #2
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))
Example #3
0
 def _input_attrs(self, name, value, skel=False):
     obligee = value if isinstance(value, Obligee) else None
     value = force_text(obligee.name if obligee else u'' if value is None else value)
     return merge_html_attrs(self.input_attrs, {
             u'class': u'pln-autocomplete form-control',
             u'type': u'text',
             u'name': name if not skel else u'',
             u'value': value,
             u'data-autocomplete-url': reverse_lazy(u'obligees:autocomplete'),
             u'data-name': name,
             })
Example #4
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))
Example #5
0
 def _input_attrs(self, name, value, skel=False):
     obligee = value if isinstance(value, Obligee) else None
     value = force_text(
         obligee.name if obligee else u'' if value is None else value)
     return merge_html_attrs(
         self.input_attrs, {
             u'class': u'pln-autocomplete form-control',
             u'type': u'text',
             u'name': name if not skel else u'',
             u'value': value,
             u'data-autocomplete-url':
             reverse_lazy(u'obligees:autocomplete'),
             u'data-name': name,
         })
Example #6
0
 def test_with_multiple_args(self):
     res = merge_html_attrs({
         u'title': u'Title',
         u'alt': u'Alt'
     },
                            dict(name=u'Name', id=u'id47'),
                            href=u'#')
     self.assertEqual(
         res, {
             u'title': u'Title',
             u'alt': u'Alt',
             u'name': u'Name',
             u'id': u'id47',
             u'href': u'#'
         })
Example #7
0
 def test_with_multiple_args(self):
     res = merge_html_attrs({u'title': u'Title', u'alt': u'Alt'}, dict(name=u'Name', id=u'id47'), href=u'#')
     self.assertEqual(res, {u'title': u'Title', u'alt': u'Alt', u'name': u'Name', u'id': u'id47', u'href': u'#'})
Example #8
0
 def test_with_no_args(self):
     res = merge_html_attrs()
     self.assertEqual(res, {})
Example #9
0
 def format_output(self, rendered_widgets):
     context = dict(self.context, inputs=rendered_widgets, finalize=False)
     content = mark_safe(render_to_string(self.template, context).strip())
     attrs = merge_html_attrs(self.composite_attrs, class_=u'pln-composite-text')
     return format_html(u'<div{0}>{1}</div>', flatatt(attrs), content)
Example #10
0
 def test_duplicate_style_attrs_are_concatenated(self):
     res = merge_html_attrs({u'style': u'color: red;'},
                            style=u'border: 1px;')
     self.assertEqual(res[u'style'], u'color: red; border: 1px;')
Example #11
0
 def _widget_attrs(self, attrs=None):
     return merge_html_attrs(self.attrs, attrs, {
         u'class': u'chv-obligee-widget',
     })
Example #12
0
 def test_duplicate_class_attrs_are_merged(self):
     res = merge_html_attrs({u'class': u'first second'}, class_=u'second third')
     self.assertItemsEqual(res[u'class'].split(), u'first second third'.split())
Example #13
0
 def test_with_empty_args(self):
     res = merge_html_attrs({}, None, title=u'Some Title')
     self.assertEqual(res, {u'title': u'Some Title'})
Example #14
0
 def test_with_no_args(self):
     res = merge_html_attrs()
     self.assertEqual(res, {})
Example #15
0
 def _widget_attrs(self, attrs=None):
     return merge_html_attrs(self.attrs, attrs, {
             u'class': u'chv-obligee-widget',
             })
Example #16
0
 def test_with_empty_args(self):
     res = merge_html_attrs({}, None, title=u'Some Title')
     self.assertEqual(res, {u'title': u'Some Title'})
Example #17
0
 def test_duplicate_attrs_raises_error(self):
     with self.assertRaisesMessage(ValueError, u'Duplicate attribute "alt".'):
         merge_html_attrs(dict(alt=u'first'), alt=u'duplicate')
Example #18
0
 def test_duplicate_attrs_raises_error(self):
     with self.assertRaisesMessage(ValueError,
                                   u'Duplicate attribute "alt".'):
         merge_html_attrs(dict(alt=u'first'), alt=u'duplicate')
Example #19
0
 def test_duplicate_style_attrs_are_concatenated(self):
     res = merge_html_attrs({u'style': u'color: red;'}, style=u'border: 1px;')
     self.assertEqual(res[u'style'], u'color: red; border: 1px;')
Example #20
0
 def test_duplicate_class_attrs_are_merged(self):
     res = merge_html_attrs({u'class': u'first second'},
                            class_=u'second third')
     self.assertItemsEqual(res[u'class'].split(),
                           u'first second third'.split())