from django import forms from django.utils.translation import ugettext_lazy as _ from django.views.generic import ListView from django.views.generic.edit import FormMixin from sapl.crud import build_crud from vanilla import GenericView from .models import (CargoComissao, Comissao, Composicao, Participacao, Periodo, TipoComissao) cargo_crud = build_crud( CargoComissao, 'cargo_comissao', [ [_('Período de composição de Comissão'), [('nome', 10), ('unico', 2)]], ]) periodo_composicao_crud = build_crud( Periodo, 'periodo_composicao_comissao', [ [_('Cargo de Comissão'), [('data_inicio', 6), ('data_fim', 6)]], ]) tipo_comissao_crud = build_crud( TipoComissao, 'tipo_comissao', [ [_('Tipo Comissão'), [('nome', 9), ('sigla', 3)], [('dispositivo_regimental', 9), ('natureza', 3)]], ]) comissao_crud = build_crud( Comissao, 'modulo_comissoes', [ [_('Dados Básicos'), [('nome', 9), ('sigla', 3)], [('tipo', 3), ('data_criacao', 3), ('unidade_deliberativa', 3), ('data_extincao', 3)]], [_('Dados Complementares'), [('local_reuniao', 4), ('agenda_reuniao', 4), ('telefone_reuniao', 4)], [('endereco_secretaria', 4), ('telefone_secretaria', 4), ('fax_secretaria', 4)], [('secretario', 4), ('email', 8)], [('finalidade', 12)]], [_('Temporária'), [('apelido_temp', 8), ('data_instalacao_temp', 4)], [('data_final_prevista_temp', 4), ('data_prorrogada_temp', 4), ('data_fim_comissao', 4)]], ]) class ComposicaoForm(forms.Form): periodo = forms.CharField() class ComposicaoView(FormMixin, GenericView): template_name = 'comissoes/composicao.html' def get(self, request, *args, **kwargs): form = ComposicaoForm() composicoes = Composicao.objects.filter( comissao_id=self.kwargs['pk']).order_by('-periodo') participacoes = Participacao.objects.all() return self.render_to_response({ 'participacoes': participacoes, 'composicoes': composicoes, 'composicao_id': composicoes.first().id, 'form': form}) def post(self, request, *args, **kwargs): form = ComposicaoForm(request.POST) composicoes = Composicao.objects.filter( comissao_id=self.kwargs['pk']).order_by('-periodo') participacoes = Participacao.objects.all() return self.render_to_response({ 'participacoes': participacoes, 'composicoes': composicoes, 'composicao_id': int(form.data['periodo']), 'form': form}) class MateriasView(comissao_crud.CrudDetailView): template_name = 'comissoes/materias.html' class ReunioesView(comissao_crud.CrudDetailView): template_name = 'comissoes/reunioes.html' class ComissaoParlamentarIncluirView(comissao_crud.CrudDetailView): template_name = "comissoes/comissao_parlamentar.html"