[IMP] base : Convert Model Overview and Technical Guide rml reports in qweb report
This commit is contained in:
@@ -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',
|
||||
|
||||
Binary file not shown.
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
Binary file not shown.
@@ -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)
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user