|
|
@ -1,10 +1,9 @@ |
|
|
|
from django.contrib import messages |
|
|
|
from django.core.urlresolvers import reverse, reverse_lazy |
|
|
|
from django.http import HttpResponseRedirect |
|
|
|
from django.core.urlresolvers import reverse_lazy |
|
|
|
from django.shortcuts import redirect |
|
|
|
from django.utils.datastructures import MultiValueDictKeyError |
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
from django.views.generic import CreateView, FormView, UpdateView |
|
|
|
from django.views.generic import FormView |
|
|
|
|
|
|
|
import crud.base |
|
|
|
import crud.masterdetail |
|
|
@ -110,68 +109,6 @@ class ParlamentarCrud(Crud): |
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
def validate(form, parlamentar, filiacao, request): |
|
|
|
data_filiacao = form.cleaned_data['data'] |
|
|
|
data_desfiliacao = form.cleaned_data['data_desfiliacao'] |
|
|
|
|
|
|
|
# Dá erro caso a data de desfiliação seja anterior a de filiação |
|
|
|
if data_desfiliacao and data_desfiliacao < data_filiacao: |
|
|
|
error_msg = _("A data de filiação não pode anterior \ |
|
|
|
à data de desfiliação") |
|
|
|
messages.add_message(request, messages.ERROR, error_msg) |
|
|
|
return False |
|
|
|
|
|
|
|
# Esse bloco garante que não haverá intersecção entre os |
|
|
|
# períodos de filiação |
|
|
|
id_filiacao_atual = filiacao.pk |
|
|
|
todas_filiacoes = parlamentar.filiacao_set.all() |
|
|
|
|
|
|
|
for filiacoes in todas_filiacoes: |
|
|
|
if (not filiacoes.data_desfiliacao and |
|
|
|
filiacoes.id != id_filiacao_atual): |
|
|
|
error_msg = _("O parlamentar não pode se filiar a algum partido \ |
|
|
|
sem antes se desfiliar do partido anterior") |
|
|
|
messages.add_message(request, messages.ERROR, error_msg) |
|
|
|
return False |
|
|
|
|
|
|
|
error_msg = None |
|
|
|
for filiacoes in todas_filiacoes: |
|
|
|
if filiacoes.id != id_filiacao_atual: |
|
|
|
|
|
|
|
data_init = filiacoes.data |
|
|
|
data_fim = filiacoes.data_desfiliacao |
|
|
|
|
|
|
|
if data_init <= data_filiacao < data_fim: |
|
|
|
|
|
|
|
error_msg = _("A data de filiação e \ |
|
|
|
desfiliação não podem estar no intervalo \ |
|
|
|
de outro período de filiação") |
|
|
|
break |
|
|
|
|
|
|
|
if (data_desfiliacao and |
|
|
|
data_init < data_desfiliacao < data_fim): |
|
|
|
|
|
|
|
error_msg = _("A data de filiação e \ |
|
|
|
desfiliação não podem estar no intervalo \ |
|
|
|
de outro período de filiação") |
|
|
|
break |
|
|
|
|
|
|
|
if (data_desfiliacao and |
|
|
|
data_filiacao <= data_init and |
|
|
|
data_desfiliacao >= data_fim): |
|
|
|
|
|
|
|
error_msg = _("A data de filiação e \ |
|
|
|
desfiliação não podem estar no intervalo \ |
|
|
|
de outro período de filiação") |
|
|
|
break |
|
|
|
|
|
|
|
if error_msg: |
|
|
|
messages.add_message(request, messages.ERROR, error_msg) |
|
|
|
return False |
|
|
|
else: |
|
|
|
return True |
|
|
|
|
|
|
|
|
|
|
|
class MesaDiretoraView(FormView): |
|
|
|
template_name = "mesa_diretora/mesa_diretora.html" |
|
|
|
success_url = reverse_lazy('parlamentares:mesa_diretora') |
|
|
|