odoo/doc/howtos/backend/exercise-state-basic

56 lines
2.0 KiB
Plaintext

# HG changeset patch
# Parent 8c721171aa16a41e94059f53d6780c67b5ef2dfc
# Parent 8d2ca42b5be2031ea9624896df53f09f7ca131be
diff --git a/openacademy/models.py b/openacademy/models.py
--- a/openacademy/models.py
+++ b/openacademy/models.py
@@ -66,6 +66,24 @@ class Session(models.Model):
attendees_count = fields.Integer(
string="Attendees count", compute='_get_attendees_count', store=True)
+ state = fields.Selection([
+ ('draft', "Draft"),
+ ('confirmed', "Confirmed"),
+ ('done', "Done"),
+ ], default='draft')
+
+ @api.multi
+ def action_draft(self):
+ self.state = 'draft'
+
+ @api.multi
+ def action_confirm(self):
+ self.state = 'confirmed'
+
+ @api.multi
+ def action_done(self):
+ self.state = 'done'
+
@api.depends('seats', 'attendee_ids')
def _taken_seats(self):
for r in self:
diff --git a/openacademy/views/openacademy.xml b/openacademy/views/openacademy.xml
--- a/openacademy/views/openacademy.xml
+++ b/openacademy/views/openacademy.xml
@@ -96,6 +96,19 @@
<field name="model">openacademy.session</field>
<field name="arch" type="xml">
<form string="Session Form">
+ <header>
+ <button name="action_draft" type="object"
+ string="Reset to draft"
+ states="confirmed,done"/>
+ <button name="action_confirm" type="object"
+ string="Confirm" states="draft"
+ class="oe_highlight"/>
+ <button name="action_done" type="object"
+ string="Mark as done" states="confirmed"
+ class="oe_highlight"/>
+ <field name="state" widget="statusbar"/>
+ </header>
+
<sheet>
<group>
<group string="General">