+ def action_suspendre(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ mesurable = self.read(cr, uid, ids, ['state'], context)
+ if mesurable['state'] != 'encours':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'suspendu'},
+ context,
+ )
+ return self
+
+ def action_terminer(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ mesurable = self.read(cr, uid, ids, ['state'], context)
+ if mesurable['state'] != 'encours':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'termine'},
+ context,
+ )
+ return self
+
+ def action_abandonner(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ mesurable = self.read(cr, uid, ids, ['state'], context)
+ if not ('encours', 'cree').__contains__(mesurable['state']):
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'abandonne'},
+ context,
+ )
+ return self
+
+ def action_reprendre(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ mesurable = self.read(cr, uid, ids, ['state'], context)
+ if mesurable['state'] != 'suspendu':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'encours'},
+ context,
+ )
+ return self
+