Skip to content

Commit

Permalink
Merge branch 'release/1.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
alcfernandes committed Feb 3, 2021
2 parents 4c49336 + 7f140b7 commit 997120f
Show file tree
Hide file tree
Showing 110 changed files with 3,079 additions and 237 deletions.
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,27 @@ API da aplicação *SIG.Escola* da Secretaria de Educação da cidade de São Pa

License: MIT

Versão: 1.4.0
Versão: 1.5.0

## Release Notes

### 1.5.0 - 02/02/2021 - Entregas da Sprint 14
* DRE > Melhorias no relatório consolidado
* DRE > Motivos de aprovação com ressalvas no acompanhamento de PCs
* DRE > Seleção de período do acompanhamento de PCs agora inicia com o período anterior e não o corrente
* DRE > Novo bloco "Associações não regularizadas" no relatório consolidado DRE
* SME > Cadastro de Associações
* SME > Cadastro de Ações
* SME > Cadastro de vínculos de ações e associações
* SME > Cadastro de Períodos
* UE > Melhorias na geração de prestações de contas
* UE > Cadastro de membros agora vincula automaticamente o membro ao seu usuário do sistema
* ADM > Agora é possivel fazer carga de associações sem CNPJ
* ADM > Pesquisa por nome nas tabelas de ações da associação e contas da associação

### 1.4.0 - 07/01/2021 - Entregas da Sprint 13
* Visão SME
* SME > Painel de parâmetros do sistema
* DRE > Painel de parâmetros do sistema
* SME > Acompanhamento de prestações de conta > Resumo Geral
* SME > Acompanhamento de prestações de conta > Resumo por DRE (lista)
* Lançamento de Créditos não relativos ao PTRF
Expand Down
7 changes: 6 additions & 1 deletion config/api_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@
TiposDevolucaoAoTesouroViewSet,
TiposContaViewSet,
ComentariosAnalisesPrestacoesViewSet,
AcaoAssociacaoViewSet,
AcoesViewSet
)
from sme_ptrf_apps.despesas.api.views.despesas_viewset import DespesasViewSet
from sme_ptrf_apps.despesas.api.views.especificacoes_viewset import EspecificacaoMaterialServicoViewSet
from sme_ptrf_apps.despesas.api.views.fornecedores_viewset import FornecedoresViewSet
from sme_ptrf_apps.despesas.api.views.rateios_despesas_viewset import RateiosDespesasViewSet
from sme_ptrf_apps.dre.api.views import (FaqCategoriasViewSet, FaqsViewSet, TecnicosDreViewSet, AtribuicaoViewset,
RelatoriosConsolidadosDREViewSet,
JustificativasRelatoriosConsolidadosDreViewSet)
JustificativasRelatoriosConsolidadosDreViewSet, MotivoAprovacaoRessalvaViewSet)
from sme_ptrf_apps.receitas.api.views import ReceitaViewSet, RepasseViewSet
from sme_ptrf_apps.users.api.views import EsqueciMinhaSenhaViewSet, LoginView, RedefinirSenhaViewSet, UserViewSet

Expand Down Expand Up @@ -75,6 +77,9 @@ def versao(request):
router.register("comentarios-de-analises", ComentariosAnalisesPrestacoesViewSet)
router.register("relatorios-consolidados-dre", RelatoriosConsolidadosDREViewSet)
router.register("justificativas-relatorios-consolidados-dre", JustificativasRelatoriosConsolidadosDreViewSet)
router.register("motivos-aprovacao-ressalva", MotivoAprovacaoRessalvaViewSet)
router.register("acoes-associacoes", AcaoAssociacaoViewSet)
router.register("acoes", AcoesViewSet)
app_name = "api"
urlpatterns = router.urls
urlpatterns += [
Expand Down
2 changes: 1 addition & 1 deletion sme_ptrf_apps/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "1.4.0"
__version__ = "1.5.0"
__version_info__ = tuple(
[
int(num) if num.isdigit() else num
Expand Down
15 changes: 11 additions & 4 deletions sme_ptrf_apps/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -396,19 +396,26 @@ def prestacao_conta_anterior(periodo_anterior, associacao):
associacao=associacao,
)

@pytest.fixture
def motivo_aprovacao_ressalva_x():
return baker.make(
'dre.MotivoAprovacaoRessalva',
motivo='X'
)


@pytest.fixture
def prestacao_conta(periodo, associacao):
def prestacao_conta(periodo, associacao, motivo_aprovacao_ressalva_x):
return baker.make(
'PrestacaoConta',
periodo=periodo,
associacao=associacao,
data_recebimento=date(2020, 10, 1),
data_ultima_analise=date(2020, 10, 1),
devolucao_tesouro=True,
ressalvas_aprovacao='Texto ressalva',
motivos_reprovacao="Motivo reprovação"
)
motivos_reprovacao="Motivo reprovação",
motivos_aprovacao_ressalva=[motivo_aprovacao_ressalva_x, ],
outros_motivos_aprovacao_ressalva="Outros motivos")


@pytest.fixture
Expand Down
4 changes: 2 additions & 2 deletions sme_ptrf_apps/core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,15 @@ def get_nome_escola(self, obj):
@admin.register(ContaAssociacao)
class ContaAssociacaoAdmin(admin.ModelAdmin):
list_display = ('associacao', 'tipo_conta', 'status')
search_fields = ('uuid', 'associacao__unidade__codigo_eol')
search_fields = ('uuid', 'associacao__unidade__codigo_eol', 'associacao__unidade__nome', 'associacao__nome')
list_filter = ('status', 'associacao', 'tipo_conta')
readonly_fields = ('uuid', 'id')


@admin.register(AcaoAssociacao)
class AcaoAssociacaoAdmin(admin.ModelAdmin):
list_display = ('associacao', 'acao', 'status', 'criado_em')
search_fields = ('uuid', 'associacao__unidade__codigo_eol')
search_fields = ('uuid', 'associacao__unidade__codigo_eol', 'associacao__unidade__nome', 'associacao__nome')
list_filter = ('status', 'associacao', 'acao')
readonly_fields = ('uuid', 'id')

Expand Down
7 changes: 6 additions & 1 deletion sme_ptrf_apps/core/api/serializers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
from .devolucao_ao_tesouro_serializer import DevolucaoAoTesouroRetrieveSerializer
from .cobranca_prestacao_conta_serializer import CobrancaPrestacaoContaListSerializer
from .devolucao_prestacao_conta_serializer import DevolucaoPrestacaoContaRetrieveSerializer
from .acao_associacao_serializer import AcaoAssociacaoLookUpSerializer, AcaoAssociacaoSerializer
from .acao_associacao_serializer import (
AcaoAssociacaoLookUpSerializer,
AcaoAssociacaoSerializer,
AcaoAssociacaoRetrieveSerializer,
AcaoAssociacaoCreateSerializer
)
from .associacao_serializer import (
AssociacaoCreateSerializer,
AssociacaoInfoAtaSerializer,
Expand Down
31 changes: 29 additions & 2 deletions sme_ptrf_apps/core/api/serializers/acao_associacao_serializer.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from rest_framework import serializers

from ..serializers.acao_serializer import AcaoSerializer
from ..serializers.associacao_serializer import AssociacaoSerializer
from ...models import AcaoAssociacao
from ..serializers.associacao_serializer import AssociacaoSerializer, AssociacaoListSerializer
from ...models import AcaoAssociacao, Associacao, Acao


class AcaoAssociacaoSerializer(serializers.ModelSerializer):
Expand All @@ -27,3 +27,30 @@ def get_recurso_proprio(self, obj):
class Meta:
model = AcaoAssociacao
fields = ('uuid', 'id', 'nome', 'e_recursos_proprios')


class AcaoAssociacaoCreateSerializer(serializers.ModelSerializer):
associacao = serializers.SlugRelatedField(
slug_field='uuid',
required=False,
queryset=Associacao.objects.all()
)

acao = serializers.SlugRelatedField(
slug_field='uuid',
required=False,
queryset=Acao.objects.all()
)

class Meta:
model = AcaoAssociacao
fields = ('uuid', 'associacao', 'acao', 'status')


class AcaoAssociacaoRetrieveSerializer(serializers.ModelSerializer):
associacao = AssociacaoListSerializer()
acao = AcaoSerializer()

class Meta:
model = AcaoAssociacao
fields = ('uuid', 'id', 'associacao', 'acao', 'status', 'criado_em')
2 changes: 1 addition & 1 deletion sme_ptrf_apps/core/api/serializers/acao_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
class AcaoSerializer(serializers.ModelSerializer):
class Meta:
model = Acao
fields = ('id', 'nome', 'e_recursos_proprios')
fields = ('id', 'uuid', 'nome', 'e_recursos_proprios', 'posicao_nas_pesquisas')
43 changes: 41 additions & 2 deletions sme_ptrf_apps/core/api/serializers/associacao_serializer.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from rest_framework import serializers

from ...api.serializers.unidade_serializer import (UnidadeInfoAtaSerializer, UnidadeLookUpSerializer,
UnidadeListSerializer, UnidadeSerializer)
from ...models import Associacao, Unidade
UnidadeListSerializer, UnidadeSerializer, UnidadeCreateSerializer)
from ...api.serializers.periodo_serializer import PeriodoLookUpSerializer
from ...models import Associacao, Unidade, Periodo


class AssociacaoSerializer(serializers.ModelSerializer):
Expand Down Expand Up @@ -30,11 +31,43 @@ class Meta:


class AssociacaoCreateSerializer(serializers.ModelSerializer):
unidade = UnidadeCreateSerializer(many=False)
periodo_inicial = serializers.SlugRelatedField(
slug_field='uuid',
required=False,
queryset=Periodo.objects.all(),
allow_null=True,
allow_empty=True,
)

class Meta:
model = Associacao
fields = '__all__'

def create(self, validated_data):
unidade = validated_data.pop('unidade')

associacao = Associacao.objects.create(**validated_data)
unidade_object = UnidadeCreateSerializer().create(unidade)
associacao.unidade = unidade_object
associacao.save()

return associacao


class AssociacaoUpdateSerializer(serializers.ModelSerializer):
unidade = serializers.SlugRelatedField(
slug_field='uuid',
required=False,
queryset=Unidade.objects.all()
)
periodo_inicial = serializers.SlugRelatedField(
slug_field='uuid',
required=False,
queryset=Periodo.objects.all(),
allow_null=True,
allow_empty=True,
)

class Meta:
model = Associacao
Expand Down Expand Up @@ -62,13 +95,16 @@ class Meta:
fields = [
'uuid',
'nome',
'cnpj',
'unidade',
'status_regularidade',
'motivo_nao_regularidade'
]


class AssociacaoCompletoSerializer(serializers.ModelSerializer):
unidade = UnidadeSerializer(many=False)
periodo_inicial = PeriodoLookUpSerializer()

class Meta:
model = Associacao
Expand All @@ -83,4 +119,7 @@ class Meta:
'presidente_associacao',
'presidente_conselho_fiscal',
'processo_regularidade',
'motivo_nao_regularidade',
'periodo_inicial',
'id'
]
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,13 @@ class MembroAssociacaoCreateSerializer(serializers.ModelSerializer):
queryset=Associacao.objects.all()
)

usuario = serializers.PrimaryKeyRelatedField(
required=False,
queryset=User.objects.all(),
allow_null=True
)

class Meta:
model = MembroAssociacao
exclude = ('id',)


class MembroAssociacaoListSerializer(serializers.ModelSerializer):
associacao = AssociacaoLookupSerializer()
usuario = UserSerializer()

class Meta:
model = MembroAssociacao
Expand Down
57 changes: 56 additions & 1 deletion sme_ptrf_apps/core/api/serializers/periodo_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,61 @@ class Meta:


class PeriodoSerializer(serializers.ModelSerializer):
periodo_anterior = PeriodoLookUpSerializer()

class Meta:
model = Periodo
fields = (
'uuid',
'referencia',
'data_inicio_realizacao_despesas',
'data_fim_realizacao_despesas',
'data_prevista_repasse',
'data_inicio_prestacao_contas',
'data_fim_prestacao_contas',
'editavel',
'periodo_anterior',
)


class PeriodoRetrieveSerializer(serializers.ModelSerializer):
periodo_anterior = PeriodoLookUpSerializer()

class Meta:
model = Periodo
fields = (
'uuid',
'id',
'referencia',
'data_inicio_realizacao_despesas',
'data_fim_realizacao_despesas',
'data_prevista_repasse',
'data_inicio_prestacao_contas',
'data_fim_prestacao_contas',
'editavel',
'periodo_anterior',
)


class PeriodoCreateSerializer(serializers.ModelSerializer):
periodo_anterior = serializers.SlugRelatedField(
slug_field='uuid',
required=False,
queryset=Periodo.objects.all(),
allow_null=True,
allow_empty=True,
)

class Meta:
model = Periodo
exclude = ('criado_em', 'alterado_em', 'id', 'periodo_anterior')
fields = (
'uuid',
'referencia',
'data_inicio_realizacao_despesas',
'data_fim_realizacao_despesas',
'data_prevista_repasse',
'data_inicio_prestacao_contas',
'data_fim_prestacao_contas',
'editavel',
'periodo_anterior',
)
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
DevolucaoAoTesouroRetrieveSerializer)
from sme_ptrf_apps.core.services.processos_services import get_processo_sei_da_prestacao

from sme_ptrf_apps.dre.api.serializers.motivo_aprovacao_ressalva_serializer import MotivoAprovacaoRessalvaSerializer


class PrestacaoContaLookUpSerializer(serializers.ModelSerializer):
periodo_uuid = serializers.SerializerMethodField('get_periodo_uuid')
Expand Down Expand Up @@ -73,6 +75,7 @@ class Meta:
devolucao_ao_tesouro = serializers.SerializerMethodField('get_devolucao_ao_tesouro')
analises_de_conta_da_prestacao = AnaliseContaPrestacaoContaRetrieveSerializer(many=True)
devolucoes_ao_tesouro_da_prestacao = DevolucaoAoTesouroRetrieveSerializer(many=True)
motivos_aprovacao_ressalva = MotivoAprovacaoRessalvaSerializer(many=True)

def get_periodo_uuid(self, obj):
return obj.periodo.uuid
Expand All @@ -87,7 +90,8 @@ class Meta:
model = PrestacaoConta
fields = ('uuid', 'status', 'associacao', 'periodo_uuid', 'tecnico_responsavel', 'data_recebimento',
'devolucoes_da_prestacao', 'processo_sei', 'data_ultima_analise', 'devolucao_ao_tesouro',
'analises_de_conta_da_prestacao', 'ressalvas_aprovacao', 'motivos_reprovacao', 'devolucoes_ao_tesouro_da_prestacao')
'analises_de_conta_da_prestacao', 'motivos_reprovacao',
'devolucoes_ao_tesouro_da_prestacao', 'motivos_aprovacao_ressalva', 'outros_motivos_aprovacao_ressalva')


def _str_devolucao_ao_tesouro(obj):
Expand Down
8 changes: 8 additions & 0 deletions sme_ptrf_apps/core/api/serializers/unidade_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class Meta:

class UnidadeLookUpSerializer(serializers.ModelSerializer):
dre = DreSerializer()

class Meta:
model = Unidade
fields = ('uuid', 'codigo_eol', 'tipo_unidade', 'nome', 'sigla', 'dre')
Expand Down Expand Up @@ -56,3 +57,10 @@ class UnidadeListSerializer(serializers.ModelSerializer):
class Meta:
model = Unidade
fields = ('uuid', 'codigo_eol', 'nome_com_tipo',)


class UnidadeCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Unidade
fields = ('codigo_eol', 'nome', 'email', 'telefone', 'numero',
'tipo_logradouro', 'logradouro', 'bairro', 'cep', 'tipo_unidade',)
2 changes: 2 additions & 0 deletions sme_ptrf_apps/core/api/views/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@
from .tipos_devolucao_ao_tesouro_viewset import TiposDevolucaoAoTesouroViewSet
from .tipo_conta_viewset import TiposContaViewSet
from .comentarios_analises_prestacoes_viewset import ComentariosAnalisesPrestacoesViewSet
from .acao_associacao_viewset import AcaoAssociacaoViewSet
from .acoes_viewset import AcoesViewSet
Loading

0 comments on commit 997120f

Please sign in to comment.