示例#1
0
 def prepare(self):
     super(CustomisedForm, self).prepare()
     if self.blank_deleted:
         self.safe_modify('attrs')
         self.attrs['onsubmit'] = 'twd_blank_deleted()'
     if self.disable_enter:
         self.safe_modify('resources')
         self.resources.append(
             twc.JSSource(src='document.onkeypress = twd_suppress_enter;'))
     if self.prevent_multi_submit:
         self.submit.safe_modify('attrs')
         self.submit.attrs['onclick'] = 'return twd_no_multi_submit(this);'
示例#2
0
    def prepare(self):
        super(Wysihtml5, self).prepare()
        if not hasattr(self, 'id') or 'id' not in self.attrs:
            raise ValueError('WYSIHTML5 must be supplied an id')

        self.resources.append(parsers[self.parser])
        self.toolbar_id = self.compound_id + '-toolbar'
        self.resources.append(
            twc.JSSource(src="""
var editor = new wysihtml5.Editor("%s", {
    toolbar:  "%s",
    parserRules:  wysihtml5ParserRules,
    stylesheets: ["/resources/%s/%s"]
});
""" % (self.compound_id, self.toolbar_id, wysihtml5_editor_css.guess_modname(),
        wysihtml5_editor_css.filename)))
示例#3
0
import tw2.core as twc
import tw2.jqplugins.ui
import testapi

from nose.tools import eq_

js = twc.JSLink(link='paj')
css = twc.CSSLink(link='joe')
csssrc = twc.CSSSource(src='.bob { font-weight: bold; }')
jssrc = twc.JSSource(src='bob')

html = "<html><head><title>a</title></head><body>hello</body></html>"


def simple_app(environ, start_response):
    req = wo.Request(environ)
    ct = 'text/html' if req.path == '/' else 'test/plain'
    resp = wo.Response(request=req, content_type="%s; charset=UTF8" % ct)
    resp.body = html
    return resp(environ, start_response)

mw = twc.make_middleware(simple_app)


def setup():
    testapi.setup()


def test_weird_case_for_zykes():
    rl = testapi.request(1, mw)
    tw2.jqplugins.ui.jquery_ui.inject()
示例#4
0
    def __init__(self, **kwargs):
        super(GeocompleteField, self).__init__(**kwargs)
        self.resources = [
            select2_persistence_js,
            twc.JSSource(src='''
                function format_name(name, complement, postal_code, country) {
                    var display_name = name;
                    display_name += ' ';

                    if(complement) {
                        display_name += complement;
                    }

                    display_name += ' - ';
                    display_name += postal_code;
                    display_name += ', ';
                    display_name += country;

                    return display_name.toUpperCase();
                }
                ''')
        ]
        self.options = []
        self.ondemand = True
        self.validator = self.validator or Validator()

        self.opts.copy()
        self.opts['minimumInputLength'] = 1
        self.opts['maximumInputLength'] = 125
        self.opts['allowClear'] = True
        self.opts['dropdownAutoWidth'] = True

        self.opts['initSelection'] = twc.js_callback("""
            function (element, callback) {
                var init_data;

                param = params['%(name)s'];

                if(typeof param !== "undefined" && param) {
                    var elem = {};
                    param_dict = JSON.parse(param);
                    elem.id = param;

                    name = format_name(
                        param_dict['name'],
                        param_dict['complement'],
                        param_dict['postal_code'],
                        param_dict['country']
                    );

                    elem.name = name;
                    elem.value = name;

                    init_data = elem;
                }

                callback(init_data);
            }
            """ % dict(name=self.name))
        self.opts['escapeMarkup'] = twc.js_callback("""
            function(markup) {
                return markup;
            }
            """)
        self.opts['formatResult'] = twc.js_callback("""
            function(location) {
                var markup = '<option value="' + location.value + '">'
                    + location.name
                    + '</option>';
                return markup;
            }
            """)
        self.opts['formatSelection'] = twc.js_callback("""
            function(location) {
                if(typeof location !== "undefined") {
                    return location.value || location.text;
                }
            }
            """)

        self.opts['ajax'] = dict(url='/geocomplete',
                                 dataType='json',
                                 type='POST',
                                 quietMillis=100,
                                 cache=True,
                                 data=twc.js_callback("""
                function(term) {
                    return {address: term};
                }
                """),
                                 results=twc.js_callback("""
                function(data) {
                    var results = [];

                    if ('results' in data) {
                        $.each(data['results'], function(i, v) {
                            var o = {};
                            o.id = JSON.stringify(v);
                            name = format_name(
                                v['name'],
                                v['complement'],
                                v['postal_code'],
                                v['country']
                            );
                            o.name = name;
                            o.value = name;
                            results.push(o);
                        });
                    }

                    return {results: results};
                }
                """))
示例#5
0
import tw2.core as twc
import tw2.jqplugins.select2 as twsel
from tw2.core.validation import Validator

select2_persistence_js = twc.JSSource(src='''
    // This function returns the value of the specified GET parameter.
    // The code has been found at the following url:
    // http://stackoverflow.com/questions/5448545/how-to-retrieve-get-parameters-from-javascript
    // Big Kudos to you mister Jonah.
    var params = function() {
        function urldecode(str) {
            return decodeURIComponent((str+'').replace(/\+/g, '%20'));
        }

        function transformToAssocArray( prmstr ) {
            var params = {};
            var prmarr = prmstr.split("&");
            for ( var i = 0; i < prmarr.length; i++) {
                var tmparr = prmarr[i].split("=");
                params[tmparr[0]] = urldecode(tmparr[1]);
            }
            return params;
        }

        var prmstr = window.location.search.substr(1);
        return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
    }();
''')


class PersistentSelect2MultipleSelect(twsel.Select2MultipleSelectField):
    def __init__(self, **kwargs):