+ initial['valor'] = '5000'
+ initial['dtVenc'] = '17102007'
+
+ initial['nome'] = p.nome
+ initial['endereco'] = '%s, %s - %s' % (p.rua, p.numero, p.bairro)
+ initial['cidade'] = p.cidade
+ initial['uf'] = p.uf
+ initial['cep'] = p.cep
+
+ form = Boleto(request.POST or None, initial=initial)
+ c.update({'form': form})
+ c.update(initial)
+ return build_response(request, 'inscricao_boleto.html', c)
+
+
+@login_required
+@user_passes_test(lambda u:u.palestrante_set.count() == 1, login_url='/')
+def submeter_trabalho(request):
+ form = SubmeterTrabalho(request, request.POST or None)
+ ok = False
+
+ 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) # XXX: 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)
+
+ form = Formulario(request.POST or None)
+ if request.POST and 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)
+
+ c = {'formulario': form}
+ return build_response(request, 'editar_trabalho.html', c)
+
+
+@login_required
+def meus_dados(request):
+ try:
+ entity = request.user.palestrante_set.get()
+ except Palestrante.DoesNotExist:
+ entity = request.user.participante_set.get()
+
+ FormKlass = form_for_instance(entity)
+
+ # ugly hammer to hide some fields...
+ del FormKlass.base_fields['usuario']
+
+ ok = False
+ form = FormKlass(request.POST or None)
+ if request.POST and form.is_valid():
+ form.save()
+ ok = True
+
+ c = {'form': form, 'ok': ok, 'title': entity.__class__.__name__}
+ return build_response(request, 'editar_usuario.html', c)
+
+
+@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')