X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=views.py;h=0ba109277506859e80589c603a86ec96ff30416b;hb=64a8441f2f53f5a877dbcc18211251ea5b83fcaa;hp=7639c57dd391c289f91e9d727dc5cf71e532a91a;hpb=e7668c5632d7f0c13c2f7c2a1e1b5e9f3ac2d0f1;p=cascardo%2Feventmanager.git diff --git a/views.py b/views.py index 7639c57..0ba1092 100644 --- 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):