diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py index 9f7c449f8..03f40f517 100644 --- a/sapl/comissoes/forms.py +++ b/sapl/comissoes/forms.py @@ -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')