[IMP] Product pricelist converted to QWeb

bzr revid: sle@openerp.com-20140414155212-4l3gvys24prccln6
This commit is contained in:
Simon Lejeune 2014-04-14 17:52:12 +02:00
parent 28fa8ebb8c
commit 7be29e97c4
6 changed files with 89 additions and 291 deletions

View File

@ -59,7 +59,8 @@ Print product labels with barcode.
'product_view.xml',
'pricelist_view.xml',
'partner_view.xml',
'process/product_process.xml'
'process/product_process.xml',
'views/report_pricelist.xml',
],
'test': [
'product_pricelist_demo.yml',
@ -69,4 +70,5 @@ Print product labels with barcode.
'auto_install': False,
'images': ['images/product_uom.jpeg','images/product_pricelists.jpeg','images/products_categories.jpeg', 'images/products_form.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,14 +2,14 @@
<openerp>
<data>
<report id="report_product_label" model="product.product" name="product.product.label" string="Products Labels" xml="product/report/product_label.xml" xsl="product/report/product_label.xsl"/>
<report
id="report_product_pricelist"
string="Pricelist"
model="product.product"
name="product.pricelist"
rml="product/report/product_pricelist.rml"
menu="False"
parser="product.report.product_pricelist.product_pricelist"
<report
id="action_report_pricelist"
string="Pricelist"
model="product.product"
report_type="qweb-pdf"
name="product.report_pricelist"
file="product.report_pricelist"
/>
</data>
</openerp>

View File

@ -20,10 +20,9 @@
##############################################################################
import time
from openerp.osv import osv
from openerp.report import report_sxw
from openerp.tools.translate import _
class product_pricelist(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
@ -34,7 +33,6 @@ class product_pricelist(report_sxw.rml_parse):
'time': time,
'get_pricelist': self._get_pricelist,
'get_currency': self._get_currency,
'get_currency_symbol': self._get_currency_symbol, # TODO 7.0 - remove this - unused
'get_categories': self._get_categories,
'get_price': self._get_price,
'get_titles': self._get_titles,
@ -69,12 +67,6 @@ class product_pricelist(report_sxw.rml_parse):
pricelist = self.pool.get('product.pricelist').read(self.cr, self.uid, [pricelist_id], ['currency_id'], context=self.localcontext)[0]
return pricelist['currency_id'][1]
# TODO 7.0 - remove this method, its unused
def _get_currency_symbol(self, pricelist_id):
pricelist = self.pool.get('product.pricelist').read(self.cr, self.uid, [pricelist_id], ['currency_id'], context=self.localcontext)[0]
symbol = self.pool.get('res.currency').read(self.cr, self.uid, [pricelist['currency_id'][0]], ['symbol'], context=self.localcontext)[0]
return symbol['symbol'] or ''
def _get_categories(self, products, form):
cat_ids=[]
res=[]
@ -120,4 +112,11 @@ class product_pricelist(report_sxw.rml_parse):
price = self.formatLang(res[0]['list_price'], digits=sale_price_digits, currency_obj=pricelist.currency_id)
return price
class report_product_pricelist(osv.AbstractModel):
_name = 'report.product.report_pricelist'
_inherit = 'report.abstract_report'
_template = 'product.report_pricelist'
_wrapped_report_class = product_pricelist
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,266 +0,0 @@
<?xml version="1.0"?>
<document filename="Price List.pdf">
<template title="Price List" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<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="LINEAFTER" 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"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<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="LINEAFTER" 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"/>
</blockTableStyle>
<blockTableStyle id="Table7">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
<blockBackground colorName="#ffffff" start="0,0" stop="0,-1"/>
<blockBackground colorName="#ffffff" start="1,0" stop="1,-1"/>
<blockBackground colorName="#ffffff" start="2,0" stop="2,-1"/>
<blockBackground colorName="#ffffff" start="3,0" stop="3,-1"/>
<blockBackground colorName="#ffffff" start="4,0" stop="4,-1"/>
<blockBackground colorName="#ffffff" start="5,0" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_category">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<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"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.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_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" 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_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.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_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Footer" fontName="Helvetica"/>
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.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="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.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_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="15.0" leading="19" 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_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_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Drawing" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Header" fontName="Helvetica"/>
<paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica" fontSize="10.0" leading="13"/>
<paraStyle name="Addressee" fontName="Helvetica" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="Signature" fontName="Helvetica"/>
<paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Salutation" fontName="Helvetica"/>
<paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<images/>
</stylesheet>
<story>
<pto>
<pto_header>
<blockTable colWidths="255.0,57.0,57.0,57.0,57.0,57.0" style="Table7">
<tr>
<td>
<para style="terp_tblheader_Details">Description</para>
<para style="terp_default_1">[[repeatIn(get_titles(data['form']), 'k')]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty1') and k['qty1']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty2') and k['qty2']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty3') and k['qty3']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty4') and k['qty4']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty5') and k['qty5']) or '' ]] </para>
</td>
</tr>
</blockTable>
</pto_header>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_header_Centre">Price List</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="180.0,180.0,180.0" style="Table1">
<tr>
<td>
<para style="terp_tblheader_General_Centre">Price List Name</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Currency</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Printing Date</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="180.0,180.0,180.0" style="Table4">
<tr>
<td>
<para style="terp_default_Centre_8">[[ get_pricelist(data['form']['price_list']) ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ get_currency ( data['form']['price_list']) ]]</para>
</td>
<td>
<para style="terp_default_Centre_8">[[ formatLang(time.strftime('%Y-%m-%d'), date=True) ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="255.0,57.0,57.0,57.0,57.0,57.0" style="Table7">
<tr>
<td>
<para style="terp_tblheader_Details">Description</para>
<para style="terp_default_1">[[repeatIn(get_titles(data['form']), 'k')]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty1') and k['qty1']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty2') and k['qty2']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty3') and k['qty3']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty4') and k['qty4']) or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (k.has_key('qty5') and k['qty5']) or '' ]] </para>
</td>
</tr>
</blockTable>
<section>
<para style="terp_default_1">[[repeatIn(get_categories(objects,data['form']), 'c')]]</para>
<blockTable colWidths="230.0,309.0" style="Table_category">
<tr>
<td>
<para style="terp_default_Bold_9">[[ c['name'] ]]</para>
</td>
<td>
<para style="terp_default_Bold_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
<section>
<para style="terp_default_1">[[repeatIn(c['products'], 'p')]]</para>
<blockTable colWidths="255.0,57.0,57.0,57.0,57.0,57.0" style="Table3">
<tr>
<td>
<para style="terp_default_9">[[ p['code'] and '[' + p['code'] + '] ' or '' ]] [[ p['name'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (p.has_key('qty1') and p['qty1']) or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (p.has_key('qty2') and p['qty2']) or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (p.has_key('qty3') and p['qty3']) or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (p.has_key('qty4') and p['qty4']) or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ (p.has_key('qty5') and p['qty5']) or '' ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_1">
<font color="white"> </font>
</para>
</section>
</section>
</pto>
</story>
</document>

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="report_pricelist">
<t t-call="report.html_container">
<t t-call="report.internal_layout">
<div class="page">
<h2>Price List</h2>
<div class="row mt32 mb32">
<div class="col-xs-3">
<strong>Price List Name</strong>:<br/>
<span t-esc="get_pricelist(data['form']['price_list'])"/>
</div>
<div class="col-xs-3">
<strong>Currency</strong>:<br/>
<span t-esc="get_currency(data['form']['price_list'])"/>
</div>
<div class="col-xs-3">
<strong>Print date</strong>:<br/>
<t t-esc="formatLang(time.strftime('%Y-%m-%d'), date=True)"/>
</div>
</div>
<table class="table table-condensed">
<thead>
<tr>
<th>
<strong>Description</strong>
</th>
<t t-foreach="get_titles(data['form'])" t-as="k">
<th t-if="k.has_key('qty1')"><strong t-esc="k['qty1']"/></th>
<th t-if="k.has_key('qty2')"><strong t-esc="k['qty2']"/></th>
<th t-if="k.has_key('qty3')"><strong t-esc="k['qty3']"/></th>
<th t-if="k.has_key('qty4')"><strong t-esc="k['qty4']"/></th>
<th t-if="k.has_key('qty5')"><strong t-esc="k['qty5']"/></th>
</t>
</tr>
</thead>
<tbody>
<t t-foreach="get_categories(objects,data['form'])" t-as="c">
<tr>
<td colspan="100">
<strong t-esc="c['name']"/>
</td>
</tr>
<tr t-foreach="c['products']" t-as="p">
<td>
<t t-if="p.get('code')">
[<span t-esc="p['code']"/>]
</t>
<span t-esc="p['name']"/>
</td>
<td t-if="p.has_key('qty1') and p['qty1']"><strong t-esc="p['qty1']"/></td>
<td t-if="p.has_key('qty2') and p['qty2']"><strong t-esc="p['qty2']"/></td>
<td t-if="p.has_key('qty3') and p['qty3']"><strong t-esc="p['qty3']"/></td>
<td t-if="p.has_key('qty4') and p['qty4']"><strong t-esc="p['qty4']"/></td>
<td t-if="p.has_key('qty5') and p['qty5']"><strong t-esc="p['qty5']"/></td>
</tr>
</t>
</tbody>
</table>
</div>
</t>
</t>
</template>
</data>
</openerp>

View File

@ -20,7 +20,6 @@
##############################################################################
from openerp.osv import fields, osv
from openerp.tools.translate import _
class product_price_list(osv.osv_memory):
@ -55,10 +54,6 @@ class product_price_list(osv.osv_memory):
res = res and res[0] or {}
res['price_list'] = res['price_list'][0]
datas['form'] = res
return {
'type': 'ir.actions.report.xml',
'report_name': 'product.pricelist',
'datas': datas,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
return self.pool['report'].get_action(cr, uid, [], 'product.report_pricelist', data=datas, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: