示例#1
0
 def test_non_string_input(self):
     # Filters shouldn't break if passed non-strings
     self.assertEqual(addslashes(123), '123')
     self.assertEqual(linenumbers(123), '1. 123')
     self.assertEqual(lower(123), '123')
     self.assertEqual(make_list(123), ['1', '2', '3'])
     self.assertEqual(slugify(123), '123')
     self.assertEqual(title(123), '123')
     self.assertEqual(truncatewords(123, 2), '123')
     self.assertEqual(upper(123), '123')
     self.assertEqual(urlencode(123), '123')
     self.assertEqual(urlize(123), '123')
     self.assertEqual(urlizetrunc(123, 1), '123')
     self.assertEqual(wordcount(123), 1)
     self.assertEqual(wordwrap(123, 2), '123')
     self.assertEqual(ljust('123', 4), '123 ')
     self.assertEqual(rjust('123', 4), ' 123')
     self.assertEqual(center('123', 5), ' 123 ')
     self.assertEqual(center('123', 6), ' 123  ')
     self.assertEqual(cut(123, '2'), '13')
     self.assertEqual(escape(123), '123')
     self.assertEqual(linebreaks_filter(123), '<p>123</p>')
     self.assertEqual(linebreaksbr(123), '123')
     self.assertEqual(removetags(123, 'a'), '123')
     self.assertEqual(striptags(123), '123')
示例#2
0
 def test_non_string_input(self):
     # Filters shouldn't break if passed non-strings
     self.assertEqual(addslashes(123), '123')
     self.assertEqual(linenumbers(123), '1. 123')
     self.assertEqual(lower(123), '123')
     self.assertEqual(make_list(123), ['1', '2', '3'])
     self.assertEqual(slugify(123), '123')
     self.assertEqual(title(123), '123')
     self.assertEqual(truncatewords(123, 2), '123')
     self.assertEqual(upper(123), '123')
     self.assertEqual(urlencode(123), '123')
     self.assertEqual(urlize(123), '123')
     self.assertEqual(urlizetrunc(123, 1), '123')
     self.assertEqual(wordcount(123), 1)
     self.assertEqual(wordwrap(123, 2), '123')
     self.assertEqual(ljust('123', 4), '123 ')
     self.assertEqual(rjust('123', 4), ' 123')
     self.assertEqual(center('123', 5), ' 123 ')
     self.assertEqual(center('123', 6), ' 123  ')
     self.assertEqual(cut(123, '2'), '13')
     self.assertEqual(escape(123), '123')
     self.assertEqual(linebreaks_filter(123), '<p>123</p>')
     self.assertEqual(linebreaksbr(123), '123')
     self.assertEqual(removetags(123, 'a'), '123')
     self.assertEqual(striptags(123), '123')
示例#3
0
    def test_addslashes(self):
        self.assertEqual(addslashes('"double quotes" and \'single quotes\''),
                         '\\"double quotes\\" and \\\'single quotes\\\'')

        self.assertEqual(addslashes(r'\ : backslashes, too'),
                         '\\\\ : backslashes, too')
示例#4
0
    def test_addslashes(self):
        self.assertEqual(addslashes('"double quotes" and \'single quotes\''),
                          '\\"double quotes\\" and \\\'single quotes\\\'')

        self.assertEqual(addslashes(r'\ : backslashes, too'),
                          '\\\\ : backslashes, too')
示例#5
0
    }
else: # Fall back to friendly date/time            
    FORM_FIELD_OVERRIDES = {
        models.DateField: {'widget': FriendlyDateInput},
        models.TimeField: {'widget': FriendlyTimeInput, 'form_class': FriendlyTimeField},
    }

WIDGET_JS = {
    FriendlyDateInput: (lambda id: "initFriendlyDateChooser(fixPrefix('%s'));" % id),
    FriendlyTimeInput: (lambda id: "initFriendlyTimeChooser(fixPrefix('%s'));" % id),
    LocalizedDateInput: (lambda id: "initLocalizedDateChooser(fixPrefix('%s'));" % id),
    LocalizedTimeInput: (lambda id: "initLocalizedTimeChooser(fixPrefix('%s'));" % id),
    RichTextArea: (lambda id: "makeRichTextEditable(fixPrefix('%s'));" % id),
    TagWidget: (
        lambda id: "initTagField(fixPrefix('%s'), '%s');" % (
            id, addslashes(reverse('wagtailadmin_tag_autocomplete'))
        )
    ),
}


# Callback to allow us to override the default form fields provided for each model field.
def formfield_for_dbfield(db_field, **kwargs):
    # snarfed from django/contrib/admin/options.py

    # If we've got overrides for the formfield defined, use 'em. **kwargs
    # passed to formfield_for_dbfield override the defaults.
    for klass in db_field.__class__.mro():
        if klass in FORM_FIELD_OVERRIDES:
            kwargs = dict(copy.deepcopy(FORM_FIELD_OVERRIDES[klass]), **kwargs)
            return db_field.formfield(**kwargs)
示例#6
0
 def test_non_string_input(self):
     self.assertEqual(addslashes(123), '123')
示例#7
0
from wagtail.wagtailcore.models import Page
from wagtail.wagtailcore.fields import RichTextArea
from wagtail.wagtailcore.utils import camelcase_to_underscore, resolve_model_string


FORM_FIELD_OVERRIDES = {}

WIDGET_JS = {
    forms.DateInput: (lambda id: "initDateChooser(fixPrefix('%s'));" % id),
    forms.TimeInput: (lambda id: "initTimeChooser(fixPrefix('%s'));" % id),
    forms.DateTimeInput: (lambda id: "initDateTimeChooser(fixPrefix('%s'));" % id),
    RichTextArea: (lambda id: "makeRichTextEditable(fixPrefix('%s'));" % id),
    TagWidget: (
        lambda id: "initTagField(fixPrefix('%s'), '%s');" % (
            id, addslashes(reverse('wagtailadmin_tag_autocomplete'))
        )
    ),
}


# Callback to allow us to override the default form fields provided for each model field.
def formfield_for_dbfield(db_field, **kwargs):
    # snarfed from django/contrib/admin/options.py

    # If we've got overrides for the formfield defined, use 'em. **kwargs
    # passed to formfield_for_dbfield override the defaults.
    for klass in db_field.__class__.mro():
        if klass in FORM_FIELD_OVERRIDES:
            kwargs = dict(copy.deepcopy(FORM_FIELD_OVERRIDES[klass]), **kwargs)
            return db_field.formfield(**kwargs)
示例#8
0
 def test_quotes(self):
     self.assertEqual(
         addslashes('"double quotes" and \'single quotes\''),
         '\\"double quotes\\" and \\\'single quotes\\\'',
     )
示例#9
0
 def test_backslashes(self):
     self.assertEqual(addslashes(r'\ : backslashes, too'), '\\\\ : backslashes, too')
示例#10
0
 def test_non_string_input(self):
     self.assertEqual(addslashes(123), '123')
示例#11
0
    def render(self, *args, **kwargs):
        """
        Renders the actual ajax widget.
        """
        if len(args) == 1:
            data = args[0]
        else:
            data = args[1]

        old_init_val = init_val = data

        if type(data) == int:
            if hasattr(self, "field"):
                query_objects = self.field.rel.to.objects

            objects = query_objects.filter(pk=data)
            if objects.count() == 1:
                obj = objects[0]
                if hasattr(obj, 'ajax_str'):
                    init_val = obj.ajax_str() + " (%s)" % data
                    old_init_val = unicode(obj)
                else:
                    old_init_val = init_val = unicode(obj) + " (%s)" % data
        elif isinstance(data, str) or isinstance(data, unicode):
            pass
        else:
            data = init_val = ''

        fn = str(self.field_name)

        related_model = self.field.rel.to
        # espuser hack
        if related_model == User:
            model_module = 'esp.users.models'
            model_name = 'ESPUser'
        else:
            model_module = related_model.__module__
            model_name = related_model.__name__

        if self.shadow_field:
            shadow_field_javascript = """
                $j("#id_%s").val(ui.item.value);
            """ % (self.shadow_field)
        else:
            shadow_field_javascript = ""

        javascript = """
<script type="text/javascript">
<!--

$j("#id_%s").val("%s");
$j("#id_%s_data").val(%s);
$j("#id_%s").autocomplete({
    source: function(request, response) {
        $j.ajax({
            url: "/admin/ajax_autocomplete/",
            dataType: "json",
            data: {
                model_module: "%s",
                model_name: "%s",
                ajax_func: "%s",
                ajax_data: request.term
            },
            success: function(data) {
                var output = $j.map(data.result, function(item) {
                    return {
                        label: item.ajax_str,
                        value: item.ajax_str,
                        id: item.id,
                    };
                });
                response(output);
            }
        });
    },
    select: function(event, ui) {
        $j("#id_%s_data").val(ui.item.id);
        %s
    }
});


//-->
</script>""" % \
         (fn, addslashes(init_val), fn, data, fn,
          model_module, model_name, self.ajax_func or 'ajax_autocomplete',
          fn, shadow_field_javascript)

        html = """
<input type="text" id="id_%s" name="%s_raw" value="%s" />
<input type="hidden" id="id_%s_data" name="%s" />
<div class="raw_id_admin">
  <a href="../" class="related-lookup" id="lookup_%s" onclick="return showRelatedObjectLookupPopup(this);">
  <img src="/media/admin/img/admin/selector-search.gif" border="0" width="16" height="16" alt="Lookup" /></a>   
   &nbsp;<strong>%s</strong>
</div>
""" % (fn, fn, addslashes(data or ''), fn, fn, fn, old_init_val)

        #   Add HTML for shadow field if desired
        if self.shadow_field:
            html += '<input type="hidden" id="id_%s" name="%s" value="%s"/>' % (
                self.shadow_field, self.shadow_field, old_init_val)

        return mark_safe(html + javascript)
示例#12
0
 def test_backslashes(self):
     self.assertEqual(addslashes(r'\ : backslashes, too'),
                      '\\\\ : backslashes, too')
示例#13
0
 def test_quotes(self):
     self.assertEqual(
         addslashes('"double quotes" and \'single quotes\''),
         '\\"double quotes\\" and \\\'single quotes\\\'',
     )
示例#14
0
 def test_backslashes(self):
     self.assertEqual(addslashes(r"\ : backslashes, too"),
                      "\\\\ : backslashes, too")
示例#15
0
 def test_quotes(self):
     self.assertEqual(
         addslashes("\"double quotes\" and 'single quotes'"),
         "\\\"double quotes\\\" and \\'single quotes\\'",
     )
示例#16
0
 def input(self, _in, out, **kw):
     name = self.get_name(kw['source_path'])
     content = addslashes(_in.read().replace('\n', ''))
     str = u"\n$templateCache.put(\"{name}\",\"{content}\");".format(name=name, content=content)
     out.write(str)