reformulação dos formulários de inscrição...
[cascardo/eventmanager.git] / views.py
index d655df2..ee7b1b3 100644 (file)
--- a/views.py
+++ b/views.py
@@ -148,22 +148,53 @@ def cadastro_palestrante(request):
 
 @enable_login_form
 def inscricao(request):
-    post = request.POST
-    post2 = 'post2' in post and post or None
+    return build_response(request, 'inscricao.html')
 
-    # exibe o formulário de inscrição de estudantes.
-    if 'estudante' in post:
-        form = InscricaoEstudante(post2)
 
-    # inscrição normal (sem ser estudante)
-    elif not 'estudante' in post and ('first_step' in post or 'empresa' in post):
-        form = InscricaoNormal(post2)
+@enable_login_form
+@transaction.commit_manually
+def inscricao_individual(request):
+    form = Inscricao(request.POST or None)
+    ok = False
+    if request.POST and form.is_valid():
+        cd = form.cleaned_data
+        badattr = form.errors
+        wrong = False
 
-    # primeiro passo...
-    else:
-        form = Inscricao(post or None)
+        # don't save duplicated users...
+        try:
+            User.objects.get(username=cd['nome_usuario'])
+            badattr['nome_usuario'] = ['Este nome de usuário já existe!']
+            wrong = True
+            transaction.rollback()
+        except User.DoesNotExist:
+            pass
 
-    return build_response(request, 'inscricao.html', {'form': form})
+        if cd['senha'] != cd['senha_2']:
+            badattr['senha_2'] = ['A senha não confere']
+            wrong = True
+            transaction.rollback()
+
+        if not wrong:
+            group = Group.objects.get_or_create(name='participantes')[0]
+
+            user = User(username=cd['nome_usuario'], email=cd['email'])
+            user.set_password(cd['senha'])
+            user.is_active = False
+            user.save()
+            user.groups.add(group)
+
+        transaction.commit()
+
+    return build_response(request, 'inscricao_individual.html', {'form': form})
+
+
+@enable_login_form
+def inscricao_caravana(request):
+    form_coordenador = InscricaoCoordenador(request.POST or None)
+    form = InscricaoCaravana(request.POST or None)
+    return build_response(request, 'inscricao_caravana.html',
+        {'form_coordenador': form_coordenador, 'form': form})
 
 
 @login_required