def post(self, request, token): status = tasks.find(request, token) if status is not None: status.cancel() messages.info(request, _('The task execution has been aborted.')) else: messages.error(request, DEFAULT_ERROR_MESSAGE) return HttpResponseAjax([ commands.hide_progress(), ], request)
def get(self, request, token): status = tasks.find(request, token) if status is not None: if status.is_completed(): cmds = [commands.hide_progress()] if status.callback: fn = status.callback['fn'] if isinstance(fn, tuple) and len(fn) == 2: (path, static_method) = fn index = path.rfind('.') classname = path[index + 1:len(path)] module = __import__( path[0:index], fromlist=[classname]) klass = getattr(module, classname) cmds.extend(getattr(klass, static_method).__call__( request, status.result, status.callback['context'] )) status.forget() return HttpResponseAjax(cmds, request) elif status.is_failed(): status.forget() messages.error(request, DEFAULT_ERROR_MESSAGE) return HttpResponseAjax([ commands.hide_progress(), ], request) elif status.is_cancelled(): status.forget() return HttpResponseAjax([ commands.hide_progress(), ], request) elif status.is_running(): return HttpResponseAjax([ commands.update_progress(status.progress), ], request) else: return HttpResponseAjax([ commands.update_progress(), ], request) else: messages.error(request, DEFAULT_ERROR_MESSAGE) return HttpResponseAjax([ commands.hide_progress(), ], request)
def get(self, request, token): status = tasks.find(request, token) if status is not None: if status.is_completed(): cmds = [commands.hide_progress()] if status.callback: fn = status.callback['fn'] if isinstance(fn, tuple) and len(fn) == 2: (path, static_method) = fn index = path.rfind('.') classname = path[index + 1:len(path)] module = __import__(path[0:index], fromlist=[classname]) klass = getattr(module, classname) cmds.extend( getattr(klass, static_method).__call__( request, status.result, status.callback['context'])) status.forget() return HttpResponseAjax(cmds, request) elif status.is_failed(): status.forget() messages.error(request, DEFAULT_ERROR_MESSAGE) return HttpResponseAjax([ commands.hide_progress(), ], request) elif status.is_cancelled(): status.forget() return HttpResponseAjax([ commands.hide_progress(), ], request) elif status.is_running(): return HttpResponseAjax([ commands.update_progress(status.progress), ], request) else: return HttpResponseAjax([ commands.update_progress(), ], request) else: messages.error(request, DEFAULT_ERROR_MESSAGE) return HttpResponseAjax([ commands.hide_progress(), ], request)