1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- # -*- coding: utf-8 -*-
- from openerp import models, fields, api, tools
- from openerp.exceptions import ValidationError, except_orm, Warning, RedirectWarning
- class ProjectService(models.Model):
- _name = 'project.service'
- name = fields.Many2one('product.service', string='Nombre', required=True)
- date_start = fields.Date(string='Start Date')
- date_due = fields.Date(string='Expiration Date')
- sequence = fields.Integer(string='Sequence')
- partner_id = fields.Many2one('res.partner', string='Customer')
- image_medium = fields.Binary('Binary File', related="name.logo")
- state = fields.Selection([('draft', 'Nuevo'),('open', 'En progreso'),
- ('cancelled', 'Cancelado'),
- ('pending', 'Pendiente'),
- ('close', 'Cerrado')],
- string='Status')
- color = fields.Integer(string='Color Index')
- project_service_task_ids = fields.One2many(
- 'project.service.task',
- 'project_id',
- )
- project_service_task_count = fields.Integer(
- string='Contador de tareas',
- compute='_get_project_service_task_count',
- )
- date_in = fields.Date(string='Fecha de entrada', default=fields.Date.today())
- date_out = fields.Date(string='Fecha de Salida')
- _defaults = {
- 'state': 'open',
- }
- @api.multi
- def unlink(self):
- for project in self:
- if project.state in ('close'):
- raise Warning('No puedes borrar un proyecto en estado cerrado')
- if len(project.project_service_task_ids) > 0:
- raise Warning('No puedes borrar un proyecto que tiene tareas')
- return super(ProjectService, self).unlink()
- def on_change_product(self):
- if not self.name:
- return {}
- model = self.pool.get('product.service').browse(self.name)
- return {
- 'value': {
- 'image_medium': model.logo,
- }
- }
- @api.one
- @api.depends('project_service_task_ids')
- def _get_project_service_task_count(self):
- self.project_service_task_count = len(self.project_service_task_ids)
- @api.one
- @api.onchange('name')
- def onchange_name(self):
- self.partner_id = self.name.partner_id.id
|