# -*- coding:utf-8 -*- from openerp import fields, models, api from datetime import datetime class CrmTask(models.Model): _name="crm.task" name = fields.Char(string="Actividad") date_action_next = fields.Datetime('Fecha Prox. Accion') user_id = fields.Many2one('res.users', 'Responsable') partner_id = fields.Many2one('res.partner', 'Cliente') company_id = fields.Many2one('res.company', 'Compañia') description = fields.Text('Descripción') state = fields.Selection([ ('pending', 'Pendiente'), ('done', 'Realizado'), ('cancel','Cancelado')], string='Estado', track_visibility='onchange', default='pending') priority = fields.Selection([('0','P'), ('1','Poco'),('2','Normal'), ('3','Alto')], 'Prioridad') date_closed = fields.Datetime('Cerrado', readonly=True) opportunity_id = fields.Many2one ('crm.lead', 'Oportunidad') create_date = fields.Datetime('Fecha de creación') task_type_id = fields.Many2one('crm.task.type', string="Tipo de Tarea", track_visibility='onchange') hex_value = fields.Char( string="Hex Value", related="task_type_id.color", store=False, size=7) def onchange_stage_id(self, cr, uid, ids, stage_id, context=None): return {'state': stage_id} def onchange_task_type(self, cr, uid, ids, task_type_id, context=None): return {'task_type_id': task_type_id} @api.one def action_done(self): if self.state == 'pending': self.state = 'done' # self.hex_value='#58ACFA' else: self.state = 'pending' # self.hex_value='#FA5858' @api.one def action_cancel(self): self.state = 'cancel' # self.hex_value='#A4A4A4' @api.multi def unlink(self): for all_id in self: res= self.env.cr.execute("DELETE FROM crm_task WHERE id= %s" % (all_id.id)) return res @api.one def _current_datetime(self): now = datetime.now() if self.date_action_next < now.strftime("%Y-%m-%d %H:%M:00"): self.expired_date = True expired_date = fields.Boolean(string="Fecha Vencida", compute="_current_datetime", store=False)