diff options
| author | rsi-odoo <rsi@openerp.com> | 2014-11-11 18:37:16 +0530 |
|---|---|---|
| committer | Damien Bouvy <dbo@odoo.com> | 2015-02-04 15:28:50 +0100 |
| commit | 1c3f7c5ad7b6e699fc44c1919010c6792c2d040f (patch) | |
| tree | 6b68cfbeab53967aa132836a714e507b6732450a | |
| parent | 1a2b4f4de7e833bf0e7cb63416ef1a4040d594e6 (diff) | |
[IMP] base : Convert Model Overview and Technical Guide rml reports in qweb report
| -rw-r--r-- | openerp/addons/base/__openerp__.py | 2 | ||||
| -rw-r--r-- | openerp/addons/base/ir/ir_model_report.sxw | bin | 17955 -> 0 bytes | |||
| -rw-r--r-- | openerp/addons/base/ir/ir_model_report.xml | 15 | ||||
| -rw-r--r-- | openerp/addons/base/ir/report_ir_model.xml | 96 | ||||
| -rw-r--r-- | openerp/addons/base/module/module_report.xml | 13 | ||||
| -rw-r--r-- | openerp/addons/base/module/report/ir_module_reference.rml | 268 | ||||
| -rw-r--r-- | openerp/addons/base/module/report/ir_module_reference.sxw | bin | 13707 -> 0 bytes | |||
| -rw-r--r-- | openerp/addons/base/module/report/ir_module_reference_print.py | 91 | ||||
| -rw-r--r-- | openerp/addons/base/module/report/report_ir_module_reference.xml | 68 |
9 files changed, 214 insertions, 339 deletions
diff --git a/openerp/addons/base/__openerp__.py b/openerp/addons/base/__openerp__.py index 654c04ee30b..3d31a7fecba 100644 --- a/openerp/addons/base/__openerp__.py +++ b/openerp/addons/base/__openerp__.py @@ -56,12 +56,14 @@ The kernel of OpenERP, needed for all installation. 'ir/ir_values_view.xml', 'ir/osv_memory_autovacuum.xml', 'ir/ir_model_report.xml', + 'ir/report_ir_model.xml', 'ir/ir_logging_view.xml', 'ir/ir_qweb.xml', 'workflow/workflow_view.xml', 'module/module_view.xml', 'module/module_data.xml', 'module/module_report.xml', + 'module/report/report_ir_module_reference.xml', 'module/wizard/base_module_update_view.xml', 'module/wizard/base_language_install_view.xml', 'module/wizard/base_import_language_view.xml', diff --git a/openerp/addons/base/ir/ir_model_report.sxw b/openerp/addons/base/ir/ir_model_report.sxw Binary files differdeleted file mode 100644 index 83769b93b94..00000000000 --- a/openerp/addons/base/ir/ir_model_report.sxw +++ /dev/null diff --git a/openerp/addons/base/ir/ir_model_report.xml b/openerp/addons/base/ir/ir_model_report.xml index 9fcf97b6c49..9b8027badb0 100644 --- a/openerp/addons/base/ir/ir_model_report.xml +++ b/openerp/addons/base/ir/ir_model_report.xml @@ -2,14 +2,13 @@ <openerp> <data> - <report id="report_ir_model_overview" - string="Model Overview" - model="ir.model" - name="ir.model.overview" - report_type="sxw" - file="base/ir/ir_model_report.sxw" - header="False" - /> + <report + id="report_ir_model_overview" + string="Model Overview" + model="ir.model" + report_type="qweb-pdf" + name="base.report_irmodeloverview" + file="base.report_irmodeloverview"/> </data> </openerp> diff --git a/openerp/addons/base/ir/report_ir_model.xml b/openerp/addons/base/ir/report_ir_model.xml new file mode 100644 index 00000000000..11e33e943f4 --- /dev/null +++ b/openerp/addons/base/ir/report_ir_model.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> +<data> +<template id="report_irmodeloverview"> + <t t-call="report.html_container"> + <t t-foreach="docs" t-as="o"> + <div class="page"> + <table class="table table-bordered mb64"> + <tr> + <td colspan="12"> + <strong>Object: <span t-field="o.model"/> + <p>Name: <span t-field="o.name"/></p></strong> + </td> + <td colspan="8"> + <p>Type: <span t-field="o.state"/></p> + <p t-if="o.osv_memory">In-memory: True</p> + <p t-if="not o.osv_memory">In-memory: False</p> + <p>Modules: <span t-field="o.modules"/></p> + </td> + </tr> + <tr> + <td colspan="20"><u><strong>Security</strong></u></td> + </tr> + <tr> + <td colspan="4"><strong>Group</strong></td> + <td><strong>R</strong></td> + <td><strong>W</strong></td> + <td><strong>C</strong></td> + <td><strong>U</strong></td> + <td colspan="12"><strong>Name</strong></td> + </tr> + <tr t-foreach="o.access_ids" t-as="access"> + <td colspan="4"><span t-field="access.group_id.name"/></td> + <td><t t-if="access.perm_read">X</t></td> + <td><t t-if="access.perm_write">X</t></td> + <td><t t-if="access.perm_create">X</t></td> + <td><t t-if="access.perm_unlink">X</t></td> + <td colspan="12"><span t-field="access.name"/></td> + </tr> + <tr> + <td colspan="20"><u><strong>Fields</strong></u></td> + </tr> + <tr> + <td colspan="3"><strong>Name</strong></td> + <td colspan="3"><strong>Label</strong></td> + <td colspan="2"><strong>Type</strong></td> + <td colspan="4"><strong>Attribute</strong></td> + <td><strong>Rq</strong></td> + <td><strong>Ro</strong></td> + <td><strong>Tr</strong></td> + <td><strong>Sel</strong></td> + <td colspan="4"><strong>Modules</strong></td> + </tr> + <tr t-foreach="o.field_id" t-as="field"> + <td colspan="3"><span t-field="field.name"/></td> + <td colspan="3"><span t-field="field.field_description"/></td> + <td colspan="2"><span t-field="field.ttype"/></td> + <td colspan="4"> + <p t-if="field.relation"><span>- relation = <span t-field="field.relation"/></span></p> + <p t-if="field.relation_field"><span>- field = <span t-field="field.relation_field"/></span></p> + <div t-if="field.selection"><span>- selection = <span t-field="field.selection"/></span></div> + <div t-if="field.size"><span>- size = <span t-field="field.size"/></span></div> + <div t-if="field.on_delete"><span>- ondelete = <span t-field="field.on_delete"/></span></div> + <div t-if="field.domain"><span>- domain = <span t-field="field.domain"/></span></div> + <div t-if="field.groups"><span>- groups = <span t-field="[g.name for g in field.groups]"/></span></div> + </td> + <td><t t-if="field.required">X</t></td> + <td><t t-if="field.readonly">X</t></td> + <td><t t-if="field.translate">X</t></td> + <td><t t-esc="field.select_level"/></td> + <td colspan="4"><span t-field="field.modules"/></td> + </tr> + <tr> + <td colspan="20"><u><strong>Views</strong></u></td> + </tr> + <tr> + <td><strong>Seq</strong></td> + <td><strong>Type</strong></td> + <td colspan="4"><strong>Name</strong></td> + <td colspan="6"><strong>XML ID</strong></td> + <td colspan="8"><strong>Inherited</strong></td> + </tr> + <tr t-foreach="o.view_ids" t-as="view"> + <td><span t-field="view.priority"/></td> + <td><span t-field="view.type"/></td> + <td colspan="4"><span t-field="view.name"/></td> + <td colspan="6"><span t-field="view.xml_id"/></td> + <td colspan="8"><span t-field="view.inherit_id.xml_id or view.inherit_id.name"/></td> + </tr> + </table> + </div> + </t> + </t> +</template> +</data> +</openerp> diff --git a/openerp/addons/base/module/module_report.xml b/openerp/addons/base/module/module_report.xml index 27094b6b98d..c6e34a40f1d 100644 --- a/openerp/addons/base/module/module_report.xml +++ b/openerp/addons/base/module/module_report.xml @@ -1,8 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data> - - <report auto="False" id="ir_module_reference_print" model="ir.module.module" name="ir.module.reference" rml="base/module/report/ir_module_reference.rml" string="Technical guide"/> - + + <report + id="ir_module_reference_print" + string="Technical guide" + model="ir.module.module" + report_type="qweb-pdf" + auto="False" + file="base.report_irmodulereference" + name="base.report_irmodulereference"/> + </data> </openerp> diff --git a/openerp/addons/base/module/report/ir_module_reference.rml b/openerp/addons/base/module/report/ir_module_reference.rml deleted file mode 100644 index 240d75fbccf..00000000000 --- a/openerp/addons/base/module/report/ir_module_reference.rml +++ /dev/null @@ -1,268 +0,0 @@ -<?xml version="1.0"?> -<document filename="test.pdf"> - <template title="Test" allowSplitting="20"> - <pageTemplate id="first"> - <frame id="first" x1="42.0" y1="42.0" width="511" height="758"/> - <header> - <pageGraphics> - <setFont name="Helvetica-Bold" size="9"/> - <drawString x="1.0cm" y="28.1cm">[[ company.name ]]</drawString> - <drawRightString x="20cm" y="28.1cm"> Reference Guide </drawRightString> - <lineMode width="0.7"/> - <stroke color="black"/> - <lines>1cm 28cm 20cm 28cm</lines> - </pageGraphics> - </header> - - </pageTemplate> - </template> - <stylesheet> - <blockTableStyle id="Standard_Outline"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - </blockTableStyle> - <blockTableStyle id="Table1"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - </blockTableStyle> - <blockTableStyle id="module_tbl_heading"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="4,0" stop="4,-1"/> - <lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="4,0" stop="4,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/> - </blockTableStyle> - <blockTableStyle id="module_tbl_content"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/> - <lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="4,0" stop="4,-1"/> - <lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="4,0" stop="4,-1"/> - <lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/> - </blockTableStyle> - <blockTableStyle id="depen_tbl"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - </blockTableStyle> - <blockTableStyle id="Tableau3"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> - </blockTableStyle> - <blockTableStyle id="Table2"> - <blockAlignment value="LEFT"/> - <blockValign value="TOP"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/> - <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/> - </blockTableStyle> - <initialize> - <paraStyle name="all" alignment="justify"/> - </initialize> - <paraStyle name="P1" fontName="Helvetica-Oblique" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="Standard" fontName="Times-Roman"/> - <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> - <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> - <paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> - <paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> - <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/> - <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="Index" fontName="Times-Roman"/> - <paraStyle name="Footer" fontName="Times-Roman"/> - <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> - <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> - <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> - <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/> - <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> - <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/> - <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - <paraStyle name="terp_default_8_underline" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> - </stylesheet> - <images/> - <story> - <para style="terp_default_9"> - <font color="white"> </font> - </para> - <blockTable colWidths="139.0,220.0,152.0" repeatRows="1" style="Table1"> - <tr> - <td> - <para style="terp_header_Centre"> - <font color="white"> </font> - </para> - </td> - <td> - <para style="terp_header_Centre">Introspection report on objects</para> - </td> - <td> - <para style="terp_header_Centre"> - <font color="white"> </font> - </para> - </td> - </tr> - </blockTable> - <para style="Standard"> - <font color="white"> </font> - </para> - <para style="Standard"> - <font color="white"> </font> - </para> - <section> - <para style="Text body">[[ repeatIn(objects,'module') ]]</para> - <blockTable colWidths="102.0,102.0,102.0,102.0,102.0" style="module_tbl_heading"> - <tr> - <td> - <para style="terp_tblheader_General_Centre">Module</para> - </td> - <td> - <para style="terp_tblheader_General_Centre">Name</para> - </td> - <td> - <para style="terp_tblheader_General_Centre">Version</para> - </td> - <td> - <para style="terp_tblheader_General_Centre">Directory</para> - </td> - <td> - <para style="terp_tblheader_General_Centre">Web</para> - </td> - </tr> - </blockTable> - <blockTable colWidths="102.0,102.0,102.0,102.0,102.0" style="module_tbl_content"> - <tr> - <td> - <para style="terp_default_Centre_8">[[ module.name ]]</para> - </td> - <td> - <para style="terp_default_Centre_8">[[ module.shortdesc]]</para> - </td> - <td> - <para style="terp_default_Centre_8">[[module.latest_version]]</para> - </td> - <td> - <para style="terp_default_Centre_8">[[ module.name ]]</para> - </td> - <td> - <para style="terp_default_Centre_8">[[ module.website ]]</para> - </td> - </tr> - </blockTable> - <para style="terp_default_8"> - <font color="white"> </font> - </para> - <para style="terp_default_8">[[ module.description ]]</para> - <para style="terp_default_Bold_8"> - <font color="white"> </font> - </para> - <para style="terp_default_8_underline">Reports :</para> - <para style="terp_default_8">[[ format(module.reports_by_module) ]]</para> - <para style="terp_default_8"> - <font color="white"> </font> - </para> - <para style="terp_default_8_underline">Menu :</para> - <para style="terp_default_8">[[ format(module.menus_by_module) ]]</para> - <para style="terp_default_8"> - <font color="white"> </font> - </para> - <para style="terp_default_8_underline">View :</para> - <para style="terp_default_8">[[ format(module.views_by_module) ]]</para> - <para style="terp_default_8"> - <font color="white"> </font> - </para> - <blockTable colWidths="510.0" style="depen_tbl"> - <tr> - <td> - <para style="terp_default_8_underline">Dependencies :</para> - </td> - </tr> - <tr> - <td> - <para style="terp_default_8">[[ repeatIn(module.dependencies_id,'dependencies_id') ]]</para> - <para style="terp_default_8">[[ dependencies_id.name ]] - [[ dependencies_id.state ]]</para> - </td> - </tr> - </blockTable> - <section> - <para style="terp_default_9"> - <font color="white"> </font> - </para> - <para style="terp_default_9">[[ repeatIn(findobj(module.name) ,'object') ]]</para> - <para style="terp_default_1"> - <font color="white"> </font> - </para> - <blockTable colWidths="510.0" repeatRows="1" style="Tableau3"> - <tr> - <td> - <para style="terp_tblheader_Details">Object: [[ object.model ]] [[ objdoc(object.model) ]]</para> - </td> - </tr> - <tr> - <td> - <para style="terp_default_9">[[ repeatIn(objdoc2(object.model) or [], 'sline') ]]</para> - <para style="terp_default_9"> [[ sline ]] </para> - </td> - </tr> - </blockTable> - <section> - <para style="terp_default_1"> - <font color="white"> </font> - </para> - </section> - <section> - <para style="P1">[[ repeatIn(findflds(object.model, module.name), 'field') ]]</para> - <blockTable colWidths="113.0,397.0" repeatRows="1" style="Table2"> - <tr> - <td> - <para style="terp_default_9">[[ field[0] ]]</para> - </td> - <td> - <para style="terp_default_9">[[ field[1].get('string', 'Unknown') ]], [[ field[1]['type'] ]] [[field[1].get('required',False) and ', required']] [[field[1].get('readonly',False) and ', readonly']] </para> - <para style="terp_default_9">[[ field[1].get('help', '') ]]</para> - </td> - </tr> - </blockTable> - <para style="terp_default_1"> - <font color="white"> </font> - </para> - </section> - </section> - </section> - </story> -</document> diff --git a/openerp/addons/base/module/report/ir_module_reference.sxw b/openerp/addons/base/module/report/ir_module_reference.sxw Binary files differdeleted file mode 100644 index 48e94634f98..00000000000 --- a/openerp/addons/base/module/report/ir_module_reference.sxw +++ /dev/null diff --git a/openerp/addons/base/module/report/ir_module_reference_print.py b/openerp/addons/base/module/report/ir_module_reference_print.py index 4aeeddeea24..4b76c37f00f 100644 --- a/openerp/addons/base/module/report/ir_module_reference_print.py +++ b/openerp/addons/base/module/report/ir_module_reference_print.py @@ -19,71 +19,42 @@ # ############################################################################## -import time +from openerp import models, api -from openerp.report import report_sxw - -class ir_module_reference_print(report_sxw.rml_parse): - def __init__(self, cr, uid, name, context): - super(ir_module_reference_print, self).__init__(cr, uid, name, context=context) - self.localcontext.update({ - 'time': time, - 'findobj': self._object_find, - 'objdoc': self._object_doc, - 'objdoc2': self._object_doc2, - 'findflds': self._fields_find, - }) - def _object_doc(self, obj): - modobj = self.pool[obj] - strdocs= modobj.__doc__ - if not strdocs: - return None - else: - strdocs=strdocs.strip().splitlines(True) - res = '' - for stre in strdocs: - if not stre or stre.isspace(): - break - res += stre - return res - - def _object_doc2(self, obj): - modobj = self.pool[obj] - strdocs= modobj.__doc__ - if not strdocs: - return None - else: - strdocs=strdocs.strip().splitlines(True) - res = [] - fou = False - for stre in strdocs: - if fou: - res.append(stre.strip()) - elif not stre or stre.isspace(): - fou = True - return res +class IrModelReferenceReport(models.AbstractModel): + _name = 'report.base.report_irmodulereference' + @api.model def _object_find(self, module): - ids2 = self.pool['ir.model.data'].search(self.cr, self.uid, [('module','=',module), ('model','=','ir.model')]) - ids = [] - for mod in self.pool['ir.model.data'].browse(self.cr, self.uid, ids2): - ids.append(mod.res_id) - modobj = self.pool['ir.model'] - return modobj.browse(self.cr, self.uid, ids) + model_data_obj = self.env['ir.model.data'] + models_data = model_data_obj.search([('model','=','ir.model'), ('module','=',module.name)]) + res_ids = [model_data.res_id for model_data in models_data] + return self.env['ir.model'].browse(res_ids) - def _fields_find(self, obj, module): + @api.multi + def _fields_find(self, model, module): res = [] - data_obj = self.pool['ir.model.data'] - modobj = self.pool[obj] - fname_wildcard = 'field_' + modobj._name.replace('.', '_') + '_%' - module_fields_ids = data_obj.search(self.cr, self.uid, [('model', '=', 'ir.model.fields'), ('module', '=', module), ('name', 'like', fname_wildcard)]) - if module_fields_ids: - module_fields_res_ids = [x['res_id'] for x in data_obj.read(self.cr, self.uid, module_fields_ids, ['res_id'])] - module_fields_names = [x['name'] for x in self.pool['ir.model.fields'].read(self.cr, self.uid, module_fields_res_ids, ['name'])] - res = modobj.fields_get(self.cr, self.uid, allfields=module_fields_names).items() + model_obj = self.env[model] + model_fields = self.env['ir.model.fields'] + fname_wildcard = 'field_' + model_obj._name.replace('.', '_') + '_%' + module_fields_ids = self.env['ir.model.data'].search([('model', '=', 'ir.model.fields'), ('module', '=', module.name), ('name', 'like', fname_wildcard)]) + module_fields_res_ids = [x.res_id for x in module_fields_ids] + if module_fields_res_ids: + module_fields_names = [x.name for x in model_fields.browse(module_fields_res_ids)] + res = model_obj.fields_get(allfields=module_fields_names).items() res.sort() return res -report_sxw.report_sxw('report.ir.module.reference', 'ir.module.module', - 'addons/base/module/report/ir_module_reference.rml', - parser=ir_module_reference_print, header=False) + @api.multi + def render_html(self, data=None): + report_obj = self.env['report'] + module_report = report_obj._get_report_from_name('base.report_irmodulereference') + selected_modules = self.env['ir.module.module'].browse(self.ids) + docargs = { + 'doc_ids': self.ids, + 'doc_model': module_report.model, + 'docs': selected_modules, + 'findobj': self._object_find, + 'findfields': self._fields_find, + } + return report_obj.render('base.report_irmodulereference', docargs)
\ No newline at end of file diff --git a/openerp/addons/base/module/report/report_ir_module_reference.xml b/openerp/addons/base/module/report/report_ir_module_reference.xml new file mode 100644 index 00000000000..f87c3a97a51 --- /dev/null +++ b/openerp/addons/base/module/report/report_ir_module_reference.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> +<data> +<template id="report_irmodulereference"> + <t t-call="report.html_container"> + <t t-foreach="docs" t-as="o"> + <t t-call="report.internal_layout"> + <div class="page"> + <h3 class="text-center">Introspection report on objects</h3> + <table class="table table-bordered mt32"> + <thead> + <tr> + <th class="text-center">Module</th> + <th class="text-center">Name</th> + <th class="text-center">Version</th> + <th class="text-center">Directory</th> + <th class="text-center">Web</th> + </tr> + </thead> + <tbody> + <tr class="text-center"> + <td><span t-field="o.name"/></td> + <td><span t-field="o.shortdesc"/></td> + <td><span t-field="o.latest_version"/></td> + <td><span t-field="o.name"/></td> + <td><span t-field="o.website"/></td> + </tr> + </tbody> + </table> + <span t-field="o.description"/> + <div> + <strong>Reports :</strong> + </div> + <span t-field="o.reports_by_module"/> + <div> + <strong>Menu :</strong> + </div> + <span t-field="o.menus_by_module"/> + <div> + <strong>View :</strong> + </div> + <span t-field="o.views_by_module"/> + <div> + <strong>Dependencies :</strong> + </div> + <div t-foreach="o.dependencies_id" t-as="dependency_id"> + <span t-field="dependency_id.name"/> - <span t-field="dependency_id.module_id.state"/> + </div> + + <table t-foreach="findobj(o)" t-as="obj" class="table table-condensed mt16 mb32"> + <tr> + <th colspan="2">Object: <span t-esc="obj.model"/></th> + </tr> + <tr t-foreach="findfields(obj.model, o)" t-as="field"> + <td class="col-xs-3"><t t-esc="field[0]"/></td> + <td> + <span t-esc="field[1].get('string','Unknown')"/><span>, </span><span t-esc="field[1].get('type')"/><span t-if="field[1].get('required')">, required</span><span t-if="field[1].get('readonly',False)">, readonly</span> + <div t-esc="field[1].get('help', '')"/> + </td> + </tr> + </table> + </div> + </t> + </t> + </t> +</template> +</data> +</openerp> |
