PonyConf/planning/views.py

51 lines
1.3 KiB
Python

from django.shortcuts import render
from django.contrib.sites.shortcuts import get_current_site
from django.views.generic import CreateView, DetailView, ListView, UpdateView
from django.http import HttpResponse
from ponyconf.mixins import OnSiteFormMixin
from accounts.decorators import staff_required
from accounts.mixins import OrgaRequiredMixin, StaffRequiredMixin
from proposals.models import Talk
from .models import Room
from .forms import RoomForm
from .utils import Program
class RoomMixin(object):
def get_queryset(self):
return Room.objects.filter(site=get_current_site(self.request)).all()
class RoomFormMixin(OnSiteFormMixin):
form_class = RoomForm
class RoomList(StaffRequiredMixin, RoomMixin, ListView):
pass
class RoomCreate(OrgaRequiredMixin, RoomMixin, RoomFormMixin, CreateView):
model = Room
class RoomUpdate(OrgaRequiredMixin, RoomMixin, RoomFormMixin, UpdateView):
pass
class RoomDetail(StaffRequiredMixin, RoomMixin, DetailView):
pass
@staff_required
def program(request):
program = Program(site=get_current_site(request))
f = request.GET.get('format')
if f == 'xml':
return HttpResponse(program.as_xml(), content_type="application/xml")
else:
return render(request, 'planning/program.html', {
'program': program,
})