コード例 #1
0
ファイル: views.py プロジェクト: lizianem/sapl
    def get_context_data(self, **kwargs):
        context = super(NormaPesquisaView, self).get_context_data(**kwargs)

        context['title'] = _('Pesquisar Norma Jurídica')

        self.filterset.form.fields['o'].label = _('Ordenação')

        qs = self.object_list
        if 'o' in self.request.GET and not self.request.GET['o']:
            qs = qs.order_by('-ano', 'tipo', '-numero')

        qr = self.request.GET.copy()

        if 'page' in qr:
            del qr['page']

        paginator = context['paginator']
        page_obj = context['page_obj']

        context['page_range'] = make_pagination(page_obj.number,
                                                paginator.num_pages)

        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)
        context['USE_SOLR'] = settings.USE_SOLR if hasattr(
            settings, 'USE_SOLR') else False

        return context
コード例 #2
0
ファイル: views.py プロジェクト: regisvidals/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioMateriasPorAnoAutorTipoView,
                        self).get_context_data(**kwargs)

        context['title'] = _('Matérias por Ano, Autor e Tipo')

        qtdes = {}
        for tipo in TipoMateriaLegislativa.objects.all():
            qs = kwargs['object_list']
            qtde = len(qs.filter(tipo_id=tipo.id))
            if qtde > 0:
                qtdes[tipo] = qtde
        context['qtdes'] = qtdes

        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        if 'ano' in self.request.GET and self.request.GET['ano']:
            ano = int(self.request.GET['ano'])
            context['relatorio'] = self.get_materias_autor_ano(ano, True)
            context['corelatorio'] = self.get_materias_autor_ano(ano, False)
        else:
            context['relatorio'] = []

        return context
コード例 #3
0
ファイル: views.py プロジェクト: cleytonferrari/sapl
    def get(self, request, *args, **kwargs):
        super(PesquisarDocumentoAdministrativoView, self).get(request)

        # Se a pesquisa estiver quebrando com a paginação
        # Olhe esta função abaixo
        # Provavelmente você criou um novo campo no Form/FilterSet
        # Então a ordem da URL está diferente
        data = self.filterset.data
        if data and data.get('tipo') is not None:
            url = "&" + str(self.request.environ['QUERY_STRING'])
            if url.startswith("&page"):
                ponto_comeco = url.find('tipo=') - 1
                url = url[ponto_comeco:]
        else:
            url = ''

        self.filterset.form.fields['o'].label = _('Ordenação')

        context = self.get_context_data(filter=self.filterset,
                                        object_list=self.object_list,
                                        filter_url=url,
                                        numero_res=len(self.object_list))

        context['show_results'] = show_results_filter_set(
            self.request.GET.copy())

        return self.render_to_response(context)
コード例 #4
0
ファイル: views.py プロジェクト: guilherme-dimius/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioMateriasPorAutorView,
                        self).get_context_data(**kwargs)

        context['title'] = _('Matérias por Autor')
        if not self.filterset.form.is_valid():
            return context

        qtdes = {}
        for tipo in TipoMateriaLegislativa.objects.all():
            qs = kwargs['object_list']
            qtde = len(qs.filter(tipo_id=tipo.id))
            if qtde > 0:
                qtdes[tipo] = qtde
        context['qtdes'] = qtdes

        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)
        if self.request.GET['tipo']:
            tipo = int(self.request.GET['tipo'])
            context['tipo'] = (str(
                TipoMateriaLegislativa.objects.get(id=tipo)))
        else:
            context['tipo'] = ''
        if self.request.GET['autoria__autor']:
            autor = int(self.request.GET['autoria__autor'])
            context['autor'] = (str(Autor.objects.get(id=autor)))
        else:
            context['autor'] = ''
        context['periodo'] = (self.request.GET['data_apresentacao_0'] + ' - ' +
                              self.request.GET['data_apresentacao_1'])

        return context
コード例 #5
0
ファイル: views.py プロジェクト: guilherme-dimius/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioDataFimPrazoTramitacaoView,
                        self).get_context_data(**kwargs)
        context['title'] = _('Fim de Prazo de Tramitações')
        if not self.filterset.form.is_valid():
            return context
        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        context['data_tramitacao'] = (
            self.request.GET['tramitacao__data_fim_prazo_0'] + ' - ' +
            self.request.GET['tramitacao__data_fim_prazo_1'])
        if self.request.GET['tipo']:
            tipo = self.request.GET['tipo']
            context['tipo'] = (str(
                TipoMateriaLegislativa.objects.get(id=tipo)))
        else:
            context['tipo'] = ''
        if self.request.GET['tramitacao__status']:
            tramitacao_status = self.request.GET['tramitacao__status']
            context['tramitacao__status'] = (str(
                StatusTramitacao.objects.get(id=tramitacao_status)))
        else:
            context['tramitacao__status'] = ''
        if self.request.GET['tramitacao__unidade_tramitacao_local']:
            context['tramitacao__unidade_tramitacao_local'] = \
                (str(UnidadeTramitacao.objects.get(
                    id=self.request.GET['tramitacao__unidade_tramitacao_local'])))
        else:
            context['tramitacao__unidade_tramitacao_destino'] = ''

        return context
コード例 #6
0
ファイル: views.py プロジェクト: guilherme-dimius/sapl
    def get(self, request, *args, **kwargs):
        super(PesquisarDocumentoAdministrativoView, self).get(request)

        # Se a pesquisa estiver quebrando com a paginação
        # Olhe esta função abaixo
        # Provavelmente você criou um novo campo no Form/FilterSet
        # Então a ordem da URL está diferente
        data = self.filterset.data
        if data and data.get('tipo') is not None:
            url = "&" + str(self.request.environ['QUERY_STRING'])
            if url.startswith("&page"):
                ponto_comeco = url.find('tipo=') - 1
                url = url[ponto_comeco:]
        else:
            url = ''

        self.filterset.form.fields['o'].label = _('Ordenação')

        # é usada essa verificação anônima para quando os documentos administrativos
        # estão no modo ostensivo, mas podem existir documentos administrativos
        # restritos
        if request.user.is_anonymous():
            length = self.object_list.filter(restrito=False).count()
        else:
            length = self.object_list.count()

        context = self.get_context_data(filter=self.filterset,
                                        filter_url=url,
                                        numero_res=length
                                        )

        context['show_results'] = show_results_filter_set(
            self.request.GET.copy())

        return self.render_to_response(context)
コード例 #7
0
ファイル: views.py プロジェクト: regisvidals/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioDataFimPrazoTramitacaoView,
                        self).get_context_data(**kwargs)
        context['title'] = _('Fim de Prazo de Tramitações')
        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        return context
コード例 #8
0
ファイル: views.py プロジェクト: guilherme-dimius/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioMateriasTramitacaoView,
                        self).get_context_data(**kwargs)

        context['title'] = _('Matérias em Tramitação')
        if not self.filterset.form.is_valid():
            return context

        qr = self.request.GET.copy()
        qs = context['object_list']
        qs = qs.filter(em_tramitacao=True)

        if qr.get('tramitacao__unidade_tramitacao_destino'):
            qs = filtra_url_materias_em_tramitacao(
                qr, qs, 'tramitacao__unidade_tramitacao_destino', 'local')
        if qr.get('tramitacao__status'):
            qs = filtra_url_materias_em_tramitacao(qr, qs,
                                                   'tramitacao__status',
                                                   'status')

        context['object_list'] = qs

        qtdes = {}
        for tipo in TipoMateriaLegislativa.objects.all():
            qs = context['object_list']
            qtde = len(qs.filter(tipo_id=tipo.id))
            if qtde > 0:
                qtdes[tipo] = qtde
        context['qtdes'] = qtdes
        context['ano'] = (self.request.GET['ano'])
        if self.request.GET['tipo']:
            tipo = self.request.GET['tipo']
            context['tipo'] = (str(
                TipoMateriaLegislativa.objects.get(id=tipo)))
        else:
            context['tipo'] = ''
        if self.request.GET['tramitacao__status']:
            tramitacao_status = self.request.GET['tramitacao__status']
            context['tramitacao__status'] = (str(
                StatusTramitacao.objects.get(id=tramitacao_status)))
        else:
            context['tramitacao__status'] = ''
        if self.request.GET['tramitacao__unidade_tramitacao_destino']:
            context['tramitacao__unidade_tramitacao_destino'] = (str(
                UnidadeTramitacao.objects.get(
                    id=self.request.
                    GET['tramitacao__unidade_tramitacao_destino'])))
        else:
            context['tramitacao__unidade_tramitacao_destino'] = ''
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        return context
コード例 #9
0
ファイル: views.py プロジェクト: regisvidals/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioAtasView, self).get_context_data(**kwargs)
        context['title'] = _('Atas das Sessões Plenárias')

        # Verifica se os campos foram preenchidos
        if not self.filterset.form.is_valid():
            return context

        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        return context
コード例 #10
0
ファイル: views.py プロジェクト: guilherme-dimius/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioReuniaoView, self).get_context_data(**kwargs)
        context['title'] = _('Reunião de Comissão')
        if not self.filterset.form.is_valid():
            return context
        qr = self.request.GET.copy()

        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        if self.request.GET['comissao']:
            comissao = self.request.GET['comissao']
            context['comissao'] = (str(Comissao.objects.get(id=comissao)))
        else:
            context['comissao'] = ''

        return context
コード例 #11
0
ファイル: views.py プロジェクト: guilherme-dimius/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioAudienciaView,
                        self).get_context_data(**kwargs)
        context['title'] = _('Audiência Pública')
        if not self.filterset.form.is_valid():
            return context

        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        if self.request.GET['tipo']:
            tipo = self.request.GET['tipo']
            context['tipo'] = (str(TipoAudienciaPublica.objects.get(id=tipo)))
        else:
            context['tipo'] = ''

        return context
コード例 #12
0
ファイル: views.py プロジェクト: regisvidals/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioMateriasPorAutorView,
                        self).get_context_data(**kwargs)

        context['title'] = _('Matérias por Autor')

        qtdes = {}
        for tipo in TipoMateriaLegislativa.objects.all():
            qs = kwargs['object_list']
            qtde = len(qs.filter(tipo_id=tipo.id))
            if qtde > 0:
                qtdes[tipo] = qtde
        context['qtdes'] = qtdes

        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        return context
コード例 #13
0
ファイル: views.py プロジェクト: fabiorauber/sapl
    def get(self, request, *args, **kwargs):
        super(PesquisarParlamentarView, self).get(request)

        data = self.filterset.data
        url = ''
        if data:
            url = "&" + str(self.request.META['QUERY_STRING'])
            if url.startswith("&page"):
                ponto_comeco = url.find('nome_parlamentar=') - 1
                url = url[ponto_comeco:]

        context = self.get_context_data(filter=self.filterset,
                                        object_list=self.object_list,
                                        filter_url=url,
                                        numero_res=len(self.object_list))

        context['show_results'] = show_results_filter_set(
            self.request.GET.copy())

        return self.render_to_response(context)
コード例 #14
0
    def get_context_data(self, **kwargs):
        context = super(NormaPesquisaView, self).get_context_data(**kwargs)

        context['title'] = _('Pesquisar Norma Jurídica')

        qr = self.request.GET.copy()

        if 'page' in qr:
            del qr['page']

        paginator = context['paginator']
        page_obj = context['page_obj']

        context['page_range'] = make_pagination(page_obj.number,
                                                paginator.num_pages)

        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        return context
コード例 #15
0
ファイル: views.py プロジェクト: williamaurreav23/sapl
    def get_context_data(self, **kwargs):
        context = super(AdicionaPautaView, self).get_context_data(**kwargs)

        # Adiciona = 1; Remove = 0
        context['opcao'] = 1

        context['object'] = Reuniao.objects.get(pk=self.kwargs['pk'])
        context['root_pk'] = context['object'].comissao.pk

        qr = self.request.GET.copy()

        materias_pauta = PautaReuniao.objects.filter(reuniao=context['object'])
        nao_listar = [mp.materia.pk for mp in materias_pauta]

        context['object_list'] = context['object_list'].filter(
            tramitacao__unidade_tramitacao_destino__comissao=context['root_pk']
        ).exclude(materia__pk__in=nao_listar).order_by("materia__tipo",
                                                       "-materia__ano",
                                                       "materia__numero")

        context['numero_resultados'] = len(context['object_list'])
        context['show_results'] = show_results_filter_set(qr)

        return context
コード例 #16
0
ファイル: views.py プロジェクト: regisvidals/sapl
    def get_context_data(self, **kwargs):
        context = super(RelatorioPresencaSessaoView,
                        self).get_context_data(**kwargs)
        context['title'] = _('Presença dos parlamentares nas sessões')

        # Verifica se os campos foram preenchidos
        if not self.filterset.form.is_valid():
            return context

        # =====================================================================
        # if 'salvar' not in self.request.GET:
        where = context['object_list'].query.where
        _range = where.children[0].rhs

        sufixo = 'sessao_plenaria__data_inicio__range'
        param0 = {'%s' % sufixo: _range}

        # Parlamentares com Mandato no intervalo de tempo (Ativos)
        parlamentares_qs = parlamentares_ativos(
            _range[0], _range[1]).order_by('nome_parlamentar')
        parlamentares_id = parlamentares_qs.values_list('id', flat=True)

        # Presenças de cada Parlamentar em Sessões
        presenca_sessao = SessaoPlenariaPresenca.objects.filter(
            parlamentar_id__in=parlamentares_id,
            sessao_plenaria__data_inicio__range=_range).values_list(
                'parlamentar_id').annotate(sessao_count=Count('id'))

        # Presenças de cada Ordem do Dia
        presenca_ordem = PresencaOrdemDia.objects.filter(
            parlamentar_id__in=parlamentares_id,
            sessao_plenaria__data_inicio__range=_range).values_list(
                'parlamentar_id').annotate(sessao_count=Count('id'))

        total_ordemdia = PresencaOrdemDia.objects.filter(**param0).distinct(
            'sessao_plenaria__id').order_by('sessao_plenaria__id').count()

        total_sessao = context['object_list'].count()

        # Completa o dicionario as informacoes parlamentar/sessao/ordem
        parlamentares_presencas = []
        for i, p in enumerate(parlamentares_qs):
            parlamentares_presencas.append({
                'parlamentar': p,
                'sessao_porc': 0,
                'ordemdia_porc': 0
            })
            try:
                sessao_count = presenca_sessao.get(parlamentar_id=p.id)[1]
            except ObjectDoesNotExist:
                sessao_count = 0
            try:
                ordemdia_count = presenca_ordem.get(parlamentar_id=p.id)[1]
            except ObjectDoesNotExist:
                ordemdia_count = 0

            parlamentares_presencas[i].update({
                'sessao_count': sessao_count,
                'ordemdia_count': ordemdia_count
            })

            if total_sessao != 0:
                parlamentares_presencas[i].update({
                    'sessao_porc':
                    round(sessao_count * 100 / total_sessao, 2)
                })
            if total_ordemdia != 0:
                parlamentares_presencas[i].update({
                    'ordemdia_porc':
                    round(ordemdia_count * 100 / total_ordemdia, 2)
                })

        context['date_range'] = _range
        context['total_ordemdia'] = total_ordemdia
        context['total_sessao'] = context['object_list'].count()
        context['parlamentares'] = parlamentares_presencas
        context['periodo'] = (self.request.GET['data_inicio_0'] + ' - ' +
                              self.request.GET['data_inicio_1'])
        # =====================================================================
        qr = self.request.GET.copy()
        context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''

        context['show_results'] = show_results_filter_set(qr)

        return context