[ADD] state and readonly by state
This commit is contained in:
parent
0b1f58e6a9
commit
56926a9a59
@ -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):
|
||||
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user