[IMP] convert button into stat button for customer

bzr revid: rma@tinyerp.com-20140320134414-mk1ie8okynrtudsq
This commit is contained in:
Randhir Mayatra rma-openerp 2014-03-20 19:14:14 +05:30
parent df53c3f970
commit b51066b500
7 changed files with 50 additions and 16 deletions

View File

@ -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(

View File

@ -74,8 +74,10 @@
<button type="action" class="oe_stat_button" name="%(account.action_account_moves_all_tree)d" groups="account.group_account_user" icon="fa-book">
<field string="Journal Items" name="journal_item_count" widget="statinfo"/>
</button>
<button type="action" string="Contracts" name="%(account.action_open_partner_analytic_accounts)d"
groups="analytic.group_analytic_accounting"/>
<button class="oe_inline oe_stat_button" type="action" name="%(account.action_open_partner_analytic_accounts)d"
icon="fa-book" groups="analytic.group_analytic_accounting">
<field string="Contracts" name="cotracts_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>

View File

@ -22,11 +22,20 @@
from openerp.osv import fields,osv
class res_partner(osv.osv):
def _task_count(self, cr, uid, ids, field_name, arg, context=None):
res = dict(map(lambda x: (x,0), ids))
try:
for partner in self.browse(cr, uid, ids, context):
res[partner.id] = len(partner.task_ids)
except:
pass
return res
""" Inherits partner and adds Tasks information in the partner form """
_inherit = 'res.partner'
_columns = {
'task_ids': fields.one2many('project.task', 'partner_id', 'Tasks'),
'task_count': fields.function(_task_count, string='# Tasks', type='integer'),
}
def copy(self, cr, uid, record_id, default=None, context=None):

View File

@ -10,11 +10,13 @@
<field name="priority" eval="50"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
<button class="oe_inline" type="action"
name="%(action_view_task)d"
string="Tasks"
<button class="oe_inline oe_stat_button" type="action" name="%(action_view_task)d"
context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}"
groups="project.group_project_user" />
icon="fa-tasks" groups="project.group_project_user">
<field string="Tasks" name="task_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>

View File

@ -569,5 +569,20 @@ class project_project(osv.Model):
self._check_create_write_values(cr, uid, vals, context=context)
return super(project_project, self).write(cr, uid, ids, vals, context=context)
class res_partner(osv.osv):
def _issue_count(self, cr, uid, ids, field_name, arg, context=None):
res = dict(map(lambda x: (x,0), ids))
try:
for partner in self.browse(cr, uid, ids, context):
res[partner.id] = len(partner.issue_ids)
except:
pass
return res
""" Inherits partner and adds Tasks information in the partner form """
_inherit = 'res.partner'
_columns = {
'issue_ids': fields.one2many('project.issue', 'partner_id', 'Issues'),
'issue_count': fields.function(_issue_count, string='# Issues', type='integer'),
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -378,11 +378,14 @@
<field name="priority" eval="50"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
<button class="oe_inline" type="action" string="Issues"
attrs="{'invisible': [('customer', '=', False)]}"
name="%(action_view_issues)d"
<button class="oe_inline oe_stat_button" type="action" name="%(action_view_issues)d"
context="{'search_default_partner_id': active_id, 'default_partner_id': active_id}"
groups="project.group_project_user"/>
attrs="{'invisible': [('customer', '=', False)]}"
icon="fa-bug" groups="project.group_project_user">
<field string="Issues" name="issue_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>

View File

@ -48,10 +48,11 @@
<field name="priority" eval="20"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='buttons']" position="inside">
<button name="%(sale.act_res_partner_2_sale_order)d" type="action"
string="Quotations and Sales"
<button class="oe_inline oe_stat_button" type="action" name="%(sale.act_res_partner_2_sale_order)d"
attrs="{'invisible': [('customer', '=', False)]}"
groups="base.group_sale_salesman"/>
icon="fa-strikethrough" groups="base.group_sale_salesman">
<field string="Quot. and Sales" name="sale_order_count" widget="statinfo"/>
</button>
</xpath>
</field>
</record>