Beispiel #1
0
    def _get_asset_content(self, bundle, options, nodeAttrs=None):
        options = dict(options,
                       inherit_branding=False,
                       inherit_branding_auto=False,
                       edit_translations=False,
                       translatable=False,
                       rendering_bundle=True)

        options['website_id'] = self.env.context.get('website_id')

        asset_paths = self.env['ir.asset']._get_asset_paths(bundle=bundle,
                                                            css=True,
                                                            js=True)

        files = []
        remains = []
        for path, *_ in asset_paths:
            ext = path.split('.')[-1]
            is_js = ext in SCRIPT_EXTENSIONS
            is_css = ext in STYLE_EXTENSIONS
            if not is_js and not is_css:
                continue

            mimetype = 'text/javascript' if is_js else 'text/%s' % ext
            if can_aggregate(path):
                segments = [segment for segment in path.split('/') if segment]
                files.append({
                    'atype':
                    mimetype,
                    'url':
                    path,
                    'filename':
                    get_resource_path(*segments) if segments else None,
                    'content':
                    '',
                    'media':
                    nodeAttrs and nodeAttrs.get('media'),
                })
            else:
                if is_js:
                    tag = 'script'
                    attributes = {
                        "type": mimetype,
                        "src": path,
                    }
                else:
                    tag = 'link'
                    attributes = {
                        "type": mimetype,
                        "rel": "stylesheet",
                        "href": path,
                        'media': nodeAttrs and nodeAttrs.get('media'),
                    }
                remains.append((tag, attributes, ''))

        return (files, remains)
Beispiel #2
0
    def _get_asset_content(self,
                           bundle,
                           nodeAttrs=None,
                           defer_load=False,
                           lazy_load=False):
        asset_paths = self.env['ir.asset']._get_asset_paths(bundle=bundle,
                                                            css=True,
                                                            js=True)

        files = []
        remains = []
        for path, *_ in asset_paths:
            ext = path.split('.')[-1]
            is_js = ext in SCRIPT_EXTENSIONS
            is_css = ext in STYLE_EXTENSIONS
            if not is_js and not is_css:
                continue

            mimetype = 'text/javascript' if is_js else 'text/%s' % ext
            if can_aggregate(path):
                segments = [segment for segment in path.split('/') if segment]
                files.append({
                    'atype':
                    mimetype,
                    'url':
                    path,
                    'filename':
                    get_resource_path(*segments) if segments else None,
                    'content':
                    '',
                    'media':
                    nodeAttrs and nodeAttrs.get('media'),
                })
            else:
                if is_js:
                    tag = 'script'
                    attributes = {
                        "type": mimetype,
                    }
                    attributes["data-src" if lazy_load else "src"] = path
                    if defer_load or lazy_load:
                        attributes["defer"] = "defer"
                else:
                    tag = 'link'
                    attributes = {
                        "type": mimetype,
                        "rel": "stylesheet",
                        "href": path,
                        'media': nodeAttrs and nodeAttrs.get('media'),
                    }
                remains.append((tag, attributes, ''))

        return (files, remains)