Added method to list all talks in eventos/views.py
[cascardo/ema.git] / eventos / views.py
index 275958c..18bc5e6 100644 (file)
@@ -158,11 +158,6 @@ def talk_details(request, tid):
     entity = get_object_or_404(Trabalho, pk=tid)
     form = TalkForm(request.POST or None, instance=entity)
 
-    # avoiding smart people trying to se talks of other speakers.
-    speaker = request.user.palestrante_set.get()
-    if speaker.id != entity.palestrante.id:
-        return forbidden
-
     # These fields should not be shown to the user.
     form.fields['palestrante'].widget = HiddenInput()
     form.fields['evento'].widget = HiddenInput()
@@ -183,6 +178,12 @@ def talk_details(request, tid):
         form.fields['outros_palestrantes'].initial = ''
         form.fields['outros_palestrantes'].widget = HiddenInput()
 
+    # avoiding smart people trying to se talks of other speakers.
+    speaker = request.user.palestrante_set.get()
+    if speaker.id != entity.palestrante.id \
+            and speaker not in entity.outros_palestrantes.all():
+        return forbidden
+
     if request.POST and form.is_valid():
         form.save()
 
@@ -251,3 +252,17 @@ def talk_add(request):
     c = {'form': form}
     return render_to_response('eventos/talk-add.html', Context(c),
                               context_instance=RequestContext(request))
+
+def list_all_talks(request):
+    event = Evento.objects.get(site__id__exact=settings.SITE_ID)
+    trilhas = Trilha.objects.filter(evento=event)
+
+    improve = []
+    for t in trilhas:
+        talks = Trabalho.objects.filter(trilha=t)
+        aux = {'trilha':t.nome, 'talks':talks}
+        improve.append(aux)
+
+    c = {'improve': improve,}
+    return render_to_response('eventos/improve.html', Context(c),
+                              context_instance=RequestContext(request))