# -*- coding: utf-8 -*-
|
|
|
|
from odoo import models, fields, api
|
|
from odoo.exceptions import UserError, ValidationError
|
|
from psycopg2 import sql, DatabaseError
|
|
|
|
from werkzeug import utils
|
|
|
|
class opendons_qualifierCategory(models.Model):
|
|
_name = 'opendons_qualifier.category'
|
|
_description = 'categories pour les qualificatifs'
|
|
|
|
sql_constraints = [
|
|
('category_uniq', 'UNIQUE((name))', 'This name already exists.')
|
|
]
|
|
name = fields.Char('Name', required=True)
|
|
order= fields.Integer()
|
|
description = fields.Text()
|
|
|
|
@api.constrains('name')
|
|
def _check_name(self):
|
|
|
|
count=self.search_count([('name','=',self.name),('id', '!=', self.id)])
|
|
if count>0:
|
|
raise UserError('This name already exist')
|
|
|
|
|
|
|
|
|
|
|
|
class opendons_qualifier(models.Model):
|
|
_name = 'opendons_qualifier.qualifier'
|
|
_description = 'qualificatifs de contacts'
|
|
|
|
name = fields.Char()
|
|
type=fields.Selection([('checkbox','checkbox'),('text','text'),('numerical','numerical')], default='checkbox')
|
|
default_value = fields.Char()
|
|
description = fields.Text()
|
|
category_id = fields.Many2one(
|
|
'opendons_qualifier.category', string='Category', tracking=True,
|
|
required=True)
|
|
|
|
|
|
class opendons_partnerqualifier(models.Model):
|
|
_name = 'opendons_qualifier.partnerqualifier'
|
|
_description = 'qualificatifs pour stocker les valeurs au niveau du contact'
|
|
|
|
|
|
value=fields.Char()
|
|
qualifier_id=fields.Many2one('opendons_qualifier.qualifier',string='qualifier')
|
|
category = fields.Char(related='qualifier_id.category_id.name')
|
|
partner_id = fields.Many2one(
|
|
'res.partner',
|
|
string='partner',
|
|
required=True,
|
|
index=True,
|
|
readonly=True,
|
|
track_visibility='onchange',
|
|
ondelete='restrict'
|
|
)
|
|
|
|
sql_constraints = [
|
|
('qualifier_uniq', 'unique (qualifier_id,partner_id)', 'A qualifier could be defined only one time on same partner.')
|
|
]
|
|
|
|
@api.constrains('qualifier_id')
|
|
def _check_qualifier_id(self):
|
|
for q in self:
|
|
result=self.search_count([('qualifier_id','=',int(self.qualifier_id)),('id', '!=', self.id),('partner_id','=',int(self.partner_id))])
|
|
if result>0:
|
|
raise UserError('A qualifier could be defined only one time on same partner.')
|
|
|
|
|