diff --git a/planning/templates/planning/program.html b/planning/templates/planning/pending-program.html
similarity index 100%
rename from planning/templates/planning/program.html
rename to planning/templates/planning/pending-program.html
diff --git a/planning/templates/planning/public-program.html b/planning/templates/planning/public-program.html
new file mode 100644
index 0000000..f6ecb1f
--- /dev/null
+++ b/planning/templates/planning/public-program.html
@@ -0,0 +1,10 @@
+{% extends '_base.html' %}
+{% load i18n %}
+
+{% block content %}
+
+
{{ site.name }} – {% trans "Program" %}
+
+{{ program }}
+
+{% endblock %}
diff --git a/planning/utils.py b/planning/utils.py
index c7b1c94..d11be21 100644
--- a/planning/utils.py
+++ b/planning/utils.py
@@ -19,6 +19,7 @@ Event = namedtuple('Event', ['talk', 'row', 'rowcount'])
class Program:
def __init__(self, site, pending=False, empty_rooms=False, talk_filter=None):
self.site = site
+ self.conference = Conference.objects.get(site=self.site)
self.talks = Talk.objects.\
filter(site=site, room__isnull=False, start_date__isnull=False).\
filter(Q(duration__gt=0) | Q(event__duration__gt=0))
@@ -175,7 +176,6 @@ class Program:
if not len(self.days):
return result % {'conference': '', 'days': ''}
- conference = Conference.objects.get(site=self.site)
conference_xml = """
%(title)s
@@ -189,8 +189,8 @@ class Program:
""" % {
'title': self.site.name,
- 'venue': ', '.join(map(lambda x: x.strip(), conference.venue.split('\n'))),
- 'city': conference.city,
+ 'venue': ', '.join(map(lambda x: x.strip(), self.conference.venue.split('\n'))),
+ 'city': self.conference.city,
'start_date': sorted(self.days.keys())[0].strftime('%Y-%m-%d'),
'end_date': sorted(self.days.keys(), reverse=True)[0].strftime('%Y-%m-%d'),
'days_count': len(self.days),
diff --git a/planning/views.py b/planning/views.py
index 1f99b88..47a6ff5 100644
--- a/planning/views.py
+++ b/planning/views.py
@@ -41,17 +41,17 @@ class RoomDetail(StaffRequiredMixin, RoomMixin, DetailView):
@staff_required
def program_pending(request):
output = request.GET.get('format', 'html')
- return program(request, pending=True, output=output)
+ return program(request, pending=True, output=output, html_template='pending-program.html')
def program_public(request):
output = request.GET.get('format', 'html')
return program(request, pending=False, output=output)
-def program(request, pending, output):
+def program(request, pending=False, output='html', html_template='public-program.html'):
program = Program(site=get_current_site(request), pending=pending)
if output == 'html':
- return render(request, 'planning/program.html', {'program': program})
+ return render(request, 'planning/' + html_template, {'program': program})
elif output == 'xml':
return HttpResponse(program.as_xml(), content_type="application/xml")
else:
diff --git a/ponyconf/templates/_base.html b/ponyconf/templates/_base.html
new file mode 100644
index 0000000..a20155f
--- /dev/null
+++ b/ponyconf/templates/_base.html
@@ -0,0 +1,57 @@
+{% load staticfiles bootstrap3 %}
+
+
+
+
+
+
+
+
+
+ {% comment %}{% endcomment %}
+
+
+
+
+ {% block title %}{{ site.name }}{% endblock %}
+
+ {% bootstrap_css %}
+
+ {% block css %}{% endblock %}
+
+ {% block js %}{% endblock %}
+
+
+
+
+ {% block pageheader %}
+ {% endblock %}
+
+
+
+
+
+
+
+ {% bootstrap_messages %}
+
+ {% block content %}{% endblock %}
+
+
+
+
+
+ {% block pagefooter %}
+ {% endblock %}
+
+
+
+
+ {% bootstrap_javascript %}
+
+ {% block js_end %}{% endblock %}
+
+
diff --git a/ponyconf/templates/base.html b/ponyconf/templates/base.html
index e6c4c10..1a2b861 100644
--- a/ponyconf/templates/base.html
+++ b/ponyconf/templates/base.html
@@ -1,32 +1,7 @@
-{% load staticfiles bootstrap3 accounts_tags i18n %}
-
-
-
-
-
-
-
-
-
- {% comment %}{% endcomment %}
-
-
-
-
- {% block title %}{{ site.name }}{% endblock %}
-
- {% bootstrap_css %}
-
- {% block css %}{% endblock %}
-
- {% block js %}{% endblock %}
-
-
-
+{% extends '_base.html' %}
+{% load accounts_tags i18n %}
+{% block pageheader %}
+{% endblock %}
-
-
-
-
-
-
- {% bootstrap_messages %}
-
- {% block content %}{% endblock %}
-
-
-
-
-
-
-
-
-
-
-
-
- {% bootstrap_javascript %}
-
- {% block js_end %}{% endblock %}
-
-
+{% block pagefooter %}
+
+
+{% endblock %}