gpt4 book ai didi

python - 单击后禁用按钮 - Odoo v8

转载 作者:行者123 更新时间:2023-12-01 02:21:43 25 4
gpt4 key购买 nike

我有这个方法:

@api.multi
def account_move_sc5_10(self):
#if record.state in ('awaitingraw'):
for record in self:
#if record.state in ('draft'):
tempy = record.contract_worksheet.total_alles - record.contract_worksheet.total_totals
acc_move = self.env['account.move']
move_lines = [
(0, 0, {
'name': 'name', # a label so accountant can understand where this line come from
'debit': tempy or 0.0, # amount of debit
'credit': 0, # amount of credit
'account_id': record.transporter.transp_transit.id, #account_id, # account
'date': fields.Date.today(), #date,
'partner_id': record.transporter.id, # partner if there is one
#'currency_id': currency_id or (account.currency_id.id or False),
}),
(0, 0, {
'name': 'name',
'debit': 0,
'credit': record.contract_worksheet.total_alles or 0.0,
'account_id': record.transporter.transp_transit.id,
#'analytic_account_id': context.get('analytic_id', False),
'date': fields.Date.today(), #date,
'partner_id': record.transporter.id,
#'currency_id': currency_id or (account.currency_id.id or False),
})
]

journal_id = False
if record.transporter.transp_transit:
journals = self.env['account.journal'].search([
('default_debit_account_id', '=', record.transporter.transp_transit.id)
])
if journals:
journal_id = journals[0].id
acc_move.create({
#'period_id': period_id, #Fiscal period
'journal_id': journal_id, #self.aajournal.id, # journal ex: sale journal, cash journal, bank journal....
'date': fields.Date.today(),
'state': 'draft',
'line_id': move_lines, # this is one2many field to account.move.line
})

我从这样的 View 中调用<button string="Account Moves" name="account_move_sc5_10" states="awaitingraw" type="object" class="oe_highlight"/>

我需要,一旦单击此按钮,它应该保持只读状态,我知道使用 bool 值可以完成,但是使用这个 account.move方法我对如何实现它有点困惑。

有什么想法吗?

最佳答案

如果您可以在单击按钮后使按钮不可见,则可以执行以下操作:

在模型中声明一个字段,其中按钮方法为:

button_clicked = fields.Boolean(
string='Button clicked',
default=False,
)

修改按钮调用的方法,只需添加这一行:

@api.multi
def account_move_sc5_10(self):
for record in self:
record.write({
'button_clicked': True,
})
...

修改按钮所属模型的 View 以添加新字段和条件:

<field name="button_clicked" invisible="1"/>

<button string="Account Moves" name="account_move_sc5_10" type="object" class="oe_highlight" attrs="{'invisible': ['|', ('state', 'not in', 'awaitingraw'), ('button_clicked', '=', True)]}"/>

请注意,我已删除 states 参数,这是因为 attrsstates 不能一起使用(如果您同时使用它们,它们将不会执行任何操作)。因此,如果您没有 state 字段,请将其添加到您的 View 中。

关于python - 单击后禁用按钮 - Odoo v8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47893915/

25 4 0
文章推荐: python - Django 告诉最后一个项目是否具有双重排序中的某些属性(order_by)
文章推荐: python - Qt - 子部件后面的背景图像
文章推荐: javascript - 将 observable 转换为 observable