function to be called outside to get the footer search condition,
        apply the search in DB and render the serialized result.

        :param pre_search_condition: None/OrderedDict: pre search condition to
          be applied before applying the one getting from footer
        :param kwargs: dict: search parameters got from footer
        :return: dict: contains the filtered data, total number of records,
            number of filtered records and drawing number.

def process(self, pre_search_condition=None, **kwargs):
        """
        function to be called outside to get the footer search condition,
        apply the search in DB and render the serialized result.

        :param pre_search_condition: None/OrderedDict: pre search condition to
          be applied before applying the one getting from footer
        :param kwargs: dict: search parameters got from footer
        :return: dict: contains the filtered data, total number of records,
            number of filtered records and drawing number.
        """
        records = self.query_by_args(pre_search_condition=pre_search_condition,
                                     **kwargs)
        serializer = self.serializer(records['items'], many=True)
        result = {
            'data': serializer.data,
            'draw': records['draw'],
            'recordsTotal': records['total'],
            'recordsFiltered': records['count'],
        }
        return result