Menu の葉セクションの割り当てリクエストで簡単な計算を行うという問題に直面しています。ビュー xml ファイルにボタンを追加しました。
<record model="ir.ui.view" id="view_edit_holiday_allocation_form">
<field name="name">allocation</field>
<field name="model">hr.holidays</field>
<field name="inherit_id" ref="hr_holidays.allocation_leave_new"/>
<field name="arch" type="xml">
<data>
<field name="department_id" position="after">
<field name="monthly_quota"/>
<field name="refusal_date"/>
<button name="calc_monthly_quota" type="object" string="Calculate Monthly Quota"/>
</field>
</data>
</field>
</record>
そして.pyファイルで
class hr_holidays(osv.osv):
_inherit = "hr.holidays"
def calc_monthly_quota(self, cr, uid, ids, context=None):
for record in self.browse(cr, uid, ids):
if record.state :
self.write(cr, uid, [record.id],{'monthly_quota':\
record.number_of_days_temp/12})
return True
_columns = {
"monthly_quota": fields.float("Monthly Quota", readonly=True,
states={'draft':[('readonly',False)]}, help="If monthly leave \
limit is more then xero then employee can not take leave more \
then monthly allocation in total allocation. If monthly quota \
is zero user can take leave as per his allocation limit."),
"refusal_date" : fields.date('Date of Refusal'),
"create_date" : fields.date('Create Date'),
}
ここでは、ボタンのクリックでリーフの毎月のクォータを計算したいだけです。allocation(number_of_days_temp) に 12 を入力すると、毎月 1 になるはずです。レコードの状態を除いて、すべてが期待どおりにうまく機能しています。ボタンをクリックすると、レコードの状態が「送信予定」(下書き)から「承認予定」(確認)に変わります。フォームを保存する前に、フォームの状態自体が変化します。理想的には、保存ボタンを押した後にのみフォームの状態が変化する必要があります。そこでopenerp 7.0のドキュメントを読みまし た
After a button has been clicked, the record should always be reloaded.
フォームを保存せずに状態を変更するために必要なものをまだ取得していません。どのコメントも非常に高く評価されます。