You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

91 lines
2.9 KiB

# -*- 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)
@api.model
def create(self,vals):
res = super(opendons_qualifier, self).create(vals)
#ajout du qualificatif nouvellement créé pour chaque contact
for partner in self.env['res.partner'].sudo().search([]):
create_partner_qualifier=self.env['opendons_qualifier.partnerqualifier'].sudo().create(
{'partner_id': int(partner.id),
'qualifier_id':int(res.id)})
return res
class opendons_partnerqualifier(models.Model):
_name = 'opendons_qualifier.partnerqualifier'
_description = 'qualificatifs pour stocker les valeurs au niveau du contact'
actif=fields.Boolean(string='actif',default=False)
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.')