ajeitando a edição de dados tanto de palestrante quanto de participante.
authorLincoln de Sousa <lincoln@archlinux-br.org>
Thu, 27 Sep 2007 12:44:06 +0000 (09:44 -0300)
committerLincoln de Sousa <lincoln@archlinux-br.org>
Thu, 27 Sep 2007 12:44:06 +0000 (09:44 -0300)
eventos/models.py
templates/base.html
templates/editar_palestrante.html [deleted file]
templates/editar_usuario.html [new file with mode: 0644]
views.py

index d770b1f..825f3da 100644 (file)
@@ -100,7 +100,7 @@ class Participante(models.Model):
 
     comercial = models.BooleanField(default=False)
     usuario = models.ForeignKey(User)
-    refbanco = models.IntegerField()
+    refbanco = models.IntegerField(editable=False)
 
     class Admin:
         pass
index 88f9392..57fc567 100644 (file)
 
             <form id="menu-palestrante">
                 <ul>
+                    <li><a href="/meus_dados">Editar dados de usuário</a></li>
+
                     {% if user.palestrante_set.all %}
                     <li><a href="/submeter_trabalho">Submeter Trabalho</a></li>
                     <li><a href="/meus_trabalhos">Trabalhos inscritos</a></li>
-                    <li><a href="/meus_dados">Editar dados de usuário</a></li>
                     {% else %}
 
                         {% if user.participante_set.all %}
diff --git a/templates/editar_palestrante.html b/templates/editar_palestrante.html
deleted file mode 100644 (file)
index b92c0ec..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-{% extends "base.html" %}
-{% block content %}
-
-<h2>Editar Palestrante</h2>
-
-{% if ok %}
-
-<div class="confirmation">
-    <p>Seus dados foram editados com sucesso!</p>
-</div>
-
-{% else %}
-
-<form id="cadastro" method="post" action=".">
-    {{ form.as_p }}
-    <input type="submit" value="Salvar" />
-</form>
-
-{% endif %}
-
-{% endblock %}
diff --git a/templates/editar_usuario.html b/templates/editar_usuario.html
new file mode 100644 (file)
index 0000000..d42402c
--- /dev/null
@@ -0,0 +1,21 @@
+{% extends "base.html" %}
+{% block content %}
+
+<h2>Editar {{ title }}</h2>
+
+{% if ok %}
+
+<div class="confirmation">
+    <p>Seus dados foram editados com sucesso!</p>
+</div>
+
+{% else %}
+
+<form id="cadastro" method="post" action=".">
+    {{ form.as_p }}
+    <input type="submit" value="Salvar" />
+</form>
+
+{% endif %}
+
+{% endblock %}
index e64e704..245b0bd 100644 (file)
--- a/views.py
+++ b/views.py
@@ -354,22 +354,31 @@ def editar_trabalho(request, codigo):
 
 @login_required
 def meus_dados(request):
-    form = EditarPalestrante(request.POST or None)
-    palestrante = request.user.palestrante_set.get()
+    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']
+
+    form = FormKlass(request.POST or None)
     ok = False
 
     for name, field in form.fields.items():
-        field.initial = getattr(palestrante, name)
+        field.initial = getattr(entity, name)
 
     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()
+            setattr(entity, name, cd[name])
+        entity.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