forked from AFPy/PonyConf
public program
This commit is contained in:
parent
df5e986fef
commit
726f20df71
|
@ -8,5 +8,6 @@ urlpatterns = [
|
||||||
url(r'^room/add/$', views.RoomCreate.as_view(), name='add-room'),
|
url(r'^room/add/$', views.RoomCreate.as_view(), name='add-room'),
|
||||||
url(r'^room/(?P<slug>[-\w]+)/$', views.RoomDetail.as_view(), name='show-room'),
|
url(r'^room/(?P<slug>[-\w]+)/$', views.RoomDetail.as_view(), name='show-room'),
|
||||||
url(r'^room/(?P<slug>[-\w]+)/edit/$', views.RoomUpdate.as_view(), name='edit-room'),
|
url(r'^room/(?P<slug>[-\w]+)/edit/$', views.RoomUpdate.as_view(), name='edit-room'),
|
||||||
url(r'^program/$', views.program, name='program'),
|
url(r'^program/$', views.program_pending, name='pending-program'),
|
||||||
|
url(r'^program/public/$', views.program_public, name='public-program'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -17,13 +17,18 @@ Event = namedtuple('Event', ['talk', 'row', 'rowcount'])
|
||||||
|
|
||||||
|
|
||||||
class Program:
|
class Program:
|
||||||
def __init__(self, site, empty_rooms=False, talk_filter=None):
|
def __init__(self, site, pending=False, empty_rooms=False, talk_filter=None):
|
||||||
self.site = site
|
self.site = site
|
||||||
self.talks = Talk.objects.\
|
self.talks = Talk.objects.\
|
||||||
filter(site=site, room__isnull=False, start_date__isnull=False).\
|
filter(site=site, room__isnull=False, start_date__isnull=False).\
|
||||||
filter(Q(duration__gt=0) | Q(event__duration__gt=0)).\
|
filter(Q(duration__gt=0) | Q(event__duration__gt=0))
|
||||||
exclude(accepted=False).\
|
|
||||||
order_by('start_date')
|
if pending:
|
||||||
|
self.talks = self.talks.exclude(accepted=False)
|
||||||
|
else:
|
||||||
|
self.talks = self.talks.filter(accepted=True)
|
||||||
|
|
||||||
|
self.talks = self.talks.order_by('start_date')
|
||||||
|
|
||||||
if talk_filter:
|
if talk_filter:
|
||||||
self.talks = self.talks.filter(talk_filter)
|
self.talks = self.talks.filter(talk_filter)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.contrib.sites.shortcuts import get_current_site
|
from django.contrib.sites.shortcuts import get_current_site
|
||||||
from django.views.generic import CreateView, DetailView, ListView, UpdateView
|
from django.views.generic import CreateView, DetailView, ListView, UpdateView
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse, Http404
|
||||||
|
|
||||||
from ponyconf.mixins import OnSiteFormMixin
|
from ponyconf.mixins import OnSiteFormMixin
|
||||||
|
|
||||||
from accounts.decorators import staff_required
|
from accounts.decorators import orga_required, staff_required
|
||||||
from accounts.mixins import OrgaRequiredMixin, StaffRequiredMixin
|
from accounts.mixins import OrgaRequiredMixin, StaffRequiredMixin
|
||||||
|
|
||||||
from proposals.models import Talk
|
from proposals.models import Talk
|
||||||
|
@ -39,12 +39,20 @@ class RoomDetail(StaffRequiredMixin, RoomMixin, DetailView):
|
||||||
|
|
||||||
|
|
||||||
@staff_required
|
@staff_required
|
||||||
def program(request):
|
def program_pending(request):
|
||||||
program = Program(site=get_current_site(request))
|
output = request.GET.get('format', 'html')
|
||||||
f = request.GET.get('format')
|
return program(request, pending=True, output=output)
|
||||||
if f == 'xml':
|
|
||||||
|
def program_public(request):
|
||||||
|
output = request.GET.get('format', 'html')
|
||||||
|
return program(request, pending=False, output=output)
|
||||||
|
|
||||||
|
|
||||||
|
def program(request, pending, output):
|
||||||
|
program = Program(site=get_current_site(request), pending=pending)
|
||||||
|
if output == 'html':
|
||||||
|
return render(request, 'planning/program.html', {'program': program})
|
||||||
|
elif output == 'xml':
|
||||||
return HttpResponse(program.as_xml(), content_type="application/xml")
|
return HttpResponse(program.as_xml(), content_type="application/xml")
|
||||||
else:
|
else:
|
||||||
return render(request, 'planning/program.html', {
|
raise Http404("Format not available")
|
||||||
'program': program,
|
|
||||||
})
|
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
<a role="menuitem" tabindex="-1" href="{% url 'list-rooms' %}"><span class="glyphicon glyphicon-tent"></span> {% trans "Rooms" %}</a>
|
<a role="menuitem" tabindex="-1" href="{% url 'list-rooms' %}"><span class="glyphicon glyphicon-tent"></span> {% trans "Rooms" %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li role="presentation">
|
<li role="presentation">
|
||||||
<a role="menuitem" tabindex="-1" href="{% url 'program' %}"><span class="glyphicon glyphicon-list-alt"></span> {% trans "Program" %}</a>
|
<a role="menuitem" tabindex="-1" href="{% url 'pending-program' %}"><span class="glyphicon glyphicon-list-alt"></span> {% trans "Program" %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user