Ejemplo n.º 1
0
 def _process_compare(self, compare: Optional[Union[str, bool]]) -> bool:
     if isinstance(compare, bool):
         return compare
     elif isinstance(compare, str):
         return str_to_bool(compare)
     else:
         return False
Ejemplo n.º 2
0
    def _filter_request(self, request: request.Request,
                        queryset: QuerySet) -> QuerySet:
        filters = request.GET.dict()

        for key in filters:
            if key == "saved":
                if str_to_bool(request.GET["saved"]):
                    queryset = queryset.filter(
                        Q(saved=True) | Q(dashboard__isnull=False))
                else:
                    queryset = queryset.filter(Q(saved=False))
            elif key == "user":
                queryset = queryset.filter(created_by=request.user)
            elif key == "favorited":
                queryset = queryset.filter(Q(favorited=True))
            elif key == "date_from":
                queryset = queryset.filter(updated_at__gt=relative_date_parse(
                    request.GET["date_from"]))
            elif key == "date_to":
                queryset = queryset.filter(
                    updated_at__lt=relative_date_parse(request.GET["date_to"]))
            elif key == INSIGHT:
                queryset = queryset.filter(
                    filters__insight=request.GET[INSIGHT])
            elif key == "search":
                queryset = queryset.filter(
                    name__icontains=request.GET["search"])
        return queryset
Ejemplo n.º 3
0
    def get_serializer_class(self) -> Type[serializers.BaseSerializer]:

        if (self.action == "list"
                or self.action == "retrieve") and str_to_bool(
                    self.request.query_params.get("basic", "0"), ):
            return InsightBasicSerializer
        return super().get_serializer_class()
Ejemplo n.º 4
0
def process_bool(bool_to_test: Optional[Union[str, bool]]) -> bool:
    if isinstance(bool_to_test, bool):
        return bool_to_test
    elif isinstance(bool_to_test, str):
        return str_to_bool(bool_to_test)
    else:
        return False
Ejemplo n.º 5
0
def cast_str_to_desired_type(str_value: str, target_type: type) -> Any:
    if target_type == int:
        return int(str_value)

    if target_type == bool:
        return str_to_bool(str_value)

    return str_value
Ejemplo n.º 6
0
    def _filter_request(self, request: request.Request,
                        queryset: QuerySet) -> QuerySet:
        filters = request.GET.dict()

        for key in filters:
            if key == "after":
                queryset = queryset.filter(created_at__gt=request.GET["after"])
            elif key == "before":
                queryset = queryset.filter(
                    created_at__lt=request.GET["before"])
            elif key == "dashboardItemId":
                queryset = queryset.filter(
                    dashboard_item_id=request.GET["dashboardItemId"])
            elif key == "scope":
                queryset = queryset.filter(scope=request.GET["scope"])
            elif key == "apply_all":
                queryset_method = queryset.exclude if str_to_bool(
                    request.GET["apply_all"]) else queryset.filter
                queryset = queryset_method(scope="dashboard_item")
            elif key == "deleted":
                queryset = queryset.filter(
                    deleted=str_to_bool(request.GET["deleted"]))

        return queryset
Ejemplo n.º 7
0
    def _filter_request(self, request: request.Request, queryset: QuerySet) -> QuerySet:
        filters = request.GET.dict()

        for key in filters:
            if key == "saved":
                if str_to_bool(request.GET["saved"]):
                    queryset = queryset.filter(Q(saved=True) | Q(dashboard__isnull=False))
                else:
                    queryset = queryset.filter(Q(saved=False))
            elif key == "user":
                queryset = queryset.filter(created_by=request.user)
            elif key == INSIGHT:
                queryset = queryset.filter(filters__insight=request.GET[INSIGHT])

        return queryset
Ejemplo n.º 8
0
    def get_queryset(self) -> QuerySet:
        queryset = super().get_queryset()
        filters = self.request.GET.dict()

        if self.action == "list" and "deleted" not in filters:
            queryset = queryset.filter(deleted=False)

        for key in filters:
            if key == "insight":
                queryset = queryset.filter(insight_id=filters["insight"])
            if key == "dashboard":
                queryset = queryset.filter(dashboard_id=filters["dashboard"])
            elif key == "deleted":
                queryset = queryset.filter(deleted=str_to_bool(filters["deleted"]))

        return queryset
Ejemplo n.º 9
0
 def drop_off(self) -> Optional[bool]:
     drop_off_raw = self._data.get(DROP_OFF)
     return str_to_bool(str(drop_off_raw)) if drop_off_raw is not None else None