[IMP] config wizard, launch once

bzr revid: fp@tinyerp.com-20111002115131-cf5417apx9vfa9jc
This commit is contained in:
Fabien Pinckaers 2011-10-02 13:51:31 +02:00
parent 7569906597
commit fc7675014f
2 changed files with 7 additions and 31 deletions

View File

@ -810,7 +810,7 @@ ir_actions_todo_category()
# This model use to register action services.
TODO_STATES = [('open', 'To Do'),
('done', 'Done')]
TODO_TYPES = [('manual', 'Launch Manually'),
TODO_TYPES = [('manual', 'Launch Manually'),('once', 'Launch Manually Once'),
('automatic', 'Launch Automatically')]
class ir_actions_todo(osv.osv):
"""
@ -827,7 +827,8 @@ class ir_actions_todo(osv.osv):
'name': fields.char('Name', size=64),
'type': fields.selection(TODO_TYPES, 'Type', required=True,
help="""Manual: Launched manually.
Automatic: Runs whenever the system is reconfigured."""),
Automatic: Runs whenever the system is reconfigured.
Launch Manually Once: after hacing been launched manually, it sets automatically to Done."""),
'groups_id': fields.many2many('res.groups', 'res_groups_action_rel', 'uid', 'gid', 'Groups'),
'note': fields.text('Text', translate=True),
'category_id': fields.many2one('ir.actions.todo.category','Category'),
@ -843,7 +844,7 @@ Automatic: Runs whenever the system is reconfigured."""),
""" Launch Action of Wizard"""
wizard_id = ids and ids[0] or False
wizard = self.browse(cr, uid, wizard_id, context=context)
if wizard.type == 'automatic':
if wizard.type in ('automatic', 'once'):
wizard.write({'state': 'done'})
# Load action
@ -890,13 +891,13 @@ Automatic: Runs whenever the system is reconfigured."""),
done = filter(
groups_match,
self.browse(cr, uid,
self.search(cr, uid, ['&', ('state', '!=', 'open'), ('type', '=', 'manual')], context=context),
self.search(cr, uid, [('state', '!=', 'open')], context=context),
context=context))
total = filter(
groups_match,
self.browse(cr, uid,
self.search(cr, uid, [('type', '=', 'manual')], context=context),
self.search(cr, uid, [], context=context),
context=context))
return {

View File

@ -39,27 +39,6 @@ class res_config_configurable(osv.osv_memory):
_inherit = 'ir.wizard.screen'
__logger = logging.getLogger(_name)
def get_current_progress(self, cr, uid, context=None):
'''Return a description the current progress of configuration:
a tuple of (non_open_todos:int, total_todos: int)
'''
return itemgetter('done', 'total')(
self.pool.get('ir.actions.todo').progress(cr, uid, context=context))
def _progress(self, cr, uid, context=None):
closed, total = self.get_current_progress(cr, uid, context=context)
if total:
return round(closed*100./total)
return 100.
_columns = dict(
progress = fields.float('Configuration Progress', readonly=True),
)
_defaults = dict(
progress = _progress,
)
def _next_action(self, cr, uid, context=None):
Todos = self.pool['ir.actions.todo']
self.__logger.info('getting next %s', Todos)
@ -91,11 +70,7 @@ class res_config_configurable(osv.osv_memory):
res = next.action_launch(context=context)
res['nodestroy'] = False
return res
self.__logger.info('all configuration actions have been executed')
current_user_menu = self.pool.get('res.users').browse(cr, uid, uid).menu_id
# return the action associated with the menu
return self.pool.get(current_user_menu.type).read(cr, uid, current_user_menu.id)
return {'type' : 'ir.actions.act_window_close'}
def start(self, cr, uid, ids, context=None):
return self.next(cr, uid, ids, context)