Enric Tobella
7 years ago
14 changed files with 101 additions and 95 deletions
-
11report_xml/README.rst
-
2report_xml/__init__.py
-
7report_xml/__manifest__.py
-
2report_xml/controllers/__init__.py
-
11report_xml/controllers/main.py
-
3report_xml/demo/report.xml
-
3report_xml/models/__init__.py
-
55report_xml/models/report_action.py
-
25report_xml/models/report_generator.py
-
41report_xml/static/src/js/report/qwebactionmanager.js
-
2report_xml/tests/__init__.py
-
17report_xml/tests/test_report_xml.py
-
9report_xml/views/webclient_templates.xml
@ -1,5 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html). |
|||
|
|||
from . import controllers |
|||
from . import models |
@ -1,4 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html). |
|||
|
|||
from . import main |
@ -1,5 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html). |
|||
|
|||
from . import report_action |
|||
from . import report_generator |
@ -1,25 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# Copyright (C) 2014-2015 Grupo ESOC <www.grupoesoc.es> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
import logging |
|||
|
|||
from odoo import api, models |
|||
|
|||
_logger = logging.getLogger(__name__) |
|||
|
|||
|
|||
class ReportGenerator(models.Model): |
|||
_inherit = "report" |
|||
|
|||
@api.model |
|||
def _get_report_from_name(self, report_name): |
|||
res = super(ReportGenerator, self)._get_report_from_name(report_name) |
|||
if res: |
|||
return res |
|||
report_obj = self.env['ir.actions.report.xml'] |
|||
qwebtypes = ['qweb-xml'] |
|||
conditions = [('report_type', 'in', qwebtypes), |
|||
('report_name', '=', report_name)] |
|||
context = self.env['res.users'].context_get() |
|||
return report_obj.with_context(context).search(conditions, limit=1) |
@ -0,0 +1,41 @@ |
|||
odoo.define('report_xml.report', function(require){ |
|||
'use strict'; |
|||
|
|||
var ActionManager= require('web.ActionManager'); |
|||
var crash_manager = require('web.crash_manager'); |
|||
var framework = require('web.framework'); |
|||
|
|||
ActionManager.include({ |
|||
ir_actions_report: function (action, options){ |
|||
var self = this; |
|||
action = _.clone(action); |
|||
if (action.report_type === 'qweb-xml') { |
|||
framework.blockUI() |
|||
var report_xml_url = 'report/xml/' + action.report_name; |
|||
if(action.context.active_ids){ |
|||
report_xml_url += '/' + action.context.active_ids.join(','); |
|||
} |
|||
else{ |
|||
report_xml_url += '?options=' + encodeURIComponent(JSON.stringify(action.data)); |
|||
report_xml_url += '&context=' + encodeURIComponent(JSON.stringify(action.context)); |
|||
} |
|||
self.getSession().get_file({ |
|||
url: report_xml_url, |
|||
data: {data: JSON.stringify([ |
|||
report_xml_url, |
|||
action.report_type, |
|||
])}, |
|||
error: crash_manager.rpc_error.bind(crash_manager), |
|||
success: function (){ |
|||
if(action && options && !action.dialog){ |
|||
options.on_close(); |
|||
} |
|||
}, |
|||
}); |
|||
framework.unblockUI(); |
|||
return |
|||
} |
|||
return self._super(action, options); |
|||
} |
|||
}); |
|||
}); |
@ -1,4 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
# License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html). |
|||
|
|||
from . import test_report_xml |
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<odoo> |
|||
<template id="report_xml.assets_backend" inherit_id="web.assets_backend"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/report_xml/static/src/js/report/qwebactionmanager.js"/> |
|||
</xpath> |
|||
|
|||
</template> |
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue