X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=views.py;h=d15746b0bc7d21681ad39cd8cf47bd296a84f4f6;hb=f95c6edd7cd2847deebc5a2a6bfce243eca43481;hp=26b03cf2dfa31c76968e19e8a14c99a394a25a65;hpb=86f4566fce939dac880de19df6c18b5f8d3344c1;p=cascardo%2Feventmanager.git diff --git a/views.py b/views.py index 26b03cf..d15746b 100644 --- a/views.py +++ b/views.py @@ -23,6 +23,7 @@ from django.contrib.auth.decorators import login_required, user_passes_test from django.contrib.auth.models import Group, User from django.contrib.auth import authenticate, login from django.newforms import form_for_instance +from django.core.exceptions import ObjectDoesNotExist from django.core.mail import EmailMessage from django.db import transaction from django.http import get_host @@ -32,6 +33,7 @@ from eventmanager.decorators import enable_login_form from eventmanager.conteudo.models import Noticia, Menu, Secao from eventmanager.eventos.models import * from eventmanager.forms import * +from eventmanager.controllers import * from datetime import datetime import sha @@ -168,6 +170,7 @@ def inscricao_individual(request): p.telefone = cd['telefone'] p.home_page = cd['home_page'] p.comercial = cd['inscricao_comercial'] + p.cpf_cnpj = cd['cpf_cnpj'] p.save() u = authenticate(username=cd['nome_usuario'], password=cd['senha']) @@ -209,6 +212,7 @@ def inscricao_caravana(request): p.telefone = cd['telefone'] p.home_page = cd['home_page'] p.comercial = False # yeah, always false! + p.cpf_cnpj = '' p.save() c = Caravana() @@ -239,7 +243,7 @@ def inscricao_boleto(request): initial = {} if p.refbanco == 0: - # o número refran deve ser gerado a cada novo boleto e deve ser único, + # o número refTran deve ser gerado a cada novo boleto e deve ser único, # mesmo para os testes refs = [x.refbanco for x in Participante.objects.all()] new_ref = len(refs) @@ -254,8 +258,11 @@ def inscricao_boleto(request): initial['refTran'] = '1458197%s' % str(new_ref).zfill(10) if today < first_date: - initial['valor'] = '3500' initial['dtVenc'] = '12102007' + if not p.comercial: + initial['valor'] = '3500' + else: + initial['valor'] = '8000' # caso seja uma caravana... if ca and len(ca.parsed_participantes()) >= 10: @@ -316,11 +323,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 @user_passes_test(lambda u:u.palestrante_set.count() == 1, login_url='/') @@ -346,25 +376,54 @@ def editar_trabalho(request, codigo): c = {'formulario': form} return build_response(request, 'editar_trabalho.html', c) - @login_required def meus_dados(request): - form = EditarPalestrante(request.POST or None) - palestrante = request.user.palestrante_set.get() - ok = False + try: + entity = request.user.palestrante_set.get() + except Palestrante.DoesNotExist: + entity = request.user.participante_set.get() - for name, field in form.fields.items(): - field.initial = getattr(palestrante, name) + 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(): - cd = form.cleaned_data - for name, field in form.fields.items(): - setattr(palestrante, name, cd[name]) - palestrante.save() + form.save() ok = True - c = {'form': form, 'ok': ok} - return build_response(request, 'editar_palestrante.html', c) + c = {'form': form, 'ok': ok, 'title': entity.__class__.__name__} + return build_response(request, 'editar_usuario.html', c) + + +@enable_login_form +def dados_palestrante(request, codigo): + d = {} + try: + d = {'dados_usuario': Palestrante.objects.get(id=codigo)} + except ObjectDoesNotExist: + d = {} + return build_response(request, 'dados_palestrante.html', d) + + +@enable_login_form +def dados_palestra(request, codigo): + try: + d = {'dados_palestra': Trabalho.objects.get(id=codigo)} + except ObjectDoesNotExist: + d = {} + return build_response(request, 'dados_palestra.html',d) + + +@enable_login_form +def programacao(request): + try: + d = {'aprovadas': Trabalho.objects.filter(aprovado=True).order_by('dia')} + except ObjectDoesNotExist: + d = {} + return build_response(request, 'programacao.html',d) @enable_login_form