Coworking/coworking_coworker/models/res_partner.py

54 lines
1.9 KiB
Python
Raw Normal View History

2017-11-24 10:05:18 +01:00
# -*- coding: utf-8 -*-
""" Coworker module """
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class ResPartner(models.Model):
""" Coworker model """
_inherit = 'res.partner'
2017-11-24 16:25:14 +01:00
2017-11-27 14:54:48 +01:00
is_coworker = fields.Selection([('is_coworker', 'Coworker')])
2017-11-28 11:01:28 +01:00
# coworker_count = fields.Integer('Number of coworker',
# compute='_compute_coworker_count')
2017-11-24 16:25:14 +01:00
2017-11-27 14:52:39 +01:00
2017-11-24 10:05:18 +01:00
company_ids = fields.One2many(
string="Company",
comodel_name="res.partner",
inverse_name="parent_id",
)
2017-11-24 17:16:20 +01:00
url = fields.Char('URL')
2017-11-24 16:25:14 +01:00
contact_date = fields.Date(default=fields.Date.context_today)
coworker_type = fields.Selection([('staffer', 'Staffer'),
('worker', 'Worker'), ('member', 'Member'),
('volunteer', 'Volunteer'),
('visitor', 'Visitor')])
2017-11-27 16:02:09 +01:00
full_contact_adress = fields.Char(compute='_compute_full_contact_adress')
2017-11-28 11:20:06 +01:00
@api.depends('is_coworker')
def _compute_coworker_count(self):
""" Computes number of coworker """
for res_partner in self:
if self.is_coworker():
self.coworker_count = len(self.is_coworker)
2017-11-28 11:01:28 +01:00
2017-11-27 16:02:09 +01:00
@api.depends('street', 'zip', 'city')
def _compute_full_contact_adress(self):
"""Concatènation de l'adresse si les chanps street, czip et city sont renseignés"""
for coworker in self:
coworker.full_contact_adress = u'{} {} {}'.format \
(coworker.street or u'', coworker.zip or u'', coworker.city or u'').strip()
2017-11-24 16:25:14 +01:00
@api.constrains('contact_date')
def _check_contact_date(self):
"""Test si la modification de la date n'est pas superieur à la date du jour"""
if self.contact_date > fields.Date.context_today(self):
raise ValidationError(_('Date most be equal of inferior to to day'))