Пример #1
0
    def get_form(self, request, obj=None, **kwargs):
        form = super().get_form(request, obj, **kwargs)

        for form_field in self.text_input_form_fields:
            form.base_fields[form_field].widget = admin_widgets.AdminTextInputWidget()
        for form_field in self.url_input_form_fields:
            form.base_fields[form_field].widget = admin_widgets.AdminURLFieldWidget()

        return form
Пример #2
0
 def test_render(self):
     w = widgets.AdminURLFieldWidget()
     self.assertHTMLEqual(
         w.render('test', ''),
         '<input class="vURLField" name="test" type="url" />')
     self.assertHTMLEqual(
         w.render('test', 'http://example.com'),
         '<p class="url">Currently:<a href="http://example.com">http://example.com</a><br />Change:<input class="vURLField" name="test" type="url" value="http://example.com" /></p>'
     )
Пример #3
0
 def __init__(self, *args, **kwargs):
     super(QuizChoiceInLineForm, self).__init__(*args, **kwargs)
     self.fields['choice'].widget = widgets.AdminTextareaWidget({
         _('class'):
         _('form-control'),
         _('placeholder'):
         _('One of the quiz choices')
     })
     self.fields['Quiz'].widget = widgets.AdminURLFieldWidget({
         _('class'):
         _('form-control'),
         _('placeholder'):
         _('Lecture Slide URL')
     })
     self.fields['correct'].widget = widgets.AdminURLFieldWidget({
         _('class'):
         _('form-control'),
         _('placeholder'):
         _('A generic Document will be provided if left empty')
     })
Пример #4
0
 def __init__(self, *args, **kwargs):
     super(LectureAdminForm, self).__init__(*args, **kwargs)
     self.fields['title'].widget = widgets.AdminTextInputWidget({
         _('class'):
         _('form-control'),
         _('placeholder'):
         _('Title of the Lecture')
     })
     self.fields['collab_doc'].widget = widgets.AdminURLFieldWidget({
         _('class'):
         _('form-control'),
         _('placeholder'):
         _('A generic Document will be provided if left empty')
     })
Пример #5
0
 def test_render_quoting(self):
     w = widgets.AdminURLFieldWidget()
     self.assertHTMLEqual(
         conditional_escape(
             w.render('test',
                      'http://example.com/<sometag>some text</sometag>')),
         '<p class="url">Currently:<a href="http://example.com/%3Csometag%3Esome%20text%3C/sometag%3E">http://example.com/&lt;sometag&gt;some text&lt;/sometag&gt;</a><br />Change:<input class="vURLField" name="test" type="text" value="http://example.com/<sometag>some text</sometag>" /></p>'
     )
     self.assertHTMLEqual(
         conditional_escape(
             w.render(
                 'test',
                 'http://example-äüö.com/<sometag>some text</sometag>')),
         '<p class="url">Currently:<a href="http://xn--example--7za4pnc.com/%3Csometag%3Esome%20text%3C/sometag%3E">http://example-äüö.com/&lt;sometag&gt;some text&lt;/sometag&gt;</a><br />Change:<input class="vURLField" name="test" type="text" value="http://example-äüö.com/<sometag>some text</sometag>" /></p>'
     )
Пример #6
0
 def test_render_quoting(self):
     # WARNING: Don't use assertHTMLEqual in that testcase!
     # assertHTMLEqual will get rid of some escapes which are tested here!
     w = widgets.AdminURLFieldWidget()
     self.assertEqual(
         w.render('test', 'http://example.com/<sometag>some text</sometag>'),
         '<p class="url">Currently: <a href="http://example.com/%3Csometag%3Esome%20text%3C/sometag%3E">http://example.com/&lt;sometag&gt;some text&lt;/sometag&gt;</a><br />Change: <input class="vURLField" name="test" type="url" value="http://example.com/&lt;sometag&gt;some text&lt;/sometag&gt;" /></p>'
     )
     self.assertEqual(
         w.render('test', 'http://example-äüö.com/<sometag>some text</sometag>'),
         '<p class="url">Currently: <a href="http://xn--example--7za4pnc.com/%3Csometag%3Esome%20text%3C/sometag%3E">http://example-äüö.com/&lt;sometag&gt;some text&lt;/sometag&gt;</a><br />Change: <input class="vURLField" name="test" type="url" value="http://example-äüö.com/&lt;sometag&gt;some text&lt;/sometag&gt;" /></p>'
     )
     self.assertEqual(
         w.render('test', 'http://www.example.com/%C3%A4"><script>alert("XSS!")</script>"'),
         '<p class="url">Currently: <a href="http://www.example.com/%C3%A4%22%3E%3Cscript%3Ealert(%22XSS!%22)%3C/script%3E%22">http://www.example.com/%C3%A4&quot;&gt;&lt;script&gt;alert(&quot;XSS!&quot;)&lt;/script&gt;&quot;</a><br />Change: <input class="vURLField" name="test" type="url" value="http://www.example.com/%C3%A4&quot;&gt;&lt;script&gt;alert(&quot;XSS!&quot;)&lt;/script&gt;&quot;" /></p>'
     )
Пример #7
0
 def test_render_idn(self):
     w = widgets.AdminURLFieldWidget()
     self.assertHTMLEqual(
         conditional_escape(w.render('test', 'http://example-äüö.com')),
         '<p class="url">Currently:<a href="http://xn--example--7za4pnc.com">http://example-äüö.com</a><br />Change:<input class="vURLField" name="test" type="text" value="http://example-äüö.com" /></p>'
     )