def post_wizard(self, url, step, data=None, raw_data=None, **kwargs): from formtools.wizard.views import normalize_name name = normalize_name(resolve(reverse(url)).func.__name__) step_data = {f'{step}-{k}': v for k, v in data.items()} if data else {} step_data[f'{name}-current_step'] = step step_data.update(raw_data or {}) return self.post(url, step_data, **kwargs)
def post_wizard(self, url, step, data=None, raw_data=None, **kwargs): from formtools.wizard.views import normalize_name name = normalize_name(resolve(reverse(url)).func.__name__) step_data = {'{0}-{1}'.format(step, k): v for k, v in data.iteritems()} if data else {} step_data['{0}-current_step'.format(name)] = step step_data.update(raw_data or {}) return self.post(url, step_data, **kwargs)
def submit_step_factory(client, url_name, view_class): step_names = iter([name for name, form in view_class.form_list]) view_name = normalize_name(view_class.__name__) def submit_step(data, step_name=None): step_name = step_name or next(step_names) return client.post( reverse(url_name, kwargs={'step': step_name}), { view_name + '-current_step': step_name, **{ step_name + '-' + key: value for key, value in data.items() } }, ) return submit_step
def submit_case_study_edit_step(client): url_name = 'business-profile-case-study-edit' view_class = views.CaseStudyWizardEditView view_name = normalize_name(view_class.__name__) step_names = iter([name for name, form in view_class.form_list]) def submit_step(data, step_name=None): step_name = step_name or next(step_names) url = reverse(url_name, kwargs={'step': step_name, 'id': 1}) response = client.get(url) assert response.status_code == 200 return client.post( url, { view_name + '-current_step': step_name, **{ step_name + '-' + key: value for key, value in data.items() } }, ) return submit_step
def form_name(cls): return normalize_name(cls.__name__)
def get_prefix(self, request, *args, **kwargs): # share the answers with business view return normalize_name(BusinessWizard.__name__)