michel_coworking/models/coworker.py

52 lines
1.8 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
""" Coworker module """
2017-11-06 15:54:17 +01:00
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class Coworker(models.Model):
""" Coworker model """
_name = 'coworking.coworker'
_description = 'Coworker model definition'
_order = 'id desc'
2017-11-06 22:48:27 +01:00
full_name = fields.Char(compute='_compute_full_name', store=True, index=True)
name = fields.Char(required=True)
firstname = fields.Char('First name', required=True)
coworker_type = fields.Selection([('staffer', 'Staffer'),
('worker', 'Worker'), ('member', 'Member'),
('volunteer', 'Volunteer'),
('visitor', 'Visitor')])
company_name = fields.Char('Company')
job = fields.Char()
2017-11-06 15:54:17 +01:00
contact_date = fields.Date(default=fields.Date.context_today)
street = fields.Char()
2017-11-06 15:54:17 +01:00
contact_zip = fields.Char()
city = fields.Char()
phone_number = fields.Char()
gsm = fields.Char('GSM')
email = fields.Char()
url = fields.Char('URL')
note = fields.Text()
is_done = fields.Boolean('Done?')
is_active = fields.Boolean('Active?', default=True)
2017-11-06 15:54:17 +01:00
2017-11-06 22:48:27 +01:00
@api.depends('name', 'firstname')
def _compute_full_name(self):
for coworker in self:
coworker.full_name = u'{} {}'.format(coworker.name, coworker.firstname)
2017-11-06 15:54:17 +01:00
@api.constrains('contact_date')
def _check_contact_date(self):
if self.contact_date > fields.Date.context_today(self):
raise ValidationError(_('Date most be egual of inferior to to day'))
2017-11-06 22:48:27 +01:00
@api.constrains('company_name', 'job')
def _check_company_name(self):
for coworker in self:
if coworker.company_name and not coworker.job:
raise ValidationError(_('You must enter job and compagny both'))