예제 #1
0
def form_context(request, domain, app_id, module_id, form_id):
    app = Application.get(app_id)
    form_url = "%s%s" % (get_url_base(), reverse('download_xform', args=[domain, app_id, module_id, form_id]))
    case_id = request.GET.get('case_id')

    try:
        form = app.get_module(module_id).get_form(form_id).name.values()[0]
    except (FormNotFoundException, ModuleNotFoundException):
        raise Http404()

    # make the name for the session we will use with the case and form
    session_name = u'{app} > {form}'.format(
        app=app.name,
        form=form,
    )
    if case_id:
        session_name = u'{0} - {1}'.format(session_name, CommCareCase.get(case_id).name)

    delegation = request.GET.get('task-list') == 'true'
    offline = request.GET.get('offline') == 'true'
    session_helper = SessionDataHelper(domain, request.couch_user, case_id, delegation=delegation, offline=offline)
    return json_response(session_helper.get_full_context(
        {'form_url': form_url,},
        {'session_name': session_name, 'app_id': app._id}
    ))
예제 #2
0
def form_context(request, domain, app_id, module_id, form_id):
    app = Application.get(app_id)
    form_url = "%s%s" % (get_url_base(),
                         reverse('download_xform',
                                 args=[domain, app_id, module_id, form_id]))
    case_id = request.GET.get('case_id')

    try:
        form = app.get_module(module_id).get_form(form_id).name.values()[0]
    except (FormNotFoundException, ModuleNotFoundException):
        raise Http404()

    # make the name for the session we will use with the case and form
    session_name = u'{app} > {form}'.format(
        app=app.name,
        form=form,
    )
    if case_id:
        session_name = u'{0} - {1}'.format(session_name,
                                           CommCareCase.get(case_id).name)

    delegation = request.GET.get('task-list') == 'true'
    offline = request.GET.get('offline') == 'true'
    session_helper = SessionDataHelper(domain,
                                       request.couch_user,
                                       case_id,
                                       delegation=delegation,
                                       offline=offline)
    return json_response(
        session_helper.get_full_context({
            'form_url': form_url,
        }, {
            'session_name': session_name,
            'app_id': app._id
        }))
예제 #3
0
def get_session_context(request, domain, session_id):
    try:
        session = EntrySession.objects.get(session_id=session_id)
    except EntrySession.DoesNotExist:
        session = None
    if request.method == 'DELETE':
        if session:
            session.delete()
        return json_response({'status': 'success'})
    else:
        helper = SessionDataHelper(domain, request.couch_user)
        return json_response(helper.get_full_context({
            'session_id': session_id,
            'app_id': session.app_id if session else None
        }))
예제 #4
0
def form_context(request, domain, app_id, module_id, form_id):
    app = Application.get(app_id)
    form_url = "%s%s" % (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 = form.name.values()[0]

    # make the name for the session we will use with the case and form
    session_name = u'{app} > {form}'.format(
        app=app.name,
        form=form_name,
    )
    if case_id:
        session_name = u'{0} - {1}'.format(session_name,
                                           CommCareCase.get(case_id).name)

    root_context = {
        'form_url': form_url,
    }
    if instance_id:
        try:
            root_context['instance_xml'] = XFormInstance.get_db(
            ).fetch_attachment(instance_id, ATTACHMENT_NAME)
        except ResourceNotFound:
            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'
    offline = request.GET.get('offline') == 'true'
    session_helper = SessionDataHelper(domain,
                                       request.couch_user,
                                       case_id,
                                       delegation=delegation,
                                       offline=offline)
    return json_response(
        session_helper.get_full_context(root_context, session_extras))
예제 #5
0
def get_session_context(request, domain, session_id):
    try:
        session = EntrySession.objects.get(session_id=session_id)
    except EntrySession.DoesNotExist:
        session = None
    if request.method == 'DELETE':
        if session:
            session.delete()
        return json_response({'status': 'success'})
    else:
        helper = SessionDataHelper(domain, request.couch_user)
        return json_response(
            helper.get_full_context({
                'session_id':
                session_id,
                'app_id':
                session.app_id if session else None
            }))
예제 #6
0
def form_context(request, domain, app_id, module_id, form_id):
    app = Application.get(app_id)
    form_url = "%s%s" % (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 = form.name.values()[0]

    # make the name for the session we will use with the case and form
    session_name = u'{app} > {form}'.format(
        app=app.name,
        form=form_name,
    )
    if case_id:
        session_name = u'{0} - {1}'.format(session_name, CommCareCase.get(case_id).name)

    root_context = {
        'form_url': form_url,
    }
    if instance_id:
        try:
            root_context['instance_xml'] = XFormInstance.get_db().fetch_attachment(
                instance_id, ATTACHMENT_NAME
            )
        except ResourceNotFound:
            raise Http404()


    session_extras = {'session_name': session_name, 'app_id': app._id}
    suite_gen = SuiteGenerator(app, is_usercase_in_use(domain))
    session_extras.update(get_cloudcare_session_data(suite_gen, domain, form, request.couch_user))

    delegation = request.GET.get('task-list') == 'true'
    offline = request.GET.get('offline') == 'true'
    session_helper = SessionDataHelper(domain, request.couch_user, case_id, delegation=delegation, offline=offline)
    return json_response(session_helper.get_full_context(
        root_context,
        session_extras
    ))