|
|
@ -40,17 +40,31 @@ class ComposicaoForm(forms.ModelForm): |
|
|
|
periodo = cleaned_data['periodo'] |
|
|
|
comissao_pk = self.initial['comissao'].id |
|
|
|
cleaned_data['comissao'] = self.initial['comissao'] |
|
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
|
Q(periodo__data_inicio__lte=periodo.data_fim, |
|
|
|
periodo__data_fim__gte=periodo.data_fim) | |
|
|
|
Q(periodo__data_inicio__gte=periodo.data_inicio, |
|
|
|
periodo__data_fim__lte=periodo.data_inicio), |
|
|
|
comissao_id=comissao_pk) |
|
|
|
|
|
|
|
if periodo.data_fim: |
|
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
|
Q(periodo__data_inicio__lte=periodo.data_fim, |
|
|
|
periodo__data_fim__gte=periodo.data_fim) | |
|
|
|
Q(periodo__data_inicio__gte=periodo.data_inicio, |
|
|
|
periodo__data_fim__lte=periodo.data_inicio), |
|
|
|
comissao_id=comissao_pk) |
|
|
|
else: |
|
|
|
intersecao_periodo = Composicao.objects.filter( |
|
|
|
Q(periodo__data_inicio__gte=periodo.data_inicio, |
|
|
|
periodo__data_fim__lte=periodo.data_inicio), |
|
|
|
comissao_id=comissao_pk) |
|
|
|
|
|
|
|
if intersecao_periodo: |
|
|
|
self.logger.error('O período informado ({} a {})' |
|
|
|
'choca com períodos já ' |
|
|
|
'cadastrados para esta comissão'.format(periodo.data_inicio, periodo.data_fim)) |
|
|
|
if periodo.data_fim: |
|
|
|
self.logger.error('O período informado ({} a {})' |
|
|
|
'choca com períodos já ' |
|
|
|
'cadastrados para esta comissão' |
|
|
|
.format(periodo.data_inicio, periodo.data_fim)) |
|
|
|
else: |
|
|
|
self.logger.error('O período informado ({} - )' |
|
|
|
'choca com períodos já ' |
|
|
|
'cadastrados para esta comissão' |
|
|
|
.format(periodo.data_inicio)) |
|
|
|
raise ValidationError('O período informado ' |
|
|
|
'choca com períodos já ' |
|
|
|
'cadastrados para esta comissão') |
|
|
|