[ADD] state and readonly by state

This commit is contained in:
Stepan Savelyev 2019-12-12 19:03:09 +05:00
parent 0b1f58e6a9
commit 56926a9a59
2 changed files with 35 additions and 6 deletions

View File

@ -28,6 +28,19 @@ class PartnerContract(models.Model):
default=lambda self: self.env.context.get('active_id'),
required=True
)
state = fields.Selection([
('draft', 'New'),
('sign', 'Signed'),
('close', 'Closed'),
],
string='Status',
readonly=True,
copy=False,
index=True,
track_visibility='onchange',
track_sequence=3,
default='draft'
)
@api.onchange('date')
def _change_contract_name(self):
@ -37,6 +50,18 @@ class PartnerContract(models.Model):
"""
self.name = self._calculate_contract_name(self.date)
@api.multi
def action_sign(self):
self.write({'state': 'sign'})
@api.multi
def action_close(self):
self.write({'state': 'close'})
@api.multi
def action_renew(self):
self.write({'state': 'draft'})
@api.model
def create(self, vals):

View File

@ -20,17 +20,21 @@
<field name="model">res.partner.contract</field>
<field name="arch" type="xml">
<form string="Contract">
<!-- <header>
<button name="do_toggle_active" type="object" string="Active" class="oe_highlight" />
</header> -->
<header>
<button name="action_sign" type="object" string="Sign" states="draft" class="oe_highlight"/>
<button name="action_close" type="object" string="Close" states="sign" class="oe_highlight"/>
<button name="action_renew" type="object" string="Renew" states="close"/>
<field name="state" widget="statusbar" statusbar_visible="draft,sign,close"/>
</header>
<sheet>
<group string="Contract parameters" name="single_params">
<field name="name" readonly="1"/>
<field name="date"/>
<field name="partner_id"/>
<field name="date" attrs="{'readonly': [('state', 'in', ['sign', 'close'])]}"/>
<field name="partner_id" readonly="1"/>
</group>
<group string="Annexed orders" name="multi_params">
<field name="order_ids" widget="many2many"/>
<field name="order_ids" widget="many2many" attrs="{'readonly': [('state', '=', 'close')]}"/>
</group>
</sheet>
</form>