diff --git a/addons/account/partner.py b/addons/account/partner.py index 0c3395de1b2..6ae83368143 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -163,13 +163,14 @@ class res_partner(osv.osv): return self._asset_difference_search(cr, uid, obj, name, 'payable', args, context=context) def _invoice_journal_item_count(self, cr, uid, ids, field_name, arg, context=None): - res = dict(map(lambda x: (x,{'invoice_count': 0, 'journal_item_count': 0}), ids)) + res = dict(map(lambda x: (x,{'invoice_count': 0, 'journal_item_count': 0, 'cotracts_count': 0 }), ids)) # the user may not have access rights try: for partner in self.browse(cr, uid, ids, context): res[partner.id] = { 'invoice_count': len(partner.invoice_ids), 'journal_item_count': len(partner.journal_item_ids), + 'cotracts_count': len(partner.contract_ids) } except: pass @@ -204,6 +205,7 @@ class res_partner(osv.osv): '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'), 'invoice_count': fields.function(_invoice_journal_item_count, string="Invoices", type='integer', multi="invoice_journal"), + 'cotracts_count': fields.function(_invoice_journal_item_count, string="Contracts", type='integer', multi="invoice_journal"), 'journal_item_ids': fields.one2many('account.move.line', 'partner_id', 'Journal Items'), 'journal_item_count': fields.function(_invoice_journal_item_count, string="Journal Items", type="integer", multi="invoice_journal"), 'property_account_payable': fields.property( diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index b64f2a4f88c..402337204ae 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -71,11 +71,13 @@ context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" groups="account.group_account_invoice"> - - diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py index 563a6a3eb9a..1faf75d5eee 100644 --- a/addons/account_analytic_default/account_analytic_default.py +++ b/addons/account_analytic_default/account_analytic_default.py @@ -114,6 +114,19 @@ class sale_order_line(osv.osv): if rec: inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id': rec.analytic_id.id}, context=context) return create_ids - +class product_product(osv.Model): + _inherit = 'product.product' + def _rules_count(self, cr, uid, ids, field_name, arg, context=None): + res = dict(map(lambda x: (x,0), ids)) + try: + for rule in self.browse(cr, uid, ids, context=context): + res[rule.id] = len(rule.rules_ids) + except: + pass + return res + _columns = { + 'rules_ids': fields.one2many('account.analytic.default', 'product_id', 'Analytic Rules '), + 'rules_count': fields.function(_rules_count, string='# Analytic Rules', type='integer'), + } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml index 8ff323e45c7..38f51a9ef20 100644 --- a/addons/account_analytic_default/account_analytic_default_view.xml +++ b/addons/account_analytic_default/account_analytic_default_view.xml @@ -80,7 +80,10 @@ - diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index f4e5d17a8e0..6552281e4c2 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -237,9 +237,17 @@ class account_asset_asset(osv.osv): if salvage_value: val['value_residual'] = purchase_value - salvage_value return {'value': val} - + def _entry_count(self, cr, uid, ids, field_name, arg, context=None): + res = dict(map(lambda x: (x,0), ids)) + try: + for entry in self.browse(cr, uid, ids, context=context): + res[entry.id] = len(entry.account_move_line_ids) + except: + pass + return res _columns = { 'account_move_line_ids': fields.one2many('account.move.line', 'asset_id', 'Entries', readonly=True, states={'draft':[('readonly',False)]}), + 'entry_count': fields.function(_entry_count, string='# Asset Entries', type='integer'), 'name': fields.char('Asset Name', size=64, required=True, readonly=True, states={'draft':[('readonly',False)]}), 'code': fields.char('Reference', size=32, readonly=True, states={'draft':[('readonly',False)]}), 'purchase_value': fields.float('Gross Value', required=True, readonly=True, states={'draft':[('readonly',False)]}), diff --git a/addons/account_asset/account_asset_view.xml b/addons/account_asset/account_asset_view.xml index fe1fcf473ba..b0a5deacfcb 100644 --- a/addons/account_asset/account_asset_view.xml +++ b/addons/account_asset/account_asset_view.xml @@ -84,7 +84,9 @@
-

The , the latest payment follow-up was: diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml index e49d6dfe93b..d62a7969754 100644 --- a/addons/account_payment/account_payment_view.xml +++ b/addons/account_payment/account_payment_view.xml @@ -69,14 +69,14 @@ -

-
+
+
@@ -292,7 +292,7 @@ - - diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 9dfe22202ec..f3ce3ace549 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -214,7 +214,14 @@ class crm_lead(format_address, osv.osv): duration = len(no_days) res[lead.id][field] = abs(int(duration)) return res - + def _meeting_count(self, cr, uid, ids, field_name, arg, context=None): + res = dict(map(lambda x: (x,0), ids)) + try: + for meeting in self.browse(cr, uid, ids, context=context): + res[meeting.id] = len(meeting.opportunity_ids) + except: + pass + return res _columns = { 'partner_id': fields.many2one('res.partner', 'Partner', ondelete='set null', track_visibility='onchange', select=True, help="Linked partner (optional). Usually created when converting the lead."), @@ -289,6 +296,8 @@ class crm_lead(format_address, osv.osv): 'payment_mode': fields.many2one('crm.payment.mode', 'Payment Mode', \ domain="[('section_id','=',section_id)]"), 'planned_cost': fields.float('Planned Costs'), + 'opportunity_ids': fields.one2many('calendar.event', 'opportunity_id', 'Opportunities'), + 'meeting_count': fields.function(_meeting_count, string='# Meetings', type='integer'), } _defaults = { diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index a33b215fb8f..beed7ba5c97 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -103,9 +103,8 @@
-