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.
 
 

154 lines
4.5 KiB

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')
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