Я новичок в odoo и в своих поисках не нашел ответа на свою проблему.
Я использую расширение res_partner_view в базовой папке для поля имени. Что я хочу сделать, так это то, что пользователь не может изменить имя партнера, если нет НДС или он определен как общий (999999990). Когда я делаю повышение, говоря, что пользователь не может изменить имя, я хочу поместить исходное имя в поле, прежде чем он попытается изменить.
У меня есть функция onchange в моем модуле:
def onchange_partner_name(self, cr, uid, ids, n, context=None):
#raise osv.except_osv(_('Alterar nome'), _('Função onchange_partner_name'))
result = {}
cr.execute("Select res_partner.vat, res_partner.name, account_invoice.state from account_invoice inner join res_partner on account_invoice.partner_id = res_partner.id where res_partner.id = '%s'" % ids[0])
registos = cr.fetchall()
if (len(registos) > 0):
partner_nif = list(set(i[0] for i in registos))
if partner_nif[-1] == None or str(partner_nif[-1]) == '999999990':
for vat,nam,estado in registos:
if estado == 'open' or estado == 'paid':
raise osv.except_osv(_('Cliente com documentos emitidos'), _(content + 'Não pode alterar o Nome de um cliente sem NIF.'))
result['name'] = n
return {'value': result}
И мой xml:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_partner_form_Name" model="ir.ui.view">
<field name="name">res.partner.form2</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<field name="name" default_focus="1" placeholder="Name" position="replace">
<field name="name" default_focus="1" placeholder="Name" on_change="onchange_partner_name(name)"/>
</field>
</field>
</record>
</data>
</openerp>
Поэтому я хочу или сохранить имя перед изменением поля «имя» из xml и перед повышением изменить его обратно или перед повышением поставить имя, которое есть в таблице.
Есть ли способ получить и установить соперничество (строку), которое присутствует в имени поля xml?
заранее спасибо