From b7bc8b3aa45b66245c1b65461543d8c4f4fed46e Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Wed, 12 Mar 2014 14:23:47 +0100 Subject: [PATCH 01/65] [IMP] change the partner form view to display new stat button information in addon account/crm bzr revid: ged@openerp.com-20140312132347-dyu1i3szlh9r7jq9 --- addons/account/account_invoice.py | 2 +- addons/account/partner.py | 21 +++++++++++++++++++++ addons/account/partner_view.xml | 11 ++++++++--- addons/crm/res_partner.py | 18 +++++++++++++++++- addons/crm/res_partner_view.xml | 22 +++++++++++++++------- 5 files changed, 62 insertions(+), 12 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 06e59232ac9..5a0e1411fe8 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1801,7 +1801,7 @@ class res_partner(osv.osv): """ Inherits partner and adds invoice information in the partner form """ _inherit = 'res.partner' _columns = { - 'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices', readonly=True), + 'invoice_ids': fields.one2many('account.invoice', 'partner_id', 'Invoices', readonly=True), } def _find_accounting_partner(self, partner): diff --git a/addons/account/partner.py b/addons/account/partner.py index f24ffcf55b4..d3777683f6f 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -162,6 +162,24 @@ class res_partner(osv.osv): def _debit_search(self, cr, uid, obj, name, args, context=None): return self._asset_difference_search(cr, uid, obj, name, 'payable', args, context=context) + def _invoices_stat_button(self, cr, uid, ids, field_name, arg, context=None): + res = {} + obj = self.pool.get('account.invoice') + for partner in self.browse(cr, uid, ids, context): + domain = [('id', 'in', map(int, partner.invoice_ids))] + group_obj = obj.read_group(cr, uid, domain, ['amount_total'], [''], context=context) + total = group_obj[0]['amount_total'] + res[partner.id] = """ +
%s invoices
+
Total: %s
+ """ % (len(partner.invoice_ids), total) + return res + + def _journal_items_stat_button(self, cr, uid, ids, field_name, arg, context=None): + html = "
%s Journal Items
" + return {partner.id: html % len(partner.journal_items_ids) for partner in self.browse(cr, uid, ids, context)} + res = {} + def has_something_to_reconcile(self, cr, uid, partner_id, context=None): ''' at least a debit, a credit and a line older than the last reconciliation date of the partner @@ -190,6 +208,9 @@ class res_partner(osv.osv): fnct_search=_credit_search, string='Total Receivable', multi='dc', help="Total amount this customer owes you."), 'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."), 'debit_limit': fields.float('Payable Limit'), + 'invoices_stat_button': fields.function(_invoices_stat_button, string="Invoices", type='html'), + 'journal_items_ids': fields.one2many('account.move.line', 'partner_id', 'Journal Items'), + 'journal_items_stat_button': fields.function(_journal_items_stat_button, string='Journal Items', type='html'), 'property_account_payable': fields.property( type='many2one', relation='account.account', diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index 6a58bc7f77e..448a093570f 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -64,10 +64,15 @@ - + + + From aac67e8bc528ea9c7bc771428bba952c984bf8ab Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Mon, 17 Mar 2014 16:28:28 +0100 Subject: [PATCH 05/65] [IMP] removes the testing field testpercent in res.partner and improves the way the buttons are displayed in form view (addon account) bzr revid: ged@openerp.com-20140317152828-v2den23s32kzaqxh --- addons/account/partner.py | 21 +++------------------ addons/account/partner_view.xml | 4 ++-- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/addons/account/partner.py b/addons/account/partner.py index cad285def84..b0092e5403a 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -21,7 +21,6 @@ from operator import itemgetter import time -import random from openerp.osv import fields, osv @@ -163,21 +162,8 @@ class res_partner(osv.osv): def _debit_search(self, cr, uid, obj, name, args, context=None): return self._asset_difference_search(cr, uid, obj, name, 'payable', args, context=context) - def _invoices_stat_button(self, cr, uid, ids, field_name, arg, context=None): - res = {} - obj = self.pool.get('account.invoice') - for partner in self.browse(cr, uid, ids, context): - domain = [('id', 'in', map(int, partner.invoice_ids))] - group_obj = obj.read_group(cr, uid, domain, ['amount_total'], [''], context=context) - total = group_obj[0]['amount_total'] or 0 - res[partner.id] = """ -
%s Invoices
-
Total: %s
- """ % (len(partner.invoice_ids), total) - return res - - def _test_percent(self, cr, uid, ids, field_name, arg, context=None): - return {partner.id: random.random()*100 for partner in self.browse(cr, uid, ids, context)} + def _invoice_count(self, cr, uid, ids, field_name, arg, context=None): + return {partner.id: len(partner.invoice_ids) for partner in self.browse(cr, uid, ids, context)} def _journal_item_count(self, cr, uid, ids, field_name, arg, context=None): return {partner.id: len(partner.journal_items_ids) for partner in self.browse(cr, uid, ids, context)} @@ -210,8 +196,7 @@ class res_partner(osv.osv): fnct_search=_credit_search, string='Total Receivable', multi='dc', help="Total amount this customer owes you."), 'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."), 'debit_limit': fields.float('Payable Limit'), - 'invoices_stat_button': fields.function(_invoices_stat_button, string="Invoices", type='html'), - 'testpercent': fields.function(_test_percent, string="TestPercent", type='float'), + 'invoice_count': fields.function(_invoice_count, string="Invoices", type='html'), 'journal_items_ids': fields.one2many('account.move.line', 'partner_id', 'Journal Items'), 'journal_item_count': fields.function(_journal_item_count, string="Journal Items", type="integer"), 'property_account_payable': fields.property( diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index 472e14a806f..b64f2a4f88c 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -66,10 +66,10 @@ + @@ -238,7 +243,7 @@ - + diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 6f072f5abd1..69ceb7839ca 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -490,22 +490,27 @@ class project(osv.Model): def _get_alias_models(self, cr, uid, context=None): return [('project.task', "Tasks"), ("project.issue", "Issues")] - def _issue_count(self, cr, uid, ids, field_name, arg, context=None): - """ :deprecated: this method will be removed with OpenERP v8. Use issue_ids - fields instead. """ - res = dict.fromkeys(ids, 0) - issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)]) - for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context): - if issue.stage_id and not issue.stage_id.fold: - res[issue.project_id.id] += 1 +# def _issue_count(self, cr, uid, ids, field_name, arg, context=None): +# """ :deprecated: this method will be removed with OpenERP v8. Use issue_ids +# fields instead. """ +# res = dict.fromkeys(ids, 0) +# issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)]) +# for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context): +# if issue.stage_id and not issue.stage_id.fold: +# res[issue.project_id.id] += 1 +# return res + def _total_issue_count(self, cr, uid, ids, field_name, arg, context=None): + res={} + for issues in self.browse(cr, uid, ids, context): + res[issues.id] = len(issues.issue_ids) return res - _columns = { 'project_escalation_id': fields.many2one('project.project', 'Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}), - 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues", - deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."), +# 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues", +# deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."), + 'total_issue_count': fields.function(_total_issue_count, string="Issue", type='integer'), 'issue_ids': fields.one2many('project.issue', 'project_id', domain=[('stage_id.fold', '=', False)]) } diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 3af9ee608d6..2b2c48519f9 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -306,7 +306,10 @@ - {'invisible': [('use_tasks', '=', False),('use_issues','=',False)]} diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 36fb83000ce..d6b118eb323 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -102,9 +102,10 @@ -
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 548264eb07b..a51c7976602 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -30,7 +30,10 @@