+ cep = forms.CharField(max_length=8, help_text='Somente números')
+ telefone = forms.CharField(max_length=100)
+ home_page = forms.CharField(max_length=100, label='Página Pessoal',
+ required=False)
+
+class Inscricao(InscricaoBase):
+ inscricao_comercial = forms.BooleanField(required=False,
+ label='Inscrição Comercial')
+ cpf_cnpj = forms.CharField(max_length=20, required=False, label='CPF/CNPJ',
+ help_text='Somente necessário para a inscrição comercial')
+
+ def clean_cpf_cnpj(self):
+ cpf_cnpj = self.cleaned_data['cpf_cnpj']
+ if self.cleaned_data['inscricao_comercial'] and not cpf_cnpj:
+ raise ValidationError('Você escolheu a inscrição comercial, '
+ 'portanto este campo se torna obrigatório')
+ return cpf_cnpj
+
+class InscricaoCaravana(InscricaoBase):
+ lista_nomes = forms.CharField(label='Lista de nomes',
+ widget=forms.Textarea(), help_text='Um participante por linha, '
+ 'informando nome completo e email no seguine formato: '
+ 'Nome Completo <email@server.domain>')
+
+ def clean_lista_nomes(self):
+ nomes = self.cleaned_data['lista_nomes']
+ if len([x for x in nomes.split('\n') if x]) < 10:
+ raise ValidationError('A caravana precisa de pelo menos 10 '
+ 'participantes.')
+ return nomes