From 14a6a9174b47d8ce677224e346dca9b4808a07e5 Mon Sep 17 00:00:00 2001 From: Gabriel Falcao Date: Mon, 8 Oct 2007 11:13:28 -0300 Subject: [PATCH] Programacao dinamica --- controllers.py | 139 +++++++++++++++++++++++++++++++ eventos/models.py | 3 +- templates/base.html | 2 +- templates/dados_palestrante.html | 23 ++--- templates/programacao.html | 13 ++- urls.py | 3 + views.py | 30 +++++++ 7 files changed, 198 insertions(+), 15 deletions(-) diff --git a/controllers.py b/controllers.py index 922a623..ceaa471 100644 --- a/controllers.py +++ b/controllers.py @@ -15,6 +15,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. +import re from django.http import HttpResponse, HttpResponseRedirect from django.template import RequestContext @@ -22,6 +23,143 @@ from django.shortcuts import render_to_response, get_object_or_404 from django.conf import settings from django.core.exceptions import ObjectDoesNotExist +def html_unentities(s): + s = s.decode('utf-8') + entities = {} + newstring = u"" + + entities[u' '] = u' ' + entities[u'¡'] = u'¡' + entities[u'¢'] = u'¢' + entities[u'£'] = u'£' + entities[u'¤'] = u'¤' + entities[u'¥'] = u'Â¥' + entities[u'¦'] = u'¦' + entities[u'§'] = u'§' + entities[u'¨'] = u'¨' + entities[u'©'] = u'©' + entities[u'ª'] = u'ª' + entities[u'«'] = u'«' + entities[u'¬'] = u'¬' + entities[u'­'] = u'­' + entities[u'®'] = u'®' + entities[u'¯'] = u'¯' + entities[u'°'] = u'°' + entities[u'±'] = u'±' + entities[u'²'] = u'²' + entities[u'³'] = u'³' + entities[u'´'] = u'´' + entities[u'µ'] = u'µ' + entities[u'¶'] = u'¶' + entities[u'·'] = u'·' + entities[u'¸'] = u'¸' + entities[u'¹'] = u'¹' + entities[u'º'] = u'º' + entities[u'»'] = u'»' + entities[u'¼'] = u'¼' + entities[u'½'] = u'½' + entities[u'¾'] = u'¾' + entities[u'¿'] = u'¿' + entities[u'À'] = u'À' + entities[u'Á'] = u'Á' + entities[u'Â'] = u'Â' + entities[u'Ã'] = u'Ã' + entities[u'Ä'] = u'Ä' + entities[u'Å'] = u'Å' + entities[u'Æ'] = u'Æ' + entities[u'Ç'] = u'Ç' + entities[u'È'] = u'È' + entities[u'É'] = u'É' + entities[u'Ê'] = u'Ê' + entities[u'Ë'] = u'Ë' + entities[u'Ì'] = u'Ì' + entities[u'Í'] = u'Í' + entities[u'Î'] = u'Î' + entities[u'Ï'] = u'Ï' + entities[u'Ð'] = u'Ð' + entities[u'Ñ'] = u'Ñ' + entities[u'Ò'] = u'Ò' + entities[u'Ó'] = u'Ó' + entities[u'Ô'] = u'Ô' + entities[u'Õ'] = u'Õ' + entities[u'Ö'] = u'Ö' + entities[u'×'] = u'×' + entities[u'Ø'] = u'Ø' + entities[u'Ù'] = u'Ù' + entities[u'Ú'] = u'Ú' + entities[u'Û'] = u'Û' + entities[u'Ü'] = u'Ü' + entities[u'Ý'] = u'Ý' + entities[u'Þ'] = u'Þ' + entities[u'ß'] = u'ß' + entities[u'à'] = u'à' + entities[u'á'] = u'á' + entities[u'â'] = u'â' + entities[u'ã'] = u'ã' + entities[u'ä'] = u'ä' + entities[u'å'] = u'Ã¥' + entities[u'æ'] = u'æ' + entities['ç'] = u'ç' + entities[u'è'] = u'è' + entities[u'é'] = u'é' + entities[u'ê'] = u'ê' + entities[u'ë'] = u'ë' + entities[u'ì'] = u'ì' + entities[u'í'] = u'í' + entities[u'î'] = u'î' + entities[u'ï'] = u'ï' + entities[u'ð'] = u'ð' + entities[u'ñ'] = u'ñ' + entities[u'ò'] = u'ò' + entities[u'ó'] = u'ó' + entities[u'ô'] = u'ô' + entities[u'õ'] = u'õ' + entities[u'ö'] = u'ö' + entities[u'÷'] = u'÷' + entities[u'ø'] = u'ø' + entities[u'ù'] = u'ù' + entities[u'ú'] = u'ú' + entities[u'û'] = u'û' + entities[u'ü'] = u'ü' + entities[u'ý'] = u'ý' + entities[u'þ'] = u'þ' + entities[u'ÿ'] = u'ÿ' + entities[u'"'] = u'"' + entities[u"'"] = ''' + entities[u'<'] = u'<' + entities[u'>'] = u'>' + entities[u'&'] = u'&' + buffer = "" + mutex = False + s_ent = re.findall(r'[&].*?[;]', s) + for rp in s_ent: + s = re.sub(rp.replace('&','[&]').replace(';','[;]'), entities[rp], s) + return s + +class ScheduleHammer(object): + def __init__(self, HTML): + if isinstance(HTML, str): + self.S_tag = '[<]li[>].*?[<]font.*?[>]' + self.E_tag = '[<][/]font[>].*?[<][/]li[>]' + self.items = re.findall(r'%s(?P.*?)%s'%(self.S_tag, + self.E_tag), HTML) + else: + raise TypeError("ScheduleHammer must take only a string as \ + parameter") + + def __iter__(self): + for title in self.items: + if "Chamada de Trabalhos --> -
  • Programação
  • +
  • Programação
  • Localização
  • Como Chegar
  • diff --git a/templates/dados_palestrante.html b/templates/dados_palestrante.html index d42402c..6bb7b9b 100644 --- a/templates/dados_palestrante.html +++ b/templates/dados_palestrante.html @@ -1,21 +1,24 @@ {% extends "base.html" %} {% block content %} -

    Editar {{ title }}

    +{% if dados_usuario %} -{% if ok %} +

    {{ dados_usuario.nome }}

    -
    -

    Seus dados foram editados com sucesso!

    +
    +

    {{dados_usuario.nome}}

    +

    {{dados_usuario.minicurriculo}}

    {% else %} - -
    - {{ form.as_p }} - -
    - +
    +

    Padre Quevedo 404

    +
    +
    + Usuario nón ecziste! +
    +
    {% endif %} +Voltar {% endblock %} diff --git a/templates/programacao.html b/templates/programacao.html index 9c99b4f..728e1ca 100644 --- a/templates/programacao.html +++ b/templates/programacao.html @@ -4,11 +4,18 @@ {% if aprovadas %} -
      {% for p in aprovadas %} -
    • {{p.titulo}}
    • + {{p.titulo}} +
      + Palestrante{{ p.palestrante.all|pluralize }}: +
      + {% for x in p.palestrante.all %} + + {{x.nome|capfirst}} {% ifnotequal p.palestrante.all|length 1%}
      {% endifnotequal %} +
      + {% endfor %} +
      {% endfor %} -
    {% else %}

    Padre Quevedo 404

    diff --git a/urls.py b/urls.py index 1ebcff7..988dcbe 100644 --- a/urls.py +++ b/urls.py @@ -38,6 +38,9 @@ urlpatterns = patterns('', (r'^cadastro_palestrante/', views.cadastro_palestrante), (r'^meus_trabalhos/', views.meus_trabalhos), (r'^trabalhos/(?P\d+)', views.editar_trabalho), + (r'^palestrante/(?P\d+)', views.dados_palestrante), + (r'^palestra/(?P\d+)', views.dados_palestra), + (r'^programacao', views.programacao), (r'^meus_dados/', views.meus_dados), (r'^chamada_trabalhos/', views.chamada_trabalhos), (r'^avaliacao/', views.avaliacao), diff --git a/views.py b/views.py index 0e3082e..4b5f557 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 @@ -374,6 +376,34 @@ def meus_dados(request): 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)} + except ObjectDoesNotExist: + d = {} + return build_response(request, 'programacao.html',d) + + @enable_login_form def chamada_trabalhos(request): return build_response(request, 'chamada_trabalhos.html') -- 2.20.1