Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Sesion(Workflow, ModelSQL, ModelView):
- "Sesion"
- _name = 'academia.sesion'
- def __init__(self):
- super(Sesion, self).__init__()
- self._error_messages.update({
- 'sold_out': 'You have no seets availables !',
- })
- self._transitions |= set((
- ('draft', 'confirmed'),
- ('confirmed', 'done'),
- ('done', 'cancel'),
- ))
- self._buttons.update({
- #'confirm': {
- #'invisible': ~Eval('state').in_(['confirmed', 'done','cancel']),
- #},
- 'done': {
- 'invisible': ~Eval('state').in_(['draft', 'cancel']),
- 'icon': If(Eval('state') == 'cancel', 'tryton-clear',
- 'tryton-go-previous'),
- },
- 'cancel': {
- 'invisible': Eval('state') != 'done',
- } })
- def on_change_alumnos(self,vals):
- res = {}
- alumnos = vals.get('alumnos')
- num_of_seats = vals.get('num_of_seats')
- print "Alumnos", alumnos
- if alumnos and len(alumnos)>num_of_seats:
- self.raise_user_error('sold_out')
- print "INGRESO A ONCHANGE",vals
- res['num_of_seats'] = num_of_seats
- return res
- name = fields.Char('Name')
- start_date = fields.Date('Start Date')
- duration = fields.Float('Duration')
- num_of_seats = fields.Integer('Number of Seats')
- course = fields.Many2One('academia.curso', 'Course')
- instructor = fields.Many2One('party.party', 'Instructor', domain=[('instructor', '=', True)])
- alumnos = fields.One2Many('academia.alumno', 'session', 'Alumnos', on_change=['alumnos','num_of_seats'])
- state = fields.Selection([
- ('draft', 'Draft'),
- ('confirmed', 'Confirmed'),
- ('done', 'Done'),
- ('cancel', 'Canceled'),
- ], 'State', readonly=True)
- def default_state(self):
- return 'draft'
- #@ModelView.button
- #@Workflow.transition('draft')
- #def confirm(self, ids):
- #print "INGRESO A FUNCIoN CONFIRM"
- #pass
- @ModelView.button
- @Workflow.transition('confirmed')
- def confirmed(self, ids):
- print "INGRESO A FUNCIoN CONFIRM"
- pass
- Sesion()
Add Comment
Please, Sign In to add comment