@ -1,135 +0,0 @@ | |||||
# -*- 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 donation_categoryQualifier(models.Model): | |||||
_name = 'donation_qualifier.donation_categoryqualifier' | |||||
_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') | |||||
# @api.depends('value') | |||||
# def _value_pc(self): | |||||
# for record in self: | |||||
# record.value2 = float(record.value) / 100 | |||||
class donation_qualifier(models.Model): | |||||
_name = 'donation_qualifier.donation_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( | |||||
'donation_qualifier.donation_categoryqualifier', string='Category', tracking=True, | |||||
required=True) | |||||
class donation_partnerqualifier(models.Model): | |||||
_name = 'donation_qualifier.donation_partnerqualifier' | |||||
_description = 'qualificatifs pour stocker les valeurs au niveau du contact' | |||||
# partner_id=fields.Many2one('res.partner',compute='compute_partner', inverse='partner_inverse') | |||||
# partner_ids = fields.One2many('res.partner', 'qualifier_id') | |||||
value=fields.Char() | |||||
qualifier_id=fields.Many2one('donation_qualifier.donation_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.') | |||||
# _sql_constraints = [ | |||||
# ('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !') | |||||
# ] | |||||
# def validate(self): | |||||
# raise UserError(_( | |||||
# 'This qualifier %s can\'t be used twice') | |||||
# % donation_partnerqualifier.qualifier_id.name) | |||||
# for donation_partnerqualifier in self: | |||||
# vals={} | |||||
# if self.env['donation_qualifier.donation_qualifier'].search([('name','=',donation_partnerqualifier.qualifier_id.name)]): | |||||
# raise UserError(_( | |||||
# 'This qualifier %s can\'t be used twice') | |||||
# % donation_partnerqualifier.qualifier_id.name) | |||||
# vals['value']=donation_partnerqualifier.value | |||||
# vals['partner_id']=donation_partnerqualifier.partner_id | |||||
# vals['qualifier_id']=donation_partnerqualifier.qualifier_id | |||||
# donation_partnerqualifier.write(vals) | |||||
# return | |||||
# @api.depends('contact_ids') | |||||
# def compute_partner(self): | |||||
# if len(self.partner_ids) > 0: | |||||
# self.partner_id = self.partner_ids[0] | |||||
# def partner_inverse(self): | |||||
# if len(self.partner_ids) > 0: | |||||
# # delete previous reference | |||||
# partner = self.env['res.partner'].browse(self.partner_ids[0].id) | |||||
# partner.qualifier_id = False | |||||
# # set new reference | |||||
# self.partner_id.qualifier_id = self | |||||
class partner(models.Model): | |||||
_inherit = 'res.partner' | |||||
@api.depends('qualifier_ids.partner_id') | |||||
def _compute_qualifier_count(self): | |||||
# The current user may not have access rights for donations | |||||
for partner in self: | |||||
try: | |||||
partner.qualifier_count = len(partner.qualifier_ids) | |||||
except Exception: | |||||
partner.qualifier_count = 0 | |||||
qualifier_ids = fields.One2many( | |||||
'donation_qualifier.donation_partnerqualifier', | |||||
'partner_id', | |||||
string='Qualifier', | |||||
readonly=True | |||||
) | |||||
qualifier_count = fields.Integer( | |||||
compute='_compute_qualifier_count', | |||||
string="# of Qualifiers", | |||||
readonly=True | |||||
) |
@ -1,4 +1,6 @@ | |||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink | ||||
access_donation_qualifier_donation_qualifier,donation_qualifier.donation_qualifier,model_donation_qualifier_donation_qualifier,donation_main.group_donation_manager,1,1,1,1 | |||||
access_donation_qualifier_donation_categoryqualifier,donation_qualifier.donation_categoryqualifier,model_donation_qualifier_donation_categoryqualifier,donation_main.group_donation_manager,1,1,1,1 | |||||
access_donation_qualifier_donation_partnerqualifier,donation_qualifier.donation_partnerqualifier,model_donation_qualifier_donation_partnerqualifier,donation_main.group_donation_manager,1,1,1,1 | |||||
access_opendons_qualifier_qualifier,opendons_qualifier.qualifier,model_opendons_qualifier_qualifier,donation_main.group_donation_manager,1,1,1,1 | |||||
access_opendons_qualifier_category,opendons_qualifier.category,model_opendons_qualifier_category,donation_main.group_donation_manager,1,1,1,1 | |||||
access_opendons_qualifier_partnerqualifier,opendons_qualifier.partnerqualifier,model_opendons_qualifier_partnerqualifier,donation_main.group_donation_manager,1,1,1,1 | |||||
access_opendons_partneraddress,opendons.partneraddress,model_opendons_partneraddress,donation_main.group_donation_manager,1,1,1,1 | |||||
access_opendons_operations,opendons.operations,model_opendons_operation,donation_main.group_donation_manager,1,1,1,1 |
@ -1,145 +0,0 @@ | |||||
<odoo> | |||||
<data> | |||||
<!-- explicit list view definition --> | |||||
<record model="ir.ui.view" id="donation_qualifier.category_list"> | |||||
<field name="name">donation_categoryQualifier list</field> | |||||
<field name="model">donation_qualifier.donation_categoryqualifier</field> | |||||
<field name="arch" type="xml"> | |||||
<tree> | |||||
<field name="name"/> | |||||
<field name="description"/> | |||||
<field name="order"/> | |||||
</tree> | |||||
</field> | |||||
</record> | |||||
<record model="ir.ui.view" id="donation_qualifier.qualifier_list"> | |||||
<field name="name">donation_qualifier list</field> | |||||
<field name="model">donation_qualifier.donation_qualifier</field> | |||||
<field name="arch" type="xml"> | |||||
<tree> | |||||
<field name="name"/> | |||||
<field name="category_id"/> | |||||
<field name="type"/> | |||||
<field name="default_value"/> | |||||
<field name="description"/> | |||||
</tree> | |||||
</field> | |||||
</record> | |||||
<record model="ir.ui.view" id="donation_qualifier.partnerqualifier_list"> | |||||
<field name="name">donation_partnerqualifier list</field> | |||||
<field name="model">donation_qualifier.donation_partnerqualifier</field> | |||||
<field name="arch" type="xml"> | |||||
<tree> | |||||
<field name="category" string="category"/> | |||||
<field name="qualifier_id"/> | |||||
<field name="value"/> | |||||
</tree> | |||||
</field> | |||||
</record> | |||||
<record id="donation_qualifier.partnerqualifier_search" model="ir.ui.view"> | |||||
<field name="name">donation_partnerqualifier.search</field> | |||||
<field name="model">donation_qualifier.donation_partnerqualifier</field> | |||||
<field name="arch" type="xml"> | |||||
<search string="Search Qualifiers"> | |||||
<field name="partner_id"/> | |||||
</search> | |||||
</field> | |||||
</record> | |||||
<record model="ir.ui.view" id="donation_qualifier.partnerqualifier_form" > | |||||
<field name="name">donation_partnerqualifier Form</field> | |||||
<field name="model">donation_qualifier.donation_partnerqualifier</field> | |||||
<field name="arch" type="xml"> | |||||
<form string="partnerqualifier_form"> | |||||
<sheet> | |||||
<label for="partner_id" string="Partner"/> | |||||
<field name="partner_id"/> | |||||
<br/> | |||||
<label for="qualifier_id" string="Qualifier"/> | |||||
<field name="qualifier_id"/> | |||||
<br/> | |||||
<label for="value" string="value"/> | |||||
<field name="value"/> | |||||
</sheet> | |||||
</form> | |||||
</field> | |||||
</record> | |||||
<!-- actions opening views on models --> | |||||
<record model="ir.actions.act_window" id="category_action"> | |||||
<field name="name">categories</field> | |||||
<field name="res_model">donation_qualifier.donation_categoryqualifier</field> | |||||
<field name="view_mode">tree,form</field> | |||||
</record> | |||||
<record model="ir.actions.act_window" id="qualifier_action"> | |||||
<field name="name">qualifiers</field> | |||||
<field name="res_model">donation_qualifier.donation_qualifier</field> | |||||
<field name="view_mode">tree,form</field> | |||||
</record> | |||||
<record model="ir.actions.act_window" id="partnerqualifier_action"> | |||||
<field name="name">partnerqualifiers</field> | |||||
<field name="res_model">donation_qualifier.donation_partnerqualifier</field> | |||||
<field name="view_mode">tree,form</field> | |||||
</record> | |||||
<!-- server action to the one above --> | |||||
<!-- | |||||
<record model="ir.actions.server" id="donation_qualifier.action_server"> | |||||
<field name="name">donation_qualifier server</field> | |||||
<field name="model_id" ref="model_donation_qualifier_donation_qualifier"/> | |||||
<field name="state">code</field> | |||||
<field name="code"> | |||||
action = { | |||||
"type": "ir.actions.act_window", | |||||
"view_mode": "tree,form", | |||||
"res_model": model._name, | |||||
} | |||||
</field> | |||||
</record> | |||||
--> | |||||
<!-- Top menu item --> | |||||
<!-- <menuitem name="donation_qualifier" id="donation_qualifier.menu_root" parent="contacts.menu_contacts"/> --> | |||||
<menuitem id="donation_qualifier_title_menu" name ="Qualifiers" | |||||
parent="donation_main.donation_top_menu" sequence="21"/> | |||||
<menuitem id="donation_qualifier_menu" action="qualifier_action" | |||||
parent="donation_qualifier_title_menu" sequence="1"/> | |||||
<menuitem id="donation_categoryqualifier_menu" action="category_action" | |||||
parent="donation_qualifier_title_menu" sequence="2"/> | |||||
<!-- entries menu --> | |||||
<!-- <menuitem name="categories" id="donation_qualifier.category" parent="donation_qualifier_menu" action="donation_qualifier.category_action_window"/> | |||||
<menuitem name="qualifiers" id="donation_qualifier.qualifier" parent="donation_qualifier_menu" action="donation_qualifier.qualifier_action_window"/> --> | |||||
<!-- actions --> | |||||
<!-- <menuitem name="List" id="donation_qualifier.menu_1_list" parent="donation_qualifier.menu_1" | |||||
action="donation_qualifier.action_window"/> --> | |||||
<!-- <menuitem name="Server to list" id="donation_qualifier" parent="donation_qualifier.menu_2" | |||||
action="donation_qualifier.action_server"/> --> | |||||
</data> | |||||
</odoo> |