from odoo import models, fields, api from odoo.exceptions import UserError, ValidationError from psycopg2 import sql, DatabaseError from werkzeug import utils 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 def _compute_address_count(self): # The current user may not have access rights for donations for partner in self: try: partner.address_count = len(partner.address_ids) except Exception: partner.address_count = 0 def _compute_email_count(self): # The current user may not have access rights for donations for partner in self: try: partner.email_count = len(partner.email_ids) except Exception: partner.email_count = 0 def _compute_phone_count(self): # The current user may not have access rights for donations for partner in self: try: partner.phone_count = len(partner.phone_ids) except Exception: partner.phone_count = 0 def _compute_relationshipPartner_count(self): # The current user may not have access rights for donations for partner in self: try: partner.relationshipPartner_count = len(partner.relationshipPartner_ids) except Exception: partner.relationshipPartner_count = 0 def _compute_recurring_donation_count(self): # The current user may not have access rights for donations for partner in self: try: partner.recurring_donation_count=self.env['donation.donation'].search_count(['&',('recurring_template','!=',''),('partner_id','=',int(partner.id))]) except Exception: partner.recurring_donation_count = 0 qualifier_ids = fields.One2many( 'opendons_qualifier.partnerqualifier', 'partner_id', string='Qualifier', readonly=True ) qualifier_count = fields.Integer( compute='_compute_qualifier_count', string="# of Qualifiers", readonly=True ) address_ids = fields.One2many( 'opendons.partneraddress', 'partner_id', string='Address', readonly=True ) # request_ids = fields.One2many( # 'opendons.request', # 'partner_ids', # string='Request', # readonly=True # ) request_ids = fields.Many2many('opendons.request', 'request_partner_rel', 'partner_id', 'request_id', string='requests') operation_ids = fields.Many2many('opendons.operation', 'operation_partner_rel', 'partner_id', 'operation_id', string='operations') operation_excl_ids = fields.Many2many('opendons.operation', 'operation_excl_partner_rel', 'partner_id', 'operation_id', string='excluded operations') segment_ids = fields.Many2many('opendons.segment', 'segment_partner_rel', 'partner_id', 'segment_id', string='segments') address_count = fields.Integer( compute='_compute_address_count', string="# of Addresses", readonly=True ) relationshipPartner_ids = fields.One2many( 'opendons_relationship.partner', 'partner_id', string='Relationship', readonly=True ) relationshipPartner_count = fields.Integer( compute='_compute_relationshipPartner_count', string="# of Relationship", readonly=True ) email_ids = fields.One2many( 'opendons.partneremail', 'partner_id', string='Email', readonly=True ) email_count = fields.Integer( compute='_compute_email_count', string="# of email", readonly=True ) phone_ids = fields.One2many( 'opendons.partnerphone', 'partner_id', string='Phone', readonly=True ) phone_count = fields.Integer( compute='_compute_phone_count', string="# of phone", readonly=True ) recurring_donation_count = fields.Integer( compute='_compute_recurring_donation_count', string="# of recurring donation", readonly=True ) key=fields.Integer( compute='_compute_key', string="Key", store=True ) firstname=fields.Char(string="First name") npai_count=fields.Integer(String="NPAI count", readonly=True) def _compute_key(self): for rec in self: rec.key=int(rec.id)*40456 @api.onchange('street') def _onchange_street(self): for rec in self: rec.npai_count=0 return