forked from CGM_Public/pretix_original
AsyncFormView/AsyncPostView: Allow to report status back
This commit is contained in:
@@ -215,6 +215,13 @@ class AsyncFormView(AsyncMixin, FormView):
|
|||||||
expected_exceptions = (ValidationError,)
|
expected_exceptions = (ValidationError,)
|
||||||
task_base = ProfiledEventTask
|
task_base = ProfiledEventTask
|
||||||
|
|
||||||
|
def async_set_progress(self, percentage):
|
||||||
|
if not self._task_self.request.called_directly:
|
||||||
|
self._task_self.update_state(
|
||||||
|
state='PROGRESS',
|
||||||
|
meta={'value': percentage}
|
||||||
|
)
|
||||||
|
|
||||||
def __init_subclass__(cls):
|
def __init_subclass__(cls):
|
||||||
def async_execute(self, *, request_path, query_string, form_kwargs, locale, tz, url_kwargs=None, url_args=None,
|
def async_execute(self, *, request_path, query_string, form_kwargs, locale, tz, url_kwargs=None, url_args=None,
|
||||||
organizer=None, event=None, user=None, session_key=None):
|
organizer=None, event=None, user=None, session_key=None):
|
||||||
@@ -240,6 +247,9 @@ class AsyncFormView(AsyncMixin, FormView):
|
|||||||
self.SessionStore = engine.SessionStore
|
self.SessionStore = engine.SessionStore
|
||||||
view_instance.request.session = self.SessionStore(session_key)
|
view_instance.request.session = self.SessionStore(session_key)
|
||||||
|
|
||||||
|
task_self = self
|
||||||
|
view_instance._task_self = task_self
|
||||||
|
|
||||||
with translation.override(locale), timezone.override(pytz.timezone(tz)):
|
with translation.override(locale), timezone.override(pytz.timezone(tz)):
|
||||||
form_class = view_instance.get_form_class()
|
form_class = view_instance.get_form_class()
|
||||||
if form_kwargs.get('instance'):
|
if form_kwargs.get('instance'):
|
||||||
@@ -331,6 +341,13 @@ class AsyncPostView(AsyncMixin, View):
|
|||||||
expected_exceptions = (ValidationError,)
|
expected_exceptions = (ValidationError,)
|
||||||
task_base = ProfiledEventTask
|
task_base = ProfiledEventTask
|
||||||
|
|
||||||
|
def async_set_progress(self, percentage):
|
||||||
|
if not self._task_self.request.called_directly:
|
||||||
|
self._task_self.update_state(
|
||||||
|
state='PROGRESS',
|
||||||
|
meta={'value': percentage}
|
||||||
|
)
|
||||||
|
|
||||||
def __init_subclass__(cls):
|
def __init_subclass__(cls):
|
||||||
def async_execute(self, *, request_path, url_args, url_kwargs, query_string, post_data, locale, tz,
|
def async_execute(self, *, request_path, url_args, url_kwargs, query_string, post_data, locale, tz,
|
||||||
organizer=None, event=None, user=None, session_key=None):
|
organizer=None, event=None, user=None, session_key=None):
|
||||||
@@ -355,6 +372,9 @@ class AsyncPostView(AsyncMixin, View):
|
|||||||
self.SessionStore = engine.SessionStore
|
self.SessionStore = engine.SessionStore
|
||||||
view_instance.request.session = self.SessionStore(session_key)
|
view_instance.request.session = self.SessionStore(session_key)
|
||||||
|
|
||||||
|
task_self = self
|
||||||
|
view_instance._task_self = task_self
|
||||||
|
|
||||||
with translation.override(locale), timezone.override(pytz.timezone(tz)):
|
with translation.override(locale), timezone.override(pytz.timezone(tz)):
|
||||||
return view_instance.async_post(view_instance.request, *url_args, **url_kwargs)
|
return view_instance.async_post(view_instance.request, *url_args, **url_kwargs)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user