adicionando template de email de confirmacão para o cadastro de palestrantes.
[cascardo/eventmanager.git] / views.py
index 7639c57..0ba1092 100644 (file)
--- a/views.py
+++ b/views.py
@@ -17,10 +17,11 @@ License along with this program; if not, write to the
 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.
 """
-from django.shortcuts import render_to_response
+from django.shortcuts import render_to_response, get_object_or_404
 from django.template import RequestContext, Context, loader
 from django.contrib.auth.decorators import login_required, user_passes_test
 from django.contrib.auth.models import Group, User
+from django.newforms import form_for_instance
 from django.core.mail import EmailMessage
 from django.db import transaction
 from django.http import get_host
@@ -50,8 +51,10 @@ def build_response(request, template, extra={}):
     news = Noticia.objects.order_by('-data_criacao')
     menus = Menu.objects.all()
     index_sections = Secao.objects.filter(index=True)
+    login_failed = 'login_failed' in request.GET
     c = {'news': news, 'menu': menus,
-        'index_sections': index_sections}
+        'index_sections': index_sections,
+        'login_failed': login_failed}
     c.update(extra)
     return render_to_response(template, Context(c),
             context_instance=RequestContext(request))
@@ -73,8 +76,8 @@ def cadastro_palestrante(request):
         wrong = False
 
         if not cd['telefone'] and not cd['celular']:
-            badattr['telefone_comercial'] = ['Algum número de telefone '
-                                             'precisa ser informado']
+            badattr['telefone_comercial'] = \
+                    ['Algum número de telefone precisa ser informado']
             wrong = True
 
         # don't save duplicated users...
@@ -121,7 +124,7 @@ def cadastro_palestrante(request):
                 p.area_interesse.add(i)
 
             pid = p.id
-            md5_email = sha.new(cd['emai']).hexdigest()
+            md5_email = sha.new(cd['email']).hexdigest()
             email = '%s <%s>' % (cd['nome_completo'], cd['email'])
             link = '%s/verificar?c=%s&c1=%s' % (get_host(request),
                     pid, md5_email)
@@ -132,6 +135,8 @@ def cadastro_palestrante(request):
                     t.render(c), FROM_EMAIL, [email])
                 m.send()
             except Exception:
+                badattr['email'] = \
+                    ['Desculpe mas não pude enviar o email de confirmação']
                 transaction.rollback()
             else:
                 ok = True
@@ -151,7 +156,7 @@ def inscricao(request):
         form = InscricaoEstudante(post2)
 
     # inscrição normal (sem ser estudante)
-    elif not 'estudante' in post or 'empresa' in post:
+    elif not 'estudante' in post and ('first_step' in post or 'empresa' in post):
         form = InscricaoNormal(post2)
 
     # primeiro passo...
@@ -204,6 +209,30 @@ def meus_trabalhos(request):
     c = {'trabalhos': t, 'palestrante': 1}
     return build_response(request, 'meus_trabalhos.html', c)
 
+@login_required
+@user_passes_test(lambda u:u.palestrante_set.count() == 1, login_url='/')
+def editar_trabalho(request,codigo):
+    try:
+        p = Palestrante.objects.get(usuario=request.user)
+    except Palestrante.DoesNotExist:
+        # não palestrante...
+        c = {'palestrante': 0}
+        return build_response(request, 'meus_trabalhos.html', c)
+    trabalho = get_object_or_404(Trabalho, id=codigo,palestrante=p)
+    Formulario = form_for_instance(trabalho)
+    if request.method == 'POST':
+        form = Formulario(request.POST)
+        if form.is_valid():
+            form.save()
+            t = Trabalho.objects.filter(palestrante=p)
+            c = {'trabalhos': t, 'palestrante': 1}
+            c['editado_sucesso']=trabalho.titulo
+            return build_response(request, 'meus_trabalhos.html', c)
+    else:
+        form = Formulario()
+    
+    c = {'formulario':form}
+    return build_response(request, 'editar_trabalho.html', c)
 
 @login_required
 def meus_dados(request):