[REF] Achieved the same result with a sorting to avoid having to add a field in stable release
This commit is contained in:
parent
2ece5f9c4c
commit
a6b9269398
|
@ -54,20 +54,22 @@ class res_partner_activation(osv.osv):
|
|||
class res_partner(osv.osv):
|
||||
_inherit = "res.partner"
|
||||
|
||||
def _get_implemented_count(self, cr, uid, ids, field_name, arg, context):
|
||||
res = dict.fromkeys(ids, 0)
|
||||
for partner in self.browse(cr, uid, ids, context=context):
|
||||
res[partner.id] = len(partner.implemented_partner_ids)
|
||||
return res
|
||||
# uncomment me in trunk
|
||||
# def _get_implemented_count(self, cr, uid, ids, field_name, arg, context):
|
||||
# res = dict.fromkeys(ids, 0)
|
||||
# for partner in self.browse(cr, uid, ids, context=context):
|
||||
# res[partner.id] = len(partner.implemented_partner_ids)
|
||||
# return res
|
||||
|
||||
def _get_partner_from_implementation(self, cr, uid, ids, context=None):
|
||||
pids = set()
|
||||
for partner in self.browse(cr, uid, ids, context=context):
|
||||
pids.add(partner.id)
|
||||
if partner.assigned_partner_id:
|
||||
pids.add(partner.assigned_partner_id.id)
|
||||
pids = pids | set([p.id for p in partner.implemented_partner_ids])
|
||||
return list(pids)
|
||||
# uncomment me in trunk
|
||||
# def _get_partner_from_implementation(self, cr, uid, ids, context=None):
|
||||
# pids = set()
|
||||
# for partner in self.browse(cr, uid, ids, context=context):
|
||||
# pids.add(partner.id)
|
||||
# if partner.assigned_partner_id:
|
||||
# pids.add(partner.assigned_partner_id.id)
|
||||
# pids = pids | set([p.id for p in partner.implemented_partner_ids])
|
||||
# return list(pids)
|
||||
|
||||
_columns = {
|
||||
'partner_weight': fields.integer('Grade Weight',
|
||||
|
@ -87,11 +89,12 @@ class res_partner(osv.osv):
|
|||
'res.partner', 'assigned_partner_id',
|
||||
string='Implementation References',
|
||||
),
|
||||
'implemented_count': fields.function(
|
||||
_get_implemented_count, string="Implementations", type='integer',
|
||||
store={
|
||||
'res.partner': (_get_partner_from_implementation, ['assigned_partner_id', 'implemented_partner_ids'], 10),
|
||||
}),
|
||||
# uncomment me in trunk
|
||||
# 'implemented_count': fields.function(
|
||||
# _get_implemented_count, string="Implementations", type='integer',
|
||||
# store={
|
||||
# 'res.partner': (_get_partner_from_implementation, ['assigned_partner_id', 'implemented_partner_ids'], 10),
|
||||
# }),
|
||||
}
|
||||
_defaults = {
|
||||
'partner_weight': lambda *args: 0
|
||||
|
|
|
@ -100,11 +100,14 @@ class WebsiteCrmPartnerAssign(http.Controller):
|
|||
# search partners matching current search parameters
|
||||
partner_ids = partner_obj.search(
|
||||
request.cr, SUPERUSER_ID, base_partner_domain,
|
||||
offset=pager['offset'], limit=self._references_per_page,
|
||||
order="grade_id DESC, implemented_count DESC",
|
||||
context=request.context)
|
||||
google_map_partner_ids = ','.join(map(str, partner_ids))
|
||||
order="grade_id DESC",
|
||||
context=request.context) # todo in trunk: order="grade_id DESC, implemented_count DESC", offset=pager['offset'], limit=self._references_per_page
|
||||
partners = partner_obj.browse(request.cr, SUPERUSER_ID, partner_ids, request.context)
|
||||
# remove me in trunk
|
||||
partners.sort(key=lambda x: (-1 * (x.grade_id and x.grade_id.id or 0), len(x.implemented_partner_ids)), reverse=True)
|
||||
partners = partners[pager['offset']:pager['offset'] + self._references_per_page]
|
||||
|
||||
google_map_partner_ids = ','.join(map(str, [p.id for p in partners]))
|
||||
|
||||
values = {
|
||||
'countries': countries,
|
||||
|
|
|
@ -94,9 +94,9 @@
|
|||
<span t-field="partner.display_name"/>
|
||||
</a>
|
||||
<div t-field="partner.website_short_description"/>
|
||||
<t t-if="partner.implemented_count">
|
||||
<t t-if="any([p.website_published for p in partner.implemented_partner_ids])">
|
||||
<small><a t-attf-href="/partners/#{slug(partner)}#right_column">
|
||||
<t t-raw="partner.implemented_count"/> reference(s)
|
||||
<t t-raw="len([p for p in partner.implemented_partner_ids if p.website_published])"/> reference(s)
|
||||
</a></small>
|
||||
</t>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue