Exemplo n.º 1
0
def delete(request, project_id):
    dbm = get_database_manager(request.user)
    questionnaire = Project.get(dbm, project_id)
    dashboard_page = settings.HOME_PAGE + "?deleted=true"
    if questionnaire.is_void():
        return HttpResponseRedirect(dashboard_page)
    organization = get_organization(request)
    local_time_delta = get_country_time_delta(organization.country)
    survey_response_ids = get_survey_response_ids_from_request(
        dbm, request, questionnaire, local_time_delta)
    received_times = []
    for survey_response_id in survey_response_ids:
        survey_response = SurveyResponse.get(dbm, survey_response_id)
        received_times.append(
            datetime.datetime.strftime(
                convert_utc_to_localized(local_time_delta,
                                         survey_response.submitted_on),
                "%d/%m/%Y %X"))
        feeds_dbm = get_feeds_database(request.user)
        additional_feed_dictionary = get_project_details_dict_for_feed(
            questionnaire)
        delete_response = WebPlayerV2(dbm, feeds_dbm).delete_survey_response(
            survey_response, additional_feed_dictionary, websubmission_logger)
        mail_feed_errors(delete_response, dbm.database_name)
        if survey_response.data_record:
            ReportRouter().delete(
                get_organization(request).org_id, questionnaire.form_code,
                survey_response.data_record.id)

    if len(received_times):
        UserActivityLog().log(request,
                              action=DELETED_DATA_SUBMISSION,
                              project=questionnaire.name,
                              detail=json.dumps({
                                  "Date Received":
                                  "[%s]" % ", ".join(received_times)
                              }))
        response = encode_json({
            'success_message':
            ugettext("The selected submissions have been deleted"),
            'success':
            True
        })
    else:
        response = encode_json({
            'error_message': ugettext("No records deleted"),
            'success': False
        })

    return HttpResponse(response)
Exemplo n.º 2
0
def index(request, project_id=None, questionnaire_code=None, tab=0):
    manager = get_database_manager(request.user)
    org_id = helper.get_org_id_by_user(request.user)

    if request.method == 'GET':
        questionnaire = Project.get(manager, project_id)
        if questionnaire.is_void():
            dashboard_page = settings.HOME_PAGE + "?deleted=true"
            return HttpResponseRedirect(dashboard_page)

        filterable_fields = get_filterable_fields(questionnaire.fields, [])
        duplicates_filter_list = add_static_filterable_fields_for_duplicates(
            [])

        duplicates_filter_list = get_duplicates_filterable_fields(
            questionnaire.fields, duplicates_filter_list)
        first_filterable_fields = filterable_fields.pop(
            0) if filterable_fields else None
        xform = questionnaire.xform
        is_repeat_present = questionnaire.is_repeat_field_present

        result_dict = {
            "user_email": request.user.email,
            "tab": tab,
            "xform": xform,
            'is_pro_sms': get_organization(request).is_pro_sms,
            "is_poll": questionnaire.is_poll,
            # first 3 columns are additional submission data fields (ds_is, ds_name and submission_status)
            "is_quota_reached": is_quota_reached(request, org_id=org_id),
            "first_filterable_field": first_filterable_fields,
            "filterable_fields": filterable_fields,
            "duplicates_filter_list": duplicates_filter_list,
            "is_media_field_present":
            questionnaire.is_media_type_fields_present,
            "is_repeat_field_present": is_repeat_present
        }

        result_dict.update(
            project_info(request, questionnaire, questionnaire_code))
        return render_to_response('project/submission_results.html',
                                  result_dict,
                                  context_instance=RequestContext(request))
Exemplo n.º 3
0
def analysis(request, project_id, questionnaire_code=None):
    manager = get_database_manager(request.user)
    org_id = helper.get_org_id_by_user(request.user)
    if request.method == 'GET':
        questionnaire = Project.get(manager, project_id)
        dashboard_page = settings.HOME_PAGE + "?deleted=true"
        filterable_fields = get_filterable_fields(questionnaire.fields, [])
        first_filterable_fields = filterable_fields.pop(
            0) if filterable_fields else None
        if questionnaire.is_void():
            return HttpResponseRedirect(dashboard_page)
        is_repeat_present = questionnaire.is_repeat_field_present

        result_dict = {
            "xform":
            questionnaire.xform,
            "user_email":
            request.user.email,
            "is_quota_reached":
            is_quota_reached(request, org_id=org_id),
            'is_pro_sms':
            get_organization(request).is_pro_sms,
            'filterable_fields':
            filterable_fields,
            'first_filterable_field':
            first_filterable_fields,
            "is_media_field_present":
            questionnaire.is_media_type_fields_present,
            'has_chart': (len(questionnaire.choice_fields) > 0) &
            (not bool(questionnaire.xform)),
            "is_repeat_field_present":
            is_repeat_present
            # first 3 columns are additional submission data fields (ds_is, ds_name and submission_status
        }
        result_dict.update(
            project_info(request, questionnaire, questionnaire_code))
        return render_to_response('project/analysis.html',
                                  result_dict,
                                  context_instance=RequestContext(request))