a lecture and another to hold other possible lecturers. Talk deletion was fixed too.
titulo = models.CharField(max_length=100)
evento = models.ForeignKey(Evento)
tipo = models.ForeignKey(TipoTrabalho)
titulo = models.CharField(max_length=100)
evento = models.ForeignKey(Evento)
tipo = models.ForeignKey(TipoTrabalho)
- palestrante = models.ManyToManyField(Palestrante)
+ palestrante = models.ForeignKey(Palestrante)
descricao_curta = models.TextField(u'Descrição curta')
descricao_longa = models.TextField(u'Descrição longa')
recursos = models.TextField(blank=True)
descricao_curta = models.TextField(u'Descrição curta')
descricao_longa = models.TextField(u'Descrição longa')
recursos = models.TextField(blank=True)
+ outros_palestrantes = \
+ models.ManyToManyField(Palestrante,
+ related_name='outros_palestrantes',
+ blank=True,
+ null=True)
class Admin:
list_filter = 'evento', 'tipo'
class Admin:
list_filter = 'evento', 'tipo'
from django.http import HttpResponseRedirect, HttpResponseForbidden
from django.contrib import auth
from django.contrib.auth.forms import AuthenticationForm
from django.http import HttpResponseRedirect, HttpResponseForbidden
from django.contrib import auth
from django.contrib.auth.forms import AuthenticationForm
-from django.newforms import form_for_instance, form_for_model
+from django.newforms import form_for_instance, form_for_model, HiddenInput
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext, Context, loader
from eventos.models import Palestrante, Trabalho
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext, Context, loader
from eventos.models import Palestrante, Trabalho
return forbidden
entity = request.user.palestrante_set.get()
return forbidden
entity = request.user.palestrante_set.get()
- if entity.id != int(lid):
- return forbidden
-
- owner = Trabalho.objects.filter(pk=tid, palestrante=entity)
- if not owner:
+ talk = Trabalho.objects.filter(pk=tid, palestrante=entity)
+ if not talk:
return HttpResponseRedirect('/lecturer/%d/talks/' % entity.id)
def talk_add(request):
return HttpResponseRedirect('/lecturer/%d/talks/' % entity.id)
def talk_add(request):
entity = request.user.palestrante_set.get()
FormKlass = form_for_model(Trabalho)
entity = request.user.palestrante_set.get()
FormKlass = form_for_model(Trabalho)
- form = FormKlass(request.POST or None)
+ form = FormKlass(request.POST or None,
+ initial={'palestrante': entity.id})
+
+ # This field should not be shown to the user.
+ form.fields['palestrante'].widget = HiddenInput()
+ # hidding the owner in the other lecturers list
other = Palestrante.objects.exclude(pk=entity.id)
other = Palestrante.objects.exclude(pk=entity.id)
- form.fields['palestrante'].label = u'Outros Palestrantes'
- form.fields['palestrante'].required = False
- form.fields['palestrante']._set_queryset(other)
+ form.fields['outros_palestrantes']._set_queryset(other)
if request.POST and form.is_valid():
instance = form.save()
if request.POST and form.is_valid():
instance = form.save()
- instance.palestrante.add(entity)
return HttpResponseRedirect('/lecturer/%d/talks/' % entity.id)
c = {'form': form}
return HttpResponseRedirect('/lecturer/%d/talks/' % entity.id)
c = {'form': form}