{% endif %}""", ),
row14,
form_actions())
)
super(ParlamentaresForm, self).__init__(
*args, **kwargs)
class ParlamentaresEditForm(ParlamentaresForm):
def __init__(self, *args, **kwargs):
super(ParlamentaresEditForm, self).__init__(
*args, **kwargs)
self.helper.layout[0][-1:] = form_actions(more=[
HTML(' '),
Submit('excluir', 'Excluir',
css_class='btn btn-primary')])
class MandatoForm(ModelForm):
class Meta:
model = Mandato
fields = ['legislatura',
'coligacao',
'votos_recebidos',
'data_fim_mandato',
'data_expedicao_diploma',
'observacao']
def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row(
[('legislatura', 4),
('coligacao', 4),
('votos_recebidos', 4)])
row2 = crispy_layout_mixin.to_row(
[('data_fim_mandato', 6),
('data_expedicao_diploma', 6)])
row3 = crispy_layout_mixin.to_row(
[('observacao', 12)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(_('Adicionar Mandato'), row1, row2, row3,
form_actions())
)
super(MandatoForm, self).__init__(
*args, **kwargs)
class MandatoEditForm(MandatoForm):
def __init__(self, *args, **kwargs):
super(MandatoEditForm, self).__init__(
*args, **kwargs)
self.helper.layout[0][-1:] = form_actions(more=[
HTML(' '),
Submit('excluir', 'Excluir',
css_class='btn btn-primary')])
class DependenteForm(ModelForm):
class Meta:
model = Dependente
fields = ['nome',
'data_nascimento',
'tipo',
'sexo',
'cpf',
'rg',
'titulo_eleitor']
def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row(
[('nome', 12)])
row2 = crispy_layout_mixin.to_row(
[('tipo', 4),
('sexo', 4),
('data_nascimento', 4)])
row3 = crispy_layout_mixin.to_row(
[('cpf', 4),
('rg', 4),
('titulo_eleitor', 4)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(_('Cadastro de Dependentes'),
row1, row2, row3,
form_actions())
)
super(DependenteForm, self).__init__(
*args, **kwargs)
class DependenteEditForm(DependenteForm):
def __init__(self, *args, **kwargs):
super(DependenteEditForm, self).__init__(
*args, **kwargs)
self.helper.layout[0][-1:] = form_actions(more=[
HTML(' '),
Submit('excluir', 'Excluir',
css_class='btn btn-primary')])
class FiliacaoForm(ModelForm):
class Meta:
model = Filiacao
fields = ['partido',
'data',
'data_desfiliacao']
# def clean(self):
# cleaned_data = super(FiliacaoForm, self).clean()
#
# data_filiacao = cleaned_data['data']
# data_desfiliacao = 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")
# raise forms.ValidationError(error_msg)
# return cleaned_data
#
# filiacao = self.instance
# parlamentar = filiacao.parlamentar
#
# # 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()
#
# # Nenhuma filiacao
# if not todas_filiacoes:
# return cleaned_data
#
# 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:
# raise forms.ValidationError(error_msg)
#
def __init__(self, *args, **kwargs):
row1 = crispy_layout_mixin.to_row(
[('partido', 4),
('data', 4),
('data_desfiliacao', 4)])
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(_('Adicionar Filiação'), row1,
form_actions())
)
super(FiliacaoForm, self).__init__(
*args, **kwargs)
class FiliacaoEditForm(FiliacaoForm):
def __init__(self, *args, **kwargs):
super(FiliacaoEditForm, self).__init__(
*args, **kwargs)
self.helper.layout[0][-1:] = form_actions(more=[
HTML(' '),
Submit('excluir', 'Excluir',
css_class='btn btn-primary')])
# def clean(self):
# cleaned_data = super(FiliacaoEditForm, self).clean()
#
# data_filiacao = cleaned_data['data']
# data_desfiliacao = 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")
# raise forms.ValidationError(error_msg)
#
# return cleaned_data
#
# filiacao = self.instance
# parlamentar = Parlamentar.objects.get(pk=self.kwargs['pk'])
#
# # 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()
#
# # ainda filiado
# for f in todas_filiacoes:
# if not f.data_desfiliacao:
# error_msg = _("O parlamentar não pode se filiar a algum partido \
# sem antes se desfiliar do partido anterior")
# raise forms.ValidationError(error_msg)
#
# # Esse bloco garante que não haverá intersecção entre os
# # períodos de filiação
# 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:
# raise forms.ValidationError(error_msg)
#