Esempio n. 1
0
    def filter_queryset(self, request, queryset, view):

        # Get built-in DRF datatables queryset first to join with search text,
        # then apply additional filters.
        super_queryset = super(ReturnFilterBackend, self).filter_queryset(
            request, queryset, view).distinct().order_by('-id')

        date_from = request.GET.get('date_from')
        date_to = request.GET.get('date_to')
        status = request.GET.get('status')
        queryset = super_queryset

        if queryset.model is Return:

            # apply user selected filters
            status = status.lower() if status else 'all'
            if status != 'all':
                status_ids = []
                for returns in queryset:
                    if status in returns.processing_status.lower():
                        status_ids.append(returns.id)
                queryset = queryset.filter(id__in=status_ids).distinct()
            if date_from:
                date_from = datetime.strptime(date_from,
                                              '%Y-%m-%d') + timedelta(days=1)
                queryset = queryset.filter(lodgement_date__gte=date_from)
            if date_to:
                date_to = datetime.strptime(date_to,
                                            '%Y-%m-%d') + timedelta(days=1)
                queryset = queryset.filter(lodgement_date__lte=date_to)

        return queryset
Esempio n. 2
0
 def get_status(self, status):
     """Get status from string or int"""
     try:
         status = int(status)
     except ValueError:
         status = STATUS_LOOKUP[status.lower()]
     return status
Esempio n. 3
0
 def get_status(self, status):
     """Get status from string or int"""
     try:
         status = int(status)
     except ValueError:
         status = STATUS_LOOKUP[status.lower()]
     return status
Esempio n. 4
0
    def get(self, request, *args, **kwargs):
        status = request.GET.get('status', None)
        crawl_type = request.GET.get('crawl-type', 'import')
        lead_type = request.GET.get('lead-type', None)

        if status:
            if status.lower() == 'check':
                print('-- status variable passed to /spiderfarm/spider-jobs')
                # get all SpiderJobs currently running
                try:
                    # trying to get data for SSL domain crawls
                    if crawl_type:
                        print('-- crawl-type passed in GET: %s' % crawl_type)

                        if crawl_type == 'ssl':
                            # retrieve running job id for ssl crawl
                            job_ids = job_ids = SpiderJob.objects.filter(
                                job_status='RUNNING',
                                crawl_type='SSL').values_list(
                                    'celery_id', flat=True).distinct()

                        else:
                            job_ids = SpiderJob.objects.filter(
                                job_status__in=['RUNNING', 'PENDING'
                                                ]).values_list(
                                                    'celery_id',
                                                    flat=True).distinct()

                        # should contain either an error msg, or job_status as running, or
                        #  or job_status and task_id
                        job_dict = parse_spiderjob_status(job_ids)

                        return Response(job_dict)

                except Exception as e:
                    print(e)
                    data = {'job_status': e}
                    return Response(data)

            else:
                data = {'job_status': 'ready'}
                return Response(data)
Esempio n. 5
0
    def get_queryset(self):
        queryset = Booking.objects.all()
        name = self.request.query_params.get('name', None)
        fromDate = self.request.query_params.get('fromDate', None)
        toDate = self.request.query_params.get('toDate', None)
        status = self.request.query_params.get('status', None)

        q = Q()
        if name and name != 'null':
            q &= Q(name__icontains=name.lower())
        if fromDate and fromDate != 'null':
            q &= Q(time_booked__gte=fromDate)
        if toDate and toDate != 'null':
            toDateObj = datetime.strptime(toDate,
                                          '%Y-%m-%d %H:%M') + timedelta(days=1)
            q &= Q(time_booked__lte=toDateObj)
        if status and status != 'null':
            q &= Q(status__icontains=status.lower())

        return queryset.filter(q)
Esempio n. 6
0
 def map_status(status):
     if status.lower() not in [
             "offline", "online", "busy", "modified", "mounted"
     ]:
         return None
     if status.lower() == "offline":
         return LogicalUnitStatus.OFFLINE.value
     if status.lower() == "online":
         return LogicalUnitStatus.ONLINE.value
     if status.lower() == "busy":
         return LogicalUnitStatus.BUSY.value
     if status.lower() == "modified":
         return LogicalUnitStatus.MODIFIED.value
     if status.lower() == "mounted":
         return LogicalUnitStatus.MOUNTED.value
Esempio n. 7
0
    def list(self, request, pk=None):
        serializer_context = {
            'request': Request(request),
            'pk': pk,
            'counter': self.request.GET.get('counter', ""),
            'point': self.request.GET.get('point'),
            'status': self.request.GET.get('status')
        }
        # Note the use of `get_queryset()` instead of `self.queryset`
        queryset = Orders.objects.filter(status="payment-pending")
        counter = self.request.GET.get("counter", "")
        point = self.request.GET.get("point", "")
        status = self.request.GET.get('status')
        user_id = self.request.GET.get('user')
        readyStatusBoolean = False
        collectedStatusBoolean = False
        if status:
            if status.lower() == "collected" or status.lower(
            ) == "not collected":
                if status.lower() == "collected":
                    collectedStatusBoolean = True
                elif status.lower() == "not collected":
                    collectedStatusBoolean = False
                set_orders = []
                for i in queryset:
                    if point == "counter":
                        products_count = OrderedItem.objects.filter(
                            orders=i,
                            collected=collectedStatusBoolean,
                            counter__pk=counter).count()
                    elif point == "kitchen":
                        products_count = OrderedItem.objects.filter(
                            orders=i,
                            collected=collectedStatusBoolean,
                            kitchen__pk=counter).count()
                    else:
                        products_count = OrderedItem.objects.filter(
                            orders=i,
                            collected=collectedStatusBoolean).count()
                    if products_count >= 1:
                        set_orders.append(i.pk)

                queryset = queryset.filter(pk__in=set_orders)

            elif status.lower() == "ready" or status.lower() == "not ready":
                if status.lower() == "ready":
                    readyStatusBoolean = True
                elif status.lower() == "not ready":
                    readyStatusBoolean = False
                set_orders = []
                for i in queryset:
                    if point == "counter":
                        products_count = OrderedItem.objects.filter(
                            orders=i,
                            ready=readyStatusBoolean,
                            counter__pk=counter).count()
                    elif point == "kitchen":
                        products_count = OrderedItem.objects.filter(
                            orders=i,
                            ready=readyStatusBoolean,
                            kitchen__pk=counter).count()
                    else:
                        products_count = OrderedItem.objects.filter(
                            orders=i, ready=readyStatusBoolean).count()
                    if products_count >= 1:
                        set_orders.append(i.pk)

                queryset = queryset.filter(pk__in=set_orders)
        else:
            queryset = queryset.filter(status='payment-pending')

        if user_id:
            queryset = queryset.filter(user__pk=int(user_id))

        query = self.request.GET.get('q')
        if query:
            queryset = queryset.filter(
                Q(status='payment-pending')
                | (Q(status='fully-paid') & Q(table__isnull=True)
                   & Q(room__isnull=True)) | Q(invoice_number__icontains=query)
                | Q(room__name__icontains=query)
                | Q(table__name__icontains=query)
                | Q(user__name__icontains=query)).distinct()
        else:
            queryset = queryset.distinct()

        serializer = SearchListOrderSerializer(queryset,
                                               context=serializer_context,
                                               many=True)
        return Response(serializer.data)