|  | @ -170,6 +170,36 @@ class SessaoLegislativaForm(ModelForm): | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         data_inicio = cleaned_data['data_inicio'] |  |  |         data_inicio = cleaned_data['data_inicio'] | 
			
		
	
		
		
			
				
					|  |  |         data_fim = cleaned_data['data_fim'] |  |  |         data_fim = cleaned_data['data_fim'] | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         legislatura = cleaned_data['legislatura'] | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         numero = cleaned_data['numero'] | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         data_inicio_leg = legislatura.data_inicio | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         data_fim_leg = legislatura.data_fim | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         sessoes_legislativas = SessaoLegislativa.objects.filter(legislatura=legislatura) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if sessoes_legislativas: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             numeracoes = [n.numero for n in sessoes_legislativas] | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             numeracoes = sorted(numeracoes) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             ult = max(numeracoes) | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         else: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             ult = SessaoLegislativa.objects.latest('data_fim') | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             ult = ult.numero | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if numero <= ult: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             raise ValidationError('O número da Sessão Legislativa não pode ser menor ou igual ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                   'que o de Sessões Legislativas passadas') | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if data_inicio < data_inicio_leg or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             data_inicio > data_fim_leg: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             raise ValidationError('A data de início da Sessão Legislativa deve estar compreendida ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                   'entre a data início e fim da Legislatura selecionada') | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if data_fim > data_fim_leg or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             data_fim < data_inicio_leg: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             raise ValidationError('A data de fim da Sessão Legislativa deve estar compreendida ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                   'entre a data início e fim da Legislatura selecionada') | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         if data_inicio > data_fim: |  |  |         if data_inicio > data_fim: | 
			
		
	
		
		
			
				
					|  |  |             raise ValidationError('Data início não pode ser superior à data fim') |  |  |             raise ValidationError('Data início não pode ser superior à data fim') | 
			
		
	
	
		
		
			
				
					|  | @ -182,6 +212,23 @@ class SessaoLegislativaForm(ModelForm): | 
			
		
	
		
		
			
				
					|  |  |                 raise ValidationError('Data início de intervalo não pode ser ' |  |  |                 raise ValidationError('Data início de intervalo não pode ser ' | 
			
		
	
		
		
			
				
					|  |  |                                       'superior à data fim de intervalo') |  |  |                                       'superior à data fim de intervalo') | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if data_inicio_intervalo: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             if data_inicio_intervalo < data_inicio or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     data_inicio_intervalo < data_inicio_leg or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     data_inicio_intervalo > data_fim or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     data_inicio_intervalo > data_inicio_leg: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 raise ValidationError('A data de início do intervalo deve estar compreendida entre ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                       'as datas de início e fim tanto da Legislatura quanto da ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                       'própria Sessão Legislativa') | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         if data_fim_intervalo: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             if data_fim_intervalo > data_fim or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     data_fim_intervalo > data_fim_leg or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     data_fim_intervalo < data_inicio or \ | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     data_fim_intervalo < data_inicio_leg: | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 raise ValidationError('A data de fim do intervalo deve estar compreendida entre ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                       'as datas de início e fim tanto da Legislatura quanto da ' | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                       'própria Sessão Legislativa') | 
			
		
	
		
		
			
				
					|  |  |         return cleaned_data |  |  |         return cleaned_data | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  | 
 |