Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
3 Risposte
6164 Visualizzazioni

Hi, I am trying to add a new combobox to re.partner (added field for customers). It is intended to provide an informative payment method selection and it should appear right after property_payment_term in the customer acountability tab.


This is my __init__.py:

from . import invoice_payment_method

this is my __openerp__.py:

{
'name': 'Payment Method Selection',
'description': 'Provides a new field to select payment method as per customer',
'author': 'E.M.',
'depends': ['base', 'account' ],
'data': ['invoice_payment_method.xml', ],
}

This is my invoice_payment_method.py:

# -*- coding: utf-8 -*-
from openerp import models, fields, api, exceptions

class invoice_payment_method(models.Model):

_inherit = "res.partner"

payment_method = fields.Selection(selection=[('bank_transfer', 'Transferencia Bancaria'),
('check', 'Cheque'),
('confirming', 'Confirming'),
string='Método de pago')


And this is invoice_payment_method.xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>

<record model="ir.ui.view" id="payment_method">
<field name="name">payment_method</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.view_partner_property_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='property_payment_term']" position="after">
<field name="payment_method"/>
</xpath>
</field>
</record>

</data>
</openerp>

Could anyone help me to identify what I am missing or how to further troubleshoot?

Avatar
Abbandona
Risposta migliore

You need to close the selection brackets in your field definition like:

payment_method = fields.Selection(selection=[('bank_transfer', 'Transferencia Bancaria'),
('check', 'Cheque'),
('confirming', 'Confirming')],#here
string='Método de pago')



Avatar
Abbandona
Risposta migliore

you should add _name to your class :


class invoice_payment_method(models.Model):
    _name = "res.partner"
    _inherit = "res.partner"


otherwise you are making a new class named  invoice_payment_method instead of editing res.partner. Also as a tradition, it is better to name your class "partner" instead of " invoice_payment_method"

Cheers,

Pouya
Avatar
Abbandona

when you define _inherit and not _name is the same as declare _name and _inherit with the same value

I didn't know it, thanks

Autore

Actually, "Odoo Develpment Essentials" book states that while extending a class, no _name should be assigned. As per class name, if I understood it correctly, it can be the same as the extended one as they are just internal classes, my doubt is if there is any standard.

Post correlati Risposte Visualizzazioni Attività
0
lug 24
1260
1
lug 15
6227
1
feb 23
7557
3
mag 19
10259
3
mar 17
13814