+ if request.POST and form.is_valid():
+ cd = form.cleaned_data
+ t = Trabalho()
+ t.titulo = cd['titulo']
+ t.tipo = TipoTrabalho.objects.get(pk=cd['tipo'])
+ 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']
+ t.evento = Evento.objects.get(pk=1) # let the hammer play arround!
+ t.save()
+
+ logged_in = request.user.palestrante_set.get()
+ t.palestrante.add(logged_in)
+ for i in cd.get('outros_palestrantes', []):
+ up = Palestrante.objects.get(pk=int(i))
+ t.palestrante.add(up)
+ ok = True
+
+ c = {'form': form, 'ok': ok}
+ return build_response(request, 'inscrever_palestra.html', c)
+
+
+@login_required
+@user_passes_test(lambda u:u.palestrante_set.count() == 1, login_url='/')
+def meus_trabalhos(request):
+ 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)
+
+ 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)