Buongiorno.
Ho cercato nel forum, ma non ho trovato nessuno che abbia avuto problemi personalizzando il DDT.
Un nostro cliente su Odoo 8, che utilizza le varianti di prodotto, ha l'esigenza di poter stampare il DDT, oltre che nel modo standard, con una riga per variante, anche sommando le varie varianti e stampando una riga prodotto.
Ho quindi esteso la clase StockPickingPackagePreparationCustom
class StockPickingPackagePreparationCustom(models.Model):
_inherit = 'stock.picking.package.preparation'
def ddt_aggregated_lines(self):
linesId = {}
for line in self.line_ids:
if line.product_id.product_tmpl_id.id not in linesId:
linesId[line.product_id.product_tmpl_id.id] = {'name': line.product_id.name_template,
'product_uom_qty': line.product_uom_qty}
else:
linesId[line.product_id.product_tmpl_id.id]['product_uom_qty'] += line.product_uom_qty
lines = []
for i in linesId:
lines.append(linesId[i])
return lines
e aggiunto un nuovo report: in pratica il report originale con id diversi e in cui al posto della riga:
<tr t-foreach="o.line_ids" t-as="line">
ho messo:
<tr t-foreach="o.ddt_aggregated_lines()" t-as="line">
Quando pero' lancio la stampa mi viene restituito l'errore (di cui riporto solo le ultime righe):
File "/mnt/extra-addons/base/ir/ir_qweb.py", line 485, in render_tag_field
field = record._fields[field_name]
QWebException: "'dict' object has no attribute '_fields'" while evaluating
"translate_doc(doc_id, doc_model, 'partner_id.lang', 'acme_srl.report_ddt_aggregato')"
Dove sto sbagliando?
Grazie
Alessio