Esempio n. 1
0
 def __init__(self, data, js_src, data_schema=None, profile=False):
     self._js_src, self._data_schema, self._data = js_src, data_schema, data
     fnc_name = JsFncsRecords.JsFilter.__name__
     fnc_pmts = ["data"] + (list(JsFncsRecords.JsFilter.pmts) or [])
     if not fnc_name in self._js_src.get('js', {}).get('functions', {}):
         self._js_src.setdefault('js', {}).setdefault(
             'functions', {})[fnc_name] = {
                 'content':
                 "var result = []; %s;return result" %
                 JsUtils.cleanFncs(JsFncsRecords.JsFilter.content),
                 'pmt':
                 fnc_pmts
             }
     self._data_schema['filters'] = []
Esempio n. 2
0
    def url(self):
        """

    :return:
    """
        fnc_name = JsFncsRecords.JsToUrl.__name__
        fnc_pmts = ["data"]
        for p in getattr(JsFncsRecords.JsToUrl, 'params', []):
            fnc_pmts.append(p)
        if not fnc_name in self._js_src.get('functions', {}):
            content = JsUtils.cleanFncs(JsFncsRecords.JsToUrl.value)
            self._js_src.setdefault('functions', {})[fnc_name] = {
                'content': "%s; return result" % content,
                'pmt': fnc_pmts
            }
        return fnc_name
Esempio n. 3
0
    def __register_records_fnc(self, fnc_name, fnc_def, fnc_pmts=None):
        """
    This function will attach to the report object only the javascript functions used during the report

    :param fnc_name:
    :param fnc_def:

    :return:
    """
        fnc_pmts = ["data"] + (fnc_pmts or [])
        if not fnc_name in self._js_src.get('js', {}).get('functions', {}):
            self._js_src.setdefault('js', {}).setdefault(
                'functions', {})[fnc_name] = {
                    'content':
                    "var result = []; %s;return result" %
                    JsUtils.cleanFncs(fnc_def),
                    'pmt':
                    fnc_pmts
                }