def get_queryset(self): ''' Retorna as proposições originais ou apensadas de um parlamentar. Se não for passado um interesse como argumento, os dados retornados serão os do interesse default (leggo). ''' interesse_arg = self.request.query_params.get('interesse') tema_arg = self.request.query_params.get('tema') destaques_arg = self.request.query_params.get('destaque') if interesse_arg is None: interesse_arg = 'leggo' interesses = get_filtered_interesses(interesse_arg, tema_arg) id_autor_arg = self.kwargs['id_autor'] autorias = Autoria.objects if destaques_arg == 'true': destaques = get_filtered_destaques(destaques_arg) autorias = (autorias.filter(id_leggo__in=destaques)) autorias = (autorias.filter( id_leggo__in=interesses.values('id_leggo'), id_autor_parlametria=id_autor_arg, data__gte='2019-01-31', tipo_documento='Prop. Original / Apensada').distinct( 'id_autor_parlametria', 'id_documento').values('id_autor_parlametria', 'id_documento', 'peso_autor_documento', 'id_leggo', 'data', 'descricao_tipo_documento', 'url_inteiro_teor', 'tipo_documento', 'tipo_acao', 'sigla')) return autorias
def get(self, request, format=None): interesseArg = self.request.query_params.get("interesse") temaArg = self.request.query_params.get('tema') destaqueArg = self.request.query_params.get('destaque') # Adiciona interesse default if interesseArg is None: interesseArg = "leggo" interesses = get_filtered_interesses(interesseArg, temaArg) props = Proposicao.objects if destaqueArg == 'true': destaques = get_filtered_destaques(destaqueArg) props = props.filter(id_leggo__in=destaques) props = ( props.filter(id_leggo__in=interesses.values('id_leggo')) .distinct() .aggregate(numero_proposicoes=Count('id_leggo')) ) return JsonResponse(props, status=status.HTTP_200_OK)
def get_queryset(self): """ Retorna parlamentares e a quantidade de relatorias """ interesseArg = self.request.query_params.get("interesse") tema_arg = self.request.query_params.get("tema") destaques_arg = self.request.query_params.get('destaque') if interesseArg is None: interesseArg = "leggo" interesses = get_filtered_interesses(interesseArg, tema_arg) etapas = EtapaProposicao.objects if destaques_arg == 'true': destaques = get_filtered_destaques(destaques_arg) etapas = ( etapas.filter(id_leggo__in=destaques) ) queryset = ( etapas.filter( id_leggo__in=interesses.values("id_leggo"), relator_id__isnull=False ) .values("relator_id", "relator_id_parlametria") .annotate(quantidade_relatorias=Count("relator_id")) .order_by("-quantidade_relatorias") ) return queryset
def get_queryset(self): """ Retorna id's e quantidade de relatorias de um determinado parlamentar """ leggo_id_autor = self.kwargs["id_autor"] interesseArg = self.request.query_params.get("interesse") tema_arg = self.request.query_params.get("tema") destaques_arg = self.request.query_params.get('destaque') etapas = EtapaProposicao.objects if destaques_arg == 'true': destaques = get_filtered_destaques(destaques_arg) etapas = ( etapas.filter(id_leggo__in=destaques) ) if interesseArg is None: interesseArg = "leggo" interesses = get_filtered_interesses(interesseArg, tema_arg) queryset = etapas.filter( id_leggo__in=interesses.values("id_leggo"), relator_id_parlametria=leggo_id_autor, ).all() return queryset
def get_queryset(self): """ Retorna a atividade parlamentar por interesse e tema de um parlamentar. """ leggo_id_autor = self.kwargs["id_autor"] tema_arg = self.request.query_params.get("tema") interesse_arg = self.request.query_params.get("interesse") destaques_arg = self.request.query_params.get('destaque') if interesse_arg is None: interesse_arg = "leggo" interesses = get_filtered_interesses(interesse_arg, tema_arg) atores = Atores.objects if destaques_arg == 'true': destaques = get_filtered_destaques(destaques_arg) atores = ( atores.filter(id_leggo__in=destaques) ) atores = ( atores.filter(id_leggo__in=interesses.values("id_leggo")) .filter(tipo_acao__in=['Proposição', 'Recurso']) .select_related("entidade") .values( "id_autor_parlametria" ) .annotate( total_documentos=Sum("num_documentos"), peso_documentos=Sum("peso_total_documentos"), ) .prefetch_related(Prefetch("interesse", queryset=interesses)) ) min_max = atores.aggregate( max_peso_documentos=Max("peso_documentos"), min_peso_documentos=Min("peso_documentos")) ator = atores.filter(id_autor_parlametria=leggo_id_autor).annotate( max_peso_documentos=Value(min_max["max_peso_documentos"], FloatField()), min_peso_documentos=Value(min_max["min_peso_documentos"], FloatField()) ) return ator
def get_queryset(self): """ Retorna dados básicos e de atividade parlamentar por interesse. """ tema_arg = self.request.query_params.get("tema") interesse_arg = self.request.query_params.get("interesse") destaques_arg = self.request.query_params.get('destaque') if interesse_arg is None: interesse_arg = "leggo" interesses = get_filtered_interesses(interesse_arg, tema_arg) atores = Atores.objects if destaques_arg == 'true': destaques = get_filtered_destaques(destaques_arg) atores = ( atores.filter(id_leggo__in=destaques) ) atuacao = ( atores.filter(id_leggo__in=interesses.values("id_leggo")) .select_related("entidade") .values( "id_autor", "id_autor_parlametria", "entidade__nome", "entidade__uf", "entidade__partido", "casa_autor", "id_ext", "casa", "tipo_generico", "tipo_acao", "sigla_local", "num_documentos", "peso_total_documentos" ) .prefetch_related(Prefetch("interesse", queryset=interesses)) ) return atuacao