diff --git a/addons/analytic_partners/report/analytic_account_partners.rml b/addons/analytic_partners/report/analytic_account_partners.rml index 89981652517..7931292989e 100644 --- a/addons/analytic_partners/report/analytic_account_partners.rml +++ b/addons/analytic_partners/report/analytic_account_partners.rml @@ -44,6 +44,8 @@ + + @@ -107,12 +109,13 @@ Address - Inforrmation + Information [[ repeatIn(p.address, 'a') ]] [[ a.name ]] + [[ a.function ]] [[ a.street ]] [[ a.street2 ]] @@ -123,6 +126,7 @@ Tel : [[ a.phone ]] Fax : [[ a.fax ]] Mobile : [[ a.mobile ]] + Mail : [[ a.email ]] diff --git a/addons/analytic_partners/report/analytic_partners_report.py b/addons/analytic_partners/report/analytic_partners_report.py index 0d70cad9c87..7a154ab2b49 100644 --- a/addons/analytic_partners/report/analytic_partners_report.py +++ b/addons/analytic_partners/report/analytic_partners_report.py @@ -3,19 +3,27 @@ import time from report import report_sxw class analytic_partners_report(report_sxw.rml_parse): - # o must be an instance of analytic_partners_account_analytic_account. - # contacts_by_partners_by_account returns a list of categories. Each - # category contains a list of partner names, each partner name contains - # a list of partner contacts. This list reflects the selected partners - # contacts for the selected analytic account. - def contacts_by_partners_by_categories(self, o): - categs = {} - + # o must be an instance of + # analytic_partners_account_analytic_account. + def _init_dict(self, o): + self.partners_by_account.clear() + for a in o.address_ids: + p = a.partner_id + for c in p.category_id: + self.partners_by_account.setdefault(c.name, []).append(a) + if not p.category_id: + self.partners_by_account.setdefault('Non classifie', []).append(a) + + def __init__(self, cr, uid, name, context): + # self.partners_by_account is a dictionnary where keys are category + # names and values are lists of partner_id. + self.partners_by_account={} super(analytic_partners_report, self).__init__(cr, uid, name, context) self.localcontext.update( { 'time' : time, - 'contacts_by_partners_by_categories' : self.contacts_by_partners_by_categories, + '_init_dict' : self._init_dict, + 'partners_by_account' : self.partners_by_account, } ) report_sxw.report_sxw(