def get(self, request): # get page param page = request.GET.get('page') queries = [] sort_by = getValidateSort(request.GET.get('sortBy')); queries = [ getValidatePriceQuery(request.GET.get('price')), getValidateSquareFeetQuery(request.GET.get('squareFeet')), getValidateTypeQuery(request.GET.get('type')), getValidateRoomsQuery(request.GET.get('rooms')), getSearchQuery(request.GET.get('sq')), *getValidateShouldHasQuery(request.GET.get('shouldHas')), Q(status='fs', is_verified=True), ] # filter properties properties = Property.objects.filter(reduce( operator.and_, queries )).order_by(sort_by) paginator = paginate(query_set=properties, paginate_by=PAGINATE_BY, page=page) response = { 'data': PropertySerializer(paginator['data'], many=True).data, 'has_next': paginator['has_next'] } return Response(data=response, status=status.HTTP_200_OK)
def list(self, request, *args, **kwargs): """ Return a list of basic question data with filters applied. This only retrieves basic information about the question without any of its linked information. """ # Get the queryset from the specified parent queryset. queryset = super().get_queryset() # Get query params, and set to default if not specified objective_id = request.GET.get("objective_id") page = int(request.GET.get("page") or 0) or 1 # Filter the queryset if objective_id: filtered_questions = queryset.filter( Q(objective__id=objective_id) ) else: filtered_questions = queryset data = paginate(page, filtered_questions, QuestionBasicSerializer) # Return a HTTP response return Response(data, status=status.HTTP_200_OK)
def get(self, request): # get latest_id param page = request.GET.get('page') # get user bookmarks bookmarks = request.user.user_bookmarks.all().order_by('-id') # paginate data paginator = paginate(query_set=bookmarks, paginate_by=PAGINATE_BY, page=page) response = { 'data': UserBookmarkSerializer(paginator['data'], many=True).data, 'bookmarks_count': bookmarks.count(), 'has_next': paginator['has_next'] } return Response(data=response, status=status.HTTP_200_OK)
def list(self, request, *args, **kwargs): """ Return a list of objectives with filters applied. """ # Get the queryset from the specified parent queryset. queryset = super().get_queryset() # Get query params, and set to default if not specified search = request.GET.get("search") page = int(request.GET.get("page") or 0) or 1 specialties = request.GET.getlist("specialty") or [ ch[0] for ch in Objective.SPECIALTY_CHOICES ] topics = request.GET.getlist("topic") or [ ch[0] for ch in Objective.TOPIC_CHOICES ] stage = request.GET.getlist("stage") or [ ch[0] for ch in Objective.STAGE_CHOICES ] # Filter the queryset by specialty, topic and stage if search: filtered_objectives = queryset.filter( Q(specialty__in=specialties) & Q(topic__in=topics) & Q(stage__in=stage) & (Q(title__contains=search) | Q(contributor__username__contains=search)) ) else: filtered_objectives = queryset.filter( Q(specialty__in=specialties) & Q(topic__in=topics) & Q(stage__in=stage) ) ordered_objectives = filtered_objectives.order_by("stage", "specialty", "topic", "id") data = paginate( page, ordered_objectives, ObjectiveSerializer ) # Return a HTTP response return Response(data, status=status.HTTP_200_OK)
def form_ajax_response(request, device_objects): devices, *_ = paginate(request, device_objects) status = [] for device in devices: status.append({ 'id': device.id, 'on_line': device.is_online, 'name': device.name, 'temperature': device.last_temperature, 'humidity': device.last_humidity, 'switch': device.switch, 'last': formats.date_format(timezone.localtime(device.date_of_modify), 'd M Y H:i:s') if device.is_online else formats.date_format( timezone.localtime(device.last_off_line), 'd M Y H:i:s'), 'status_temp': device.temperature_status, 'status_hum': device.humidity_status, }) return JsonResponse(status, safe=False)
async def _eval(self, ctx, *, body): """Evaluates python code.""" env = { "bot": self.bot, "ctx": ctx, "channel": ctx.channel, "author": ctx.author, "guild": ctx.guild, "message": ctx.message, "msg": ctx.message, "_": self.bot._last_result, "source": inspect.getsource, "src": inspect.getsource, "session": self.bot.session } env.update(globals()) body = self.cleanup_code(body) stdout = io.StringIO() err = out = None to_compile = f'async def func():\n{textwrap.indent(body, " ")}' try: exec(to_compile, env) except Exception as e: err = await ctx.send(f'```py\n{e.__class__.__name__}: {e}\n```') return await ctx.message.add_reaction('\u2049') func = env['func'] try: with redirect_stdout(stdout): ret = await func() except Exception as e: value = stdout.getvalue() err = await ctx.send(f'```py\n{value}{traceback.format_exc()}\n```' ) else: value = stdout.getvalue() if ret is None: if value: try: out = await ctx.send(f'```py\n{value}\n```') except: paginated_text = paginate(value) for page in paginated_text: if page == paginated_text[-1]: out = await ctx.send(f'```py\n{page}\n```') break await ctx.send(f'```py\n{page}\n```') else: self.bot._last_result = ret try: out = await ctx.send(f'```py\n{value}{ret}\n```') except: paginated_text = paginate(f"{value}{ret}") for page in paginated_text: if page == paginated_text[-1]: out = await ctx.send(f'```py\n{page}\n```') break await ctx.send(f'```py\n{page}\n```') if out: await ctx.message.add_reaction('\u2705') # tick elif err: await ctx.message.add_reaction('\u2049') # x else: await ctx.message.add_reaction('\u2705')