Merge: palestrante edita palestra.
[cascardo/eventmanager.git] / views.py
index 684e59f..58e9a37 100644 (file)
--- a/views.py
+++ b/views.py
@@ -1,4 +1,4 @@
-# -*- coding: utf8; -*-
+# -*- coding: utf-8; -*-
 """
 Copyright (C) 2007 Lincoln de Sousa <lincoln@archlinux-br.org>
 
@@ -17,7 +17,7 @@ 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
 from django.contrib.auth.decorators import login_required, user_passes_test
 from django.contrib.auth.models import Group, User
@@ -29,6 +29,7 @@ from eventmanager.decorators import enable_login_form
 from eventmanager.forms import *
 from eventmanager.conteudo.models import Noticia, Menu, Secao
 from eventmanager.eventos.models import *
+from django.newforms import form_for_instance
 
 def build_response(request, template, extra={}):
     """
@@ -139,7 +140,7 @@ def inscricao(request):
 @login_required
 @user_passes_test(lambda u:u.palestrante_set.count() == 1, login_url='/')
 def submeter_trabalho(request):
-    form = SubmeterTrabalho(request.POST or None)
+    form = SubmeterTrabalho(request, request.POST or None)
     ok = False
 
     if request.POST and form.is_valid():
@@ -147,7 +148,7 @@ def submeter_trabalho(request):
         t = Trabalho()
         t.titulo = cd['titulo']
         t.tipo = TipoTrabalho.objects.get(pk=cd['tipo'])
-        t.categoria = CategoriaTrabalho.objects.get(pk=cd['categoria'])
+        t.categoria = CategoriaTrabalho.objects.get_or_create(nome='Pendente')[0]
         t.descricao_curta = cd['descricao_curta']
         t.descricao_longa = cd['descricao_longa']
         t.recursos = cd['recursos']
@@ -174,11 +175,34 @@ def meus_trabalhos(request):
         # não palestrante...
         c = {'palestrante': 0}
         return build_response(request, 'meus_trabalhos.html', c)
-
     t = Trabalho.objects.filter(palestrante=p)
     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):
@@ -189,14 +213,6 @@ def meus_dados(request):
     for name, field in form.fields.items():
         field.initial = getattr(palestrante, name)
 
-    deleted = request.POST.get('delete-account')
-    if deleted:
-        palestrante.trabalho_set.all().delete()
-        palestrante.delete()
-        request.user.delete()
-        return build_response(request, 'editar_palestrante.html',
-                {'removed': 1})
-
     if request.POST and form.is_valid():
         cd = form.cleaned_data
         for name, field in form.fields.items():
@@ -211,3 +227,7 @@ def meus_dados(request):
 @enable_login_form
 def chamada_trabalhos(request):
     return build_response(request, 'chamada_trabalhos.html')
+
+@enable_login_form
+def avaliacao(request):
+    return build_response(request, 'avaliacao.html')