[IMP]: marketing_campaign: Improvement in search view of Followup(workitem), Implemented fnct_search for searching according to resource name
bzr revid: rpa@tinyerp.com-20100826093540-zsl9j873iyqek52c
This commit is contained in:
parent
61e69ce7cc
commit
4c849ee4d6
|
@ -549,6 +549,33 @@ class marketing_campaign_workitem(osv.osv):
|
|||
res[wi.id] = ng[0][1]
|
||||
return res
|
||||
|
||||
def _resource_search(self, cr, uid, obj, name, args, domain=None, context=None):
|
||||
"""Returns id of workitem whose resource_name matches with the given name"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not len(args):
|
||||
return []
|
||||
|
||||
condition = []
|
||||
final_ids = []
|
||||
|
||||
cr.execute("""select w.id, w.res_id, m.model \
|
||||
from marketing_campaign_workitem w \
|
||||
left join marketing_campaign_activity a on (a.id=w.activity_id)\
|
||||
left join marketing_campaign c on (c.id=a.campaign_id)\
|
||||
left join ir_model m on (m.id=c.object_id)
|
||||
""")
|
||||
res = cr.fetchall()
|
||||
for id, res_id, model in res:
|
||||
model_pool = self.pool.get(model)
|
||||
for arg in args:
|
||||
if arg[1] == 'ilike':
|
||||
condition.append((model_pool._rec_name, 'ilike', arg[2]))
|
||||
res_ids = model_pool.search(cr, uid, condition, context=context)
|
||||
if res_id in res_ids:
|
||||
final_ids.append(id)
|
||||
return [('id', 'in', final_ids)]
|
||||
|
||||
_columns = {
|
||||
'segment_id': fields.many2one('marketing.campaign.segment', 'Segment', readonly=True),
|
||||
'activity_id': fields.many2one('marketing.campaign.activity','Activity',
|
||||
|
@ -556,9 +583,9 @@ class marketing_campaign_workitem(osv.osv):
|
|||
'campaign_id': fields.related('activity_id', 'campaign_id',
|
||||
type='many2one', relation='marketing.campaign', string='Campaign', readonly=True),
|
||||
'object_id': fields.related('activity_id', 'campaign_id', 'object_id',
|
||||
type='many2one', relation='ir.model', string='Ressource', select=1, readonly=True),
|
||||
type='many2one', relation='ir.model', string='Resource', select=1, readonly=True),
|
||||
'res_id': fields.integer('Resource ID', select=1, readonly=True),
|
||||
'res_name': fields.function(_res_name_get, method=True, string='Resource Name', type="char", size=64),
|
||||
'res_name': fields.function(_res_name_get, method=True, string='Resource Name', fnct_search=_resource_search, type="char", size=64),
|
||||
'date': fields.datetime('Execution Date', help='If date is not set, this workitem has to be run manually', readonly=True),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner', select=1, readonly=True),
|
||||
'state': fields.selection([('todo', 'To Do'),
|
||||
|
|
|
@ -339,6 +339,7 @@
|
|||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="state"/>
|
||||
<field name="res_id" invisible="1"/>
|
||||
<button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
|
||||
<button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
|
||||
<button string="Cancel" states="todo" name="button_cancel" type="object" icon="terp-gtk-stop"/>
|
||||
|
@ -392,17 +393,21 @@
|
|||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Marketing Campaign Activities">
|
||||
<filter icon="terp-gtk-go-back-rtl" string="To Do" name = "todo" domain="[('state','=','todo')]"/>
|
||||
<filter icon="terp-go-today" string="Today" name="today" domain="[('date','<', time.strftime('%%Y-%%m-%%d 23:59:59')), ('date','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','todo')]"/>
|
||||
<filter icon="terp-emblem-important" string="Exception" domain="[('state','=','exception')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="segment_id" select="1"/>
|
||||
<field name="object_id" select="1"/>
|
||||
<field name="res_name" select="1"/>
|
||||
<field name="res_id" select="1"/>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Segment" name="Segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}" />
|
||||
<filter string="Activity" name="Activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}" />
|
||||
<!--filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}" /-->
|
||||
<filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}" />
|
||||
<filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}" />
|
||||
<filter string="Resource" name="resource" icon="terp-accessories-archiver" context="{'group_by':'res_id'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="State" name="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}" />
|
||||
<separator orientation="vertical"/>
|
||||
|
|
Loading…
Reference in New Issue