Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
3 Replies
6229 Tampilan

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
Buang
Jawaban Terbai

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
Buang
Jawaban Terbai

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
Buang

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

Penulis

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 Terkait Replies Tampilan Aktivitas
0
Jul 24
1300
1
Jul 15
6286
1
Feb 23
7652
3
Mei 19
10380
3
Mar 17
13873