Simplify cron

issue8201
issue6117
issue2286
This commit is contained in:
?ngel ?lvarez 2019-04-13 15:47:08 +02:00
parent 0b19b9041b
commit 83fdb35ccb
2 changed files with 7 additions and 39 deletions

View File

@ -10,11 +10,6 @@ contains the full copyright notices and license terms. -->
<field name="user" ref="res.user_admin"/>
<field name="group" ref="group_babi_admin"/>
</record>
<record model="res.user-res.group" id="user_trigger_group_babi_admin">
<field name="user" ref="res.user_trigger"/>
<field name="group" ref="group_babi_admin"/>
</record>
<record model="res.group" id="group_babi">
<field name="name">Business Intelligence</field>
</record>
@ -22,10 +17,6 @@ contains the full copyright notices and license terms. -->
<field name="user" ref="res.user_admin"/>
<field name="group" ref="group_babi"/>
</record>
<record model="res.user-res.group" id="user_trigger_group_babi">
<field name="user" ref="res.user_trigger"/>
<field name="group" ref="group_babi"/>
</record>
<!-- babi.dimension -->
<record model="ir.ui.view" id="babi_dimension_form_view">
@ -44,8 +35,6 @@ contains the full copyright notices and license terms. -->
<field name="name">Dimension</field>
<field name="res_model">babi.dimension</field>
<field name="search_value"></field>
<!-- <field name="domain">[]</field> -->
<!-- <field name="context">{}</field> -->
</record>
<record model="ir.action.act_window.view" id="act_babi_dimension_view1">
<field name="sequence" eval="10"/>
@ -671,16 +660,10 @@ contains the full copyright notices and license terms. -->
</record>
<record model="ir.cron" id="cron_clean_executions">
<field name="name">Babi Cron Clean Executions</field>
<field name="request_user" ref="res.user_admin"/>
<field name="user" ref="user_clean_executions"/>
<field name="active" eval="True"/>
<field name="interval_number" eval="1"/>
<field name="interval_type">days</field>
<field name="number_calls" eval="-1"/>
<field name="repeat_missed" eval="False"/>
<field name="model">babi.report.execution</field>
<field name="function">clean</field>
<field name="method">babi.report.execution|clean</field>
</record>
<!-- Menus -->

27
cron.py
View File

@ -15,19 +15,10 @@ class Cron(metaclass=PoolMeta):
@classmethod
def __setup__(cls):
super(Cron, cls).__setup__()
invisible = Bool(Eval('babi_report'))
state = {'invisible': invisible}
for field_name in ('model', 'function', 'args'):
field = getattr(cls, field_name)
states = field.states
if 'invisible' not in states:
states.update(state)
else:
states.update({
'invisible': states['invisible'] | invisible,
})
if 'babi_report' not in field.depends:
field.depends.append('babi_report')
cls.method.selection.extend([
('babi.report|calculate_babi_report', 'Calculate Babi Report'),
('babi.report.execution|clean', 'Clean Babi Excutions'),
])
@classmethod
def create(cls, vlist):
@ -40,17 +31,11 @@ class Cron(metaclass=PoolMeta):
def default_get(cls, fields, with_rec_name=True):
User = Pool().get('res.user')
res = super(Cron, cls).default_get(fields, with_rec_name)
cron_user, = User.search([
('active', '=', False),
('login', '=', 'user_cron_trigger'),
])
admin_user, = User.search([('login', '=', 'admin')])
context = Transaction().context
if context.get('babi_report', False):
res['user'] = cron_user.id
res['request_user'] = admin_user.id
res['user'] = admin_user.id
res['interval_type'] = 'days'
res['repeat_missed'] = False
res['model'] = 'babi.report'
res['function'] = 'calculate_babi_report'
res['function'] = 'babi.report|calculate_babi_report'
return res