示例#1
0
    def post(self, request, *args, **kwargs):
        user = request.user
        manager = get_database_manager(user)
        search_parameters = {}
        search_filters = json.loads(request.POST.get('search_filters', ''))
        search_text = request.POST.get('sSearch', '').strip()
        search_filters.update({"search_text": search_text})
        search_parameters.update(
            {"start_result_number": int(request.POST.get('iDisplayStart'))})
        search_parameters.update(
            {"number_of_results": int(request.POST.get('iDisplayLength'))})
        search_parameters.update(
            {"sort_field": self._get_order_field(request.POST, manager)})
        search_parameters.update({"search_filters": search_filters})
        search_parameters.update(
            {"order": "-" if request.POST.get('sSortDir_0') == "desc" else ""})

        query_fields, datasenders = get_data_sender_search_results(
            manager, search_parameters)
        total_count = get_data_sender_without_search_filters_count(
            manager, search_parameters)
        filtered_count = get_data_sender_count(manager, search_parameters)
        datasenders = DatasenderQueryResponseCreator().create_response(
            datasenders)

        return HttpResponse(jsonpickle.encode(
            {
                'data': datasenders,
                'iTotalDisplayRecords': filtered_count,
                'iDisplayStart': int(request.POST.get('iDisplayStart')),
                "iTotalRecords": total_count,
                'iDisplayLength': int(request.POST.get('iDisplayLength'))
            },
            unpicklable=False),
                            content_type='application/json')
示例#2
0
    def post(self, request, project_name, *args, **kwargs):
        user = request.user
        manager = get_database_manager(user)
        project_name_unquoted = lowercase_and_strip_accents(
            unquote(project_name))
        search_parameters = {}
        search_filters = {}
        search_text = lower(request.POST.get('sSearch', '').strip())
        search_filters.update({"search_text": search_text})
        search_parameters.update(
            {"start_result_number": int(request.POST.get('iDisplayStart'))})
        search_parameters.update(
            {"number_of_results": int(request.POST.get('iDisplayLength'))})
        search_parameters.update({
            "sort_field":
            DATASENDER_DISPLAY_FIELD_ORDER[int(request.POST.get('iSortCol_0'))
                                           - 1]
        })
        search_parameters.update(
            {"order": "-" if request.POST.get('sSortDir_0') == "desc" else ""})
        search_filters.update({"project_name": project_name_unquoted})
        search_parameters.update({"search_filters": search_filters})

        query_fields, search_results = get_data_sender_search_results(
            manager, search_parameters)
        total_count = get_data_sender_without_search_filters_count(
            manager, search_parameters)
        filtered_count = get_data_sender_count(manager, search_parameters)
        query_fields.remove('projects')
        datasenders = DatasenderQueryResponseCreator().create_response(
            search_results, show_projects=False)

        return HttpResponse(jsonpickle.encode(
            {
                'data': datasenders,
                'iTotalDisplayRecords': filtered_count,
                'iDisplayStart': int(request.POST.get('iDisplayStart')),
                "iTotalRecords": total_count,
                'iDisplayLength': int(request.POST.get('iDisplayLength'))
            },
            unpicklable=False),
                            content_type='application/json')