Skip to content

Commit

Permalink
[IMP] crm: demo data of action rule
Browse files Browse the repository at this point in the history
bzr revid: hmo@tinyerp.com-20121009075340-ogm51x9z2irmzijt
  • Loading branch information
hmo-odoo committed Oct 9, 2012
1 parent cde1d85 commit e84b3f2
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 6 deletions.
14 changes: 9 additions & 5 deletions addons/base_action_rule/base_action_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ def priority_get(self, cr, uid, context=None):
_columns = {
'name': fields.char('Rule Name', size=64, required=True),
'model_id': fields.many2one('ir.model', 'Related Document Model', required=True, domain=[('osv_memory','=', False)]),
'model': fields.related('model_id', 'model', type="char", size=256, string='Model'),
'create_date': fields.datetime('Create Date', readonly=1),
'active': fields.boolean('Active', help="If the active field is set to False,\
it will allow you to hide the rule without removing it."),
Expand All @@ -71,6 +72,7 @@ def priority_get(self, cr, uid, context=None):
'trg_date_type': fields.selection([
('none', 'None'),
('create', 'Creation Date'),
('write', 'Last Modified Date'),
('action_last', 'Last Action Date'),
('date', 'Date'),
('deadline', 'Deadline'),
Expand All @@ -93,15 +95,15 @@ def priority_get(self, cr, uid, context=None):
'regex_name': fields.char('Regex on Resource Name', size=128, help="Regular expression for matching name of the resource\
\ne.g.: 'urgent.*' will search for records having name starting with the string 'urgent'\
\nNote: This is case sensitive search."),
'server_action_ids': fields.one2many('ir.actions.server', 'action_rule_id', 'Server Action', help="Define Server actions.\neg:Email Reminders, Call Object Service, etc.."),
'filter_id':fields.many2one('ir.filters', 'Filter', required=False), #TODO: set domain [('model_id','=',model)]
'server_action_ids': fields.one2many('ir.actions.server', 'action_rule_id', 'Server Action', help="Define Server actions.\neg:Email Reminders, Call Object Service, etc.."), #TODO: set domain [('model_id','=',model_id)]
'filter_id':fields.many2one('ir.filters', 'Filter', required=False), #TODO: set domain [('model_id','=',model_id.model)]
'last_run': fields.datetime('Last Run', readonly=1),
}

_defaults = {
'active': lambda *a: True,
'trg_date_type': lambda *a: 'none',
'trg_date_range_type': lambda *a: 'day',
'active': True,
'trg_date_type': 'none',
'trg_date_range_type': 'day',
}

_order = 'sequence'
Expand Down Expand Up @@ -200,6 +202,8 @@ def _check(self, cr, uid, automatic=False, use_new_cursor=False, \
base = False
if rule.trg_date_type=='create' and hasattr(obj, 'create_date'):
base = obj.create_date
elif rule.trg_date_type=='write' and hasattr(obj, 'write_date'):
base = obj.write_date
elif (rule.trg_date_type=='action_last'
and hasattr(obj, 'create_date')):
if hasattr(obj, 'date_action_last') and obj.date_action_last:
Expand Down
3 changes: 2 additions & 1 deletion addons/base_action_rule/base_action_rule_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
<group col="4">
<field name="name"/>
<field name="model_id"/>
<field name="filter_id" domain="[('model_id','=',model_id)]" context="{'default_model_id': model_id}"/>
<field name="model" invisible="1"/>
<field name="filter_id" domain="[('model_id','=',model)]" context="{'default_model_id': model}"/>
<field name="sequence"/>
<field name="active"/>
</group>
Expand Down
1 change: 1 addition & 0 deletions addons/crm/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
'crm_demo.xml',
'crm_lead_demo.xml',
'crm_phonecall_demo.xml',
'crm_action_rule_demo.xml',
],
'test': [
'test/process/communication_with_customer.yml',
Expand Down
73 changes: 73 additions & 0 deletions addons/crm/crm_action_rule_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<!-- email server actions -->
<record id="action_email_reminder_lead" model="ir.actions.server">
<field name="name">Reminder to User</field>
<field name="model_id" ref="model_crm_lead"/>
<field name="condition">True</field>
<field name="type">ir.actions.server</field>
<field name="state">email</field>
<field name="email">object.user_id.email</field>
<field name="subject">Reminder on Lead: [[object.name ]] of [[object.partner_id.name]]</field>
<field name="message">Hello [[object.user_id.name]],
can you check following lead, it's inactive since 5 days ?

Lead Id: [[object.id ]]
Customer: [[object.partner_id.name]]

[[object.description]]

Thanks,
</field>
</record>

<record id="action_email_reminder_customer_lead" model="ir.actions.server">
<field name="name">Reminder to Customer</field>
<field name="model_id" ref="model_crm_lead"/>
<field name="condition">True</field>
<field name="type">ir.actions.server</field>
<field name="state">email</field>
<field name="email">object.email_from</field>
<field name="subject">Reminder on Lead: [[object.name ]]</field>
<field name="message">Hello [[object.partner_id.name]],
your following lead inactive since 5 days.

Lead Id: [[object.id ]]
Customer: [[object.partner_id.name]]

[[object.description]]

Thanks,
</field>
</record>

<!-- automated actions -->
<record id="rule_set_reminder_lead" model="base.action.rule">
<field name="name">Set Auto Reminder on leads which are inactive since 5 days.</field>
<field name="model_id" ref="model_crm_lead"/>
<field name="sequence">1</field>
<field name="trg_date_type">write</field>
<field name="trg_date_range">5</field>
<field name="trg_date_range_type">day</field>
<field name="server_action_ids" eval="[(6,0,[ref('action_email_reminder_customer_lead'), ref('action_email_reminder_lead')])]"/>
</record>

<record id="filter_usa_lead" model="ir.filters">
<field name="name">Filter on leads which come from USA.</field>
<field name="model_id">crm.lead</field>
<field name="domain">[('country_id','=','United States')]</field>
</record>

<record id="rule_set_followers_lead" model="base.action.rule">
<field name="name">Set Auto Followers on leads which are come from USA.</field>
<field name="model_id" ref="model_crm_lead"/>
<field name="sequence">2</field>
<field name="regex_name">urgent.*</field>
<field name="filter_id" ref="filter_usa_lead"/>
<field name="act_followers" eval="[(6,0,[ref('base.res_partner_4'), ref('base.res_partner_5'), ref('base.res_partner_6')])]"/>
<field name="act_user_id" ref="base.user_root"/>
<field name="act_section_id" ref="section_sales_department"/>
</record>
</data>
</openerp>

0 comments on commit e84b3f2

Please sign in to comment.