def form_context(request, domain, app_id, module_id, form_id): app = Application.get(app_id) form_url = '{}{}'.format( settings.CLOUDCARE_BASE_URL or get_url_base(), reverse('download_xform', args=[domain, app_id, module_id, form_id]) ) case_id = request.GET.get('case_id') instance_id = request.GET.get('instance_id') try: form = app.get_module(module_id).get_form(form_id) except (FormNotFoundException, ModuleNotFoundException): raise Http404() form_name = list(form.name.values())[0] # make the name for the session we will use with the case and form session_name = '{app} > {form}'.format( app=app.name, form=form_name, ) if case_id: case = CaseAccessors(domain).get_case(case_id) session_name = '{0} - {1}'.format(session_name, case.name) root_context = { 'form_url': form_url, 'formplayer_url': settings.FORMPLAYER_URL, } if instance_id: try: root_context['instance_xml'] = FormAccessors(domain).get_form(instance_id).get_xml() except XFormNotFound: raise Http404() session_extras = {'session_name': session_name, 'app_id': app._id} session_extras.update(get_cloudcare_session_data(domain, form, request.couch_user)) delegation = request.GET.get('task-list') == 'true' session_helper = CaseSessionDataHelper(domain, request.couch_user, case_id, app, form, delegation=delegation) return json_response(session_helper.get_full_context( root_context, session_extras ))
except XFormNotFound: raise Http404() session_extras = {'session_name': session_name, 'app_id': app._id} session_extras.update( get_cloudcare_session_data(domain, form, request.couch_user)) delegation = request.GET.get('task-list') == 'true' session_helper = CaseSessionDataHelper(domain, request.couch_user, case_id, app, form, delegation=delegation) return json_response( session_helper.get_full_context(root_context, session_extras)) cloudcare_api = login_or_digest_ex(allow_cc_users=True) class ReadableQuestions(View): urlname = 'readable_questions' @csrf_exempt @method_decorator(cloudcare_api) def dispatch(self, request, *args, **kwargs): return super(ReadableQuestions, self).dispatch(request, *args, **kwargs)
'form_url': form_url, 'formplayer_url': settings.FORMPLAYER_URL, } if instance_id: try: root_context['instance_xml'] = FormAccessors(domain).get_form(instance_id).get_xml() except XFormNotFound: raise Http404() session_extras = {'session_name': session_name, 'app_id': app._id} session_extras.update(get_cloudcare_session_data(domain, form, request.couch_user)) delegation = request.GET.get('task-list') == 'true' session_helper = CaseSessionDataHelper(domain, request.couch_user, case_id, app, form, delegation=delegation) return json_response(session_helper.get_full_context( root_context, session_extras )) cloudcare_api = login_or_digest_ex(allow_cc_users=True) class ReadableQuestions(View): urlname = 'readable_questions' @csrf_exempt @method_decorator(cloudcare_api) def dispatch(self, request, *args, **kwargs): return super(ReadableQuestions, self).dispatch(request, *args, **kwargs)