def get(self, request, **kwargs):
        status = request.GET['search_status']
        status = status.split(',')

        status_len = len(status)
        filter = f'list(Study.objects.filter('
        for idx, study_status in enumerate(status):
            if idx < status_len - 1:
                filter += f'Q(OverallStatus="{study_status}") | '
            else:
                filter += f'Q(OverallStatus="{study_status}")).values())'

        studies = eval(filter)

        if studies:
            data = [{
                'Latitude': studies[0]['Latitude'],
                'Longitude': studies[0]['Longitude'],
                'clinics': []
            }]

            data[0]['clinics'].append(studies[0])
            data[0]['clinics'][0].update(
                visitStudy=
                f"https://clinicaltrials.gov/ct2/show/{studies[0]['NCTId']}")

            studies_length = len(studies)
            for i in range(1, studies_length):
                is_in_data = 0
                for idx, s in enumerate(
                        data
                ):  # check for latitude and longitude into data list
                    if studies[i]['Latitude'] == s['Latitude'] and studies[i][
                            'Longitude'] == s['Longitude']:
                        is_in_data = 1
                        ckeck_id = 0
                        for clinic in data[idx]['clinics']:
                            if studies[i]['id'] == clinic['id']:
                                ckeck_id = 1
                        if not ckeck_id:
                            studies[i][
                                'visitStudy'] = f"https://clinicaltrials.gov/ct2/show/{studies[i]['NCTId']}"
                            data[idx]['clinics'].append(studies[i])

                if not is_in_data:
                    studies[i][
                        'visitStudy'] = f"https://clinicaltrials.gov/ct2/show/{studies[i]['NCTId']}"
                    data.append({
                        'Latitude': studies[i]['Latitude'],
                        'Longitude': studies[i]['Longitude'],
                        'clinics': [studies[i]]
                    })

            return HttpResponse(json.dumps(data),
                                content_type="application/json")
        else:
            return HttpResponse(json.dumps([]),
                                content_type="application/json")
Beispiel #2
0
def UserUpdateStatus(data):
    """
    :param data: Hash Code of the Query.
    :return: contributions of the user on updating Query Filter commit status.
    """
    result = []
    data['query'] = get_object_or_404(Query, hash_code=data['query'])
    status = data['query'].queryfilter.status
    p_open, g_open = -1, -1
    if status is not None and status != "":
        status = status.split(",")
        if "p-open" in status or "g-open" in status:
            try:
                status.remove("p-open")
                p_open = 0
            except ValueError:
                pass
            try:
                status.remove("g-open")
                g_open = 0
            except ValueError:
                pass

            status.append("open")
        status = '|'.join(status)
        commits = ListCommit.objects.filter(
            Q(query=data['query']), Q(status__iregex="(" + status + ")"))
    else:
        commits = ListCommit.objects.all()
    for i in commits:
        if i.status.lower(
        ) == "open" and i.platform == "Phabricator" and p_open == -1:
            continue

        if i.status.lower(
        ) == "open" and i.platform == "Gerrit" and g_open == -1:
            continue

        obj = {
            "time": i.created_on,
            "status": i.status,
            "owned": i.owned,
            "assigned": i.assigned
        }

        if i.platform == 'Phabricator':
            obj['phabricator'] = True
        else:
            obj['gerrit'] = True
        result.append(obj)

    return Response({"result": result})
Beispiel #3
0
    def list(self, request, *args, **kwargs):
        receiver_id = request.user.id
        status = self.request.query_params.get('status', '')
        status_list = status.split(',')
        status_list = [int(item) for item in status_list]
        queryset = Message.objects.filter(
            receiver_id=receiver_id,
            status__in=status_list).order_by('-add_time')
        page = self.paginate_queryset(queryset)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)

        serializer = self.get_serializer(queryset, many=True)
        return Response(serializer.data)
Beispiel #4
0
    def get_queryset(self):
        filters = {}
        advertiser_id = self.request.query_params.get('advertiser_id')
        campaign_id = self.request.query_params.get('campaign_id')
        tw_campaign_id = self.request.query_params.get('tw_campaign_id')
        tw_line_item_ids = self.request.query_params.get('tw_line_item_ids')
        status = self.request.query_params.get('status')
        country = self.request.query_params.get('country')
        keyword = self.request.query_params.get('keyword')
        handle = self.request.query_params.get('handle')

        query_set = TwitterLineItem.objects
        if advertiser_id:
            filters[
                'tw_campaign_id__campaign_id__advertiser_id'] = advertiser_id

        if campaign_id:
            filters['tw_campaign_id__campaign_id'] = campaign_id

        if tw_campaign_id:
            filters['tw_campaign_id__in'] = tw_campaign_id.split(',')

        if tw_line_item_ids:
            filters['tw_line_item_id__in'] = tw_line_item_ids.split(',')

        if status:
            filters['status__in'] = status.split(',')

        query_set = query_set.filter(**filters)

        if country:
            country = [c.strip() for c in country.split(',')]
            query_set = query_set.filter(
                Q(tw_targeting__name__in=country,
                  tw_targeting__tw_targeting_type=2))
        if handle:
            handle = [c.strip() for c in handle.split(',')]
            query_set = query_set.filter(
                Q(tw_targeting__name__in=handle,
                  tw_targeting__tw_targeting_type=9))
        if keyword:
            keyword = [c.strip() for c in keyword.split(',')]
            query_set = query_set.filter(
                Q(tw_targeting__name__in=keyword,
                  tw_targeting__tw_targeting_type=10))

        return query_set.distinct()
Beispiel #5
0
def cliente_api(request):
    if request.method == 'POST':
        status = request.data['status']
        parse = status.split('|')
        cnpj = parse[0]
        cliente = get_object_or_404(Cliente, cnpj=cnpj, ativo=False)
        _check = parse[3]
        check = _check[:-1]
        _indice = parse[3]
        indice = int(_indice[len(parse[3]) - 1:])
        if indice < 2:
            _check = int(check) - indice - int("{:%Y%m%d}".format(
                datetime.now()))
            impares = [3, 5, 7, 9]
            pares = [2, 4, 6, 8]
            if (int(_check) % 2 == 0 and indice == 0) or (int(_check) % 2 != 0
                                                          and indice == 1):
                if int(_check) % 2 == 0:
                    if cliente.bloqueado:
                        indice = impares[randint(0, 3)]
                    else:
                        indice = pares[randint(0, 3)]
                else:
                    if cliente.bloqueado:
                        indice = pares[randint(0, 3)]
                    else:
                        indice = impares[randint(0, 3)]
                items = ['BLOQUEADO', 'DESBLOQUEADO']
                status = items[randint(0, 1)]
                mes = "{:%m}".format(datetime.now())
                data = int("{:%Y%m%d}".format(datetime.now()))
                numero = randint(100000000, 999999999)
                codigo = data + numero + int(indice)
                resultado = cnpj + '|' + status + '|mes' + mes + '|' + str(
                    codigo) + str(indice)
                resultadoJ = {"resultado": resultado}
                return JsonResponse(resultadoJ)
            else:
                content = {"erro no codigo": "chave de verificacao invalida"}
                return Response(content, status=status.HTTP_404_NOT_FOUND)
        else:
            cliente.bloqueado = True
            cliente.datDesb = datetime.now()
            cliente.save()
            content = {"status": "ok"}
            return Response(content, status=200)
Beispiel #6
0
    def get_queryset(self):
        """
        queryset returns only case's follow up
        type filter
        status filter
        """
        queryset = FollowUp.objects.filter(case__id=self.kwargs['case_id'])

        status = self.request.query_params.get('status', None)
        status__not = self.request.query_params.get('status__not', None)
        type = self.request.query_params.get('type', None)

        # type
        if type is not None:
            queryset = queryset.filter(type=type)

        # status
        if status is not None:
            queryset = queryset.filter(status__in=status.split('-'))

        if status__not is not None:
            queryset = queryset.exclude(status__in=status__not.split('-'))

        return queryset
Beispiel #7
0
    def get_queryset(self):
        # tags
        include_public = self.request.query_params.get("public", "true")
        include_base = self.request.query_params.get("isBase", "true")
        include_origin = self.request.query_params.get("origin", "true")
        # all objects available for user
        # here we are doing a logic like this:
        # as long as the model satisfies any of the true conditions, include it
        # An alternative logic is to exclude the false conditions
        # queryset = models.ModelRun.objects.filter(
        # 	Q(user=self.request.user) | Q(public=True) | Q(isBase=True)
        # )

        # search
        search_text = self.request.query_params.get("search", False)

        # sorters
        sorter = self.request.query_params.get("sorter", False)

        # filter
        status = self.request.query_params.get("status", False)
        scenarios = self.request.query_params.get("scenarios", False)

        query = None
        if include_public == "true":
            query = Q(public=True)
        if include_base == "true":
            query = Q(is_base=True) if not query else query | Q(is_base=True)
        if include_origin == "true":
            query = (Q(user=self.request.user) if not query else query
                     | Q(user=self.request.user))

        if not query:
            return []
        results = models.ModelRun.objects.filter(query)
        if status:
            results = results.filter(status__in=status.split(","))

        if search_text:
            query = Q(name__contains=search_text) | Q(
                description__contains=search_text)
            results = results.filter(query)

        if scenarios:
            scenarios_list = scenarios.split(",")
            results = results.filter(
                Q(flow_scenario__in=scenarios_list)
                | Q(unsat_scenario__in=scenarios_list)
                | Q(load_scenario__in=scenarios_list)
                | Q(welltype_scenario__in=scenarios_list))

        if sorter:
            sorter_field, order = sorter.split(",")
            # check if any malicious injection
            if hasattr(models.ModelRun, sorter_field):
                if order == "ascend":
                    return results.order_by(sorter_field)
                else:
                    return results.order_by("-" + sorter_field)

        return results.order_by("-id")
Beispiel #8
0
 def get(self, request):
     mes = dict ()
     user_id = request.wx_user.id
     status = request.GET.get('status', None)
     if  status != '0':
         alist = []
         for i in status.split(','):
             if i == '':
                continue
             alist.append(int(i))
         try:
             all_order = OrderInfo.objects.filter(user_id=user_id, is_deleted=False, status__in=alist).order_by('-payment_time')
         except:
             mes[ 'code' ] = 400
             mes[ 'message' ] = 'select error'
             mes[ 'order_list' ] = []
         else:
             current_pagnum = request.GET.get ( 'p', 1 )
             paginator = Paginator ( all_order, 10 )  # 每页显示几个
             posts = paginator.page ( number=int ( current_pagnum ) )  # 这个num就是现实当前第几页
             num_pages = paginator.num_pages  # 总页数
             orderList = list ()
             for order in posts:
                 data = dict()
                 data['out_trade_no'] = order.order_sn
                 data['goodsNumber'] = order.goodsNumber
                 data['subTitle'] = SPU.objects.get(spu_code=order.goods_spu).subTitle
                 data['price'] = order.price
                 data['size'] = order.size
                 data['address'] = {'province':order.address.province ,
                                    'city':order.address.city ,
                                    'district':order.address.district,
                                    'place': order.address.place,
                                    'mobile':order.address.mobile,
                                    'AcceptPerson':order.address.AcceptPerson
                                    }
                 data['total_count'] = order.total_count
                 data['total_amount'] = order.total_amount
                 data['freight'] = order.freight
                 data['status'] = order.status
                 data['goods_color'] = order.goods_color
                 data['wuliu_info'] = order.wuliu_info
                 data['create_time'] = order.payment_time
                 data['image'] = order.image
                 data['title'] = order.goods_name
                 orderList.append(data)
             mes[ 'code' ] = 200
             mes[ 'message' ] = 'select success'
             mes[ 'order_list' ] = orderList
             mes['tpage'] = num_pages
     else:
         try:
             all_order = OrderInfo.objects.filter(user_id=user_id, is_deleted=False).order_by('-payment_time')
         except:
             mes[ 'code' ] = 400
             mes[ 'message' ] = 'select error'
             mes[ 'order_list' ] = []
         else:
             current_pagnum = request.GET.get ( 'p', 1 )
             paginator = Paginator ( all_order, 10 )  # 每页显示几个
             posts = paginator.page ( number=int ( current_pagnum ) )  # 这个num就是现实当前第几页
             num_pages = paginator.num_pages  # 总页数
             orderList = list ()
             for order in posts:
                 data = dict()
                 data['out_trade_no'] = order.order_sn
                 data['goodsNumber'] = order.goodsNumber
                 data['subTitle'] = SPU.objects.get(spu_code=order.goods_spu).subTitle
                 data['price'] = order.price
                 data['size'] = order.size
                 data['address'] = {'province':order.address.province ,
                                    'city':order.address.city ,
                                    'district':order.address.district,
                                    'place': order.address.place,
                                    'mobile':order.address.mobile,
                                    'AcceptPerson':order.address.AcceptPerson
                                    }
                 data['total_count'] = order.total_count
                 data['total_amount'] = order.total_amount
                 data['freight'] = order.freight
                 data['status'] = order.status
                 data['goods_color'] = order.goods_color
                 data['wuliu_info'] = order.wuliu_info
                 data['create_time'] = order.payment_time
                 data['image'] = order.image
                 data['title'] = order.goods_name
                 orderList.append(data)
             mes[ 'code' ] = 200
             mes[ 'message' ] = 'select success'
             mes[ 'order_list' ] = orderList
             mes['tpage'] = num_pages
     return Response(mes)
Beispiel #9
0
 def get_queryset(self):
     if self.action != 'list':
         return None
     in_country = self.request.GET.get('country_ids')
     status = self.request.GET.get('status', 'approved')
     search = self.request.GET.get('search')
     
     status_list = []
     in_progress=False
     for stat in status.split(','):
         # Earlier feature to only allow author to view in-progress forms
         # has been disabled
         #if stat == 'in-progress':
         #    in_progress = True
         #else:
         #    status_list.append(stat)
         status_list.append(stat)
             
     countries = Country.objects.all()
     all_country_list = []
     for country in countries:
         all_country_list.append(country.id)
     
     country_list = []
     if in_country is not None and in_country != '':
         # client provided a list of countries to consider
         for cntry in in_country.split(','):
             country_list.append(int(cntry))
     else:
         # client did not provide a list - so consider all countries
        country_list = all_country_list
     
     account_id = self.request.user.id
     
     station_list = []
     form_storage_list = []
     tmp_station_list = BorderStation.objects.filter(operating_country__in=country_list)
     perm_list = UserLocationPermission.objects.filter(account__id=account_id, permission__permission_group=self.get_perm_group_name()).exclude(permission__action='ADD')
     self.serializer_context = {'perm_list':perm_list}
     for station in tmp_station_list:
         if (UserLocationPermission.has_permission_in_list(perm_list, self.get_perm_group_name(), None, station.operating_country.id, station.id)):
             station_list.append(station)
             form = Form.current_form(self.get_form_type_name(), station.id)
             if form is not None and form.storage not in form_storage_list:
                 form_storage_list.append(form.storage)
     
     q_filter = self.build_query_filter(status_list, station_list, in_progress, account_id)
     queryset = None
     for form_storage in form_storage_list:
         mod = __import__(form_storage.module_name, fromlist=[form_storage.form_model_name])
         form_model = getattr(mod, form_storage.form_model_name)
         
         tmp_queryset = form_model.objects.filter(q_filter).only(*self.get_list_field_names())      
         if search is not None:
             tmp_queryset = self.filter_key(tmp_queryset, search)
         
         if queryset is None:
             queryset = tmp_queryset
         else:
             queryset = queryset.union(tmp_queryset)
         
     if queryset is None:
         queryset = self.get_empty_queryset()
             
     return queryset