Skip to content

Commit

Permalink
Merge pull request #437 from ox-it/display-talks-consistently
Browse files Browse the repository at this point in the history
Display talks consistently
  • Loading branch information
tkoterwas committed Apr 28, 2016
2 parents ff93dd3 + 35ea97f commit 3308bbb
Show file tree
Hide file tree
Showing 17 changed files with 157 additions and 191 deletions.
48 changes: 34 additions & 14 deletions talks/events/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,31 +99,36 @@ def browse_events(request):
except (PageNotAnInteger, EmptyPage):
return redirect(reverse('browse_events'))

grouped_events = {}
event_dates = []
for group_event in events:
key = group_event.start.date()
if key not in grouped_events:
grouped_events[key] = []
event_dates.append(key)
grouped_events[key].append(group_event)

result_events = []
for event_date in event_dates:
result_events.append({"start_date":event_date, "gr_events":grouped_events[event_date]})
grouped_events = group_events(events)

fragment = '&'.join(["{k}={v}".format(k=k, v=v) for k, v in args.iteritems()])

context = {
'events': events,
'result_events': result_events,
'grouped_events': grouped_events,
'fragment': fragment,
'browse_events_form': browse_events_form,
'start_date': modified_request_parameters.get('start_date'),
'end_date': modified_request_parameters.get('to'),
}
return render(request, 'events/browse.html', context)

def group_events (events):
grouped_events = {}
event_dates = []
for group_event in events:
key = group_event.start.date()
if key not in grouped_events:
grouped_events[key] = []
event_dates.append(key)
grouped_events[key].append(group_event)

result_events = []
for event_date in event_dates:
result_events.append({"start_date":event_date, "gr_events":grouped_events[event_date]})

return result_events


def upcoming_events(request):
today = date.today()
Expand Down Expand Up @@ -202,11 +207,15 @@ def show_event_group(request, event_group_slug):
if not show_all:
events = events.filter(start__gte=date.today())

grouped_events = group_events(events)

context = {
'event_group': group,
'events': events,
'grouped_events': grouped_events,
'organisers': group.organisers.all(),
'show_all': show_all,
'editors': group.editor_set.all(),
}

if request.tuser:
Expand All @@ -229,12 +238,18 @@ def show_person(request, person_slug):
host_events = events.filter(personevent__role=ROLES_HOST, personevent__person__slug=person.slug)
speaker_events = events.filter(personevent__role=ROLES_SPEAKER, personevent__person__slug=person.slug)
organiser_events = events.filter(personevent__role=ROLES_ORGANISER, personevent__person__slug=person.slug)
grouped_host_events = group_events(host_events)
grouped_speaker_events = group_events(speaker_events)
grouped_organiser_events = group_events(organiser_events)

context = {
'person': person,
'host_events': host_events,
'speaker_events': speaker_events,
'organiser_events': organiser_events,
'grouped_host_events': grouped_host_events,
'grouped_speaker_events': grouped_speaker_events,
'grouped_organiser_events': grouped_organiser_events,
}
if request.GET.get('format') == 'txt':
return render(request, 'events/person.txt.html', context)
Expand All @@ -246,7 +261,9 @@ def show_topic(request):
topic_uri = request.GET.get('uri')
api_topic = TOPICS_DATA_SOURCE.get_object_by_id(topic_uri)
events = Event.published.filter(topics__uri=topic_uri)
grouped_events = group_events(events)
context = {
'grouped_events': grouped_events,
'topic': api_topic,
'events': events
}
Expand Down Expand Up @@ -283,7 +300,9 @@ def show_department_descendant(request, org_id):
show_all = request.GET.get('show_all', False)
if not show_all:
events = events.filter(start__gte=date.today())


grouped_events = group_events(events)

if org['_links'].has_key('parent'):
parent_href = org['_links']['parent'][0]['href']
parent_id = parent_href[parent_href.find("oxpoints"):]
Expand All @@ -295,6 +314,7 @@ def show_department_descendant(request, org_id):
'org': org,
'sub_orgs': sub_orgs,
'events': events,
'grouped_events': grouped_events,
'parent': parent,
'show_all': show_all,
'todays_date': date.today().strftime("%Y-%m-%d"),
Expand Down
10 changes: 10 additions & 0 deletions talks/templates/events/_event_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{% for grouped_event in grouped_events %}
<h4 class="group-date">{{grouped_event.start_date}}</h4>
<ul class="list-group">
{% for event in grouped_event.gr_events %}
<li class="list-group-item">
{% include 'events/event_teaser.html' %}
</li>
{% endfor %}
</ul>
{% endfor %}
6 changes: 6 additions & 0 deletions talks/templates/events/_event_list.txt.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{% for grouped_event in grouped_events %}
<br>{{grouped_event.start_date}}<br>
{% for event in grouped_event.gr_events %}
{% include 'events/event_teaser.txt.html' %}
{% endfor %}
{% endfor %}
14 changes: 2 additions & 12 deletions talks/templates/events/browse.html
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,8 @@ <h3>Filters</h3>


<div class="js-upcoming-events">
{% if result_events %}
{% for result_event in result_events %}
<p>{{result_event.start_date}}</p>
<ul class="list-group">
{% for event in result_event.gr_events %}
<li class="list-group-item">
{{event}}
{% include 'events/event_teaser.html' %}
</li>
{% endfor %}
</ul>
{% endfor %}
{% if grouped_events %}
{% include 'events/_event_list.html' with show_event_time_only=True %}
{% with events as page %}
{% include 'events/_pagination.html' %}
{% endwith %}
Expand Down
14 changes: 5 additions & 9 deletions talks/templates/events/department.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,11 @@ <h3 class="panel-title">
</h3>
</div>

<ul class="list-group">
{% if events %}
{% for event in events.all %}
<li class="list-group-item">{% include "events/event_teaser.html" %}</li>
{% endfor %}
{% else %}
<li class="list-group-item"><i>Sorry, there are currently no talks scheduled in this department.</i></li>
{% endif %}
</ul>
{% if events %}
{% include 'events/_event_list.html' with show_event_time_only=True %}
{% else %}
<i>Sorry, there are currently no talks scheduled in this department.</i>
{% endif %}
<div class="panel-footer">
{% if show_all %}
<strong>Showing all talks </strong><a class="btn btn-default navbar-btn" href="{% url 'show-department' org.id %}">Show upcoming talks only</a>
Expand Down
6 changes: 2 additions & 4 deletions talks/templates/events/department.txt.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@
<br>Department: {{ org.name }}

{% if events %}
<br>Talks:
{% for event in events.all %}
{% include "events/event_teaser.txt.html" %}<br>
{% endfor %}
<br>Talks:<br>
{% include "events/_event_list.txt.html" %}
{% else %}
<br>Sorry, there are currently no talks scheduled in this department.
{% endif %}
Expand Down
68 changes: 18 additions & 50 deletions talks/templates/events/event-group.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,11 @@ <h3 class="panel-title contains-floating-buttons">
{% endif %}
</div>
</h3>
Editor: {{request.user}}
{% if editors %}
Editor{{ editors|pluralize }}: {% for editor in editors %}
{{ editor.username }}{% if not forloop.last %}, {% endif %}
{% endfor %}
{% endif %}
</div>
{% if event_group.description %}
<div class="panel-body">
Expand All @@ -74,55 +78,19 @@ <h3 class="panel-title contains-floating-buttons">
{% if event_group.api_organisation %}
<li class="list-group-item"><strong>Organising department</strong>: <a href="{% url 'show-department' event_group.api_organisation.id %}">{{ event_group.api_organisation.name }}</a></li>
{% endif %}
{% for event in events %}
<li class="list-group-item">
{% if perms.events.change_event %}
<div class="pull-right">{% if request.user|can_edit_event:event %}<a class="btn btn-default navbar-btn" href="{% url 'edit-event' event.slug %}">Edit</a>{% else %}Not authorized to edit{% endif %}</div>
{% endif %}
<strong>{{ event.formatted_date }} - {{ event.formatted_endtime }}</strong> ({{ event.oxford_date.formatted_nocal }}){% include "events/event_ics_link.html" %}
{% if perms.events.change_event %}<span style="padding-left: 20px"><strong>Status</strong>:{% if event.is_published %} published{% else %}In Preparation{% endif %}</span>{% endif %}<br>
<a href="{{ event.get_absolute_url }}">{{ event.title_display }}</a><br>
<strong>Speaker{{ event.speakers|pluralize }}</strong>: {% for speaker in event.speakers %}<a href="{% url 'show-person' speaker.slug %}">{{ speaker.name}}{% if speaker.bio %} ({{ speaker.bio }}){% endif %}</a>{% if not forloop.last %}, {% endif %}
{% empty %} TBA
{% endfor %}<br>
{% if event.location and event.location_details %}
<strong>Venue</strong>: <a href="//maps.ox.ac.uk/#/places/{{ event.api_location.id }}">{{ event.api_location.name}}, {{ event.api_location.address }}</a><br>
<strong>Venue Details</strong>: {{event.location_details}}<br>
{% elif event.location %}
<strong>Venue</strong>: <a href="//maps.ox.ac.uk/#/places/{{ event.api_location.id }}">{{ event.api_location.name}}, {{ event.api_location.address }}</a><br>
{% elif event.location_details %}
<strong>Venue Details</strong>: {{event.location_details}}<br>
{% else %}
<strong>Venue</strong>: To be announced<br>
{% endif %}
<strong>Organiser{{ event.organisers|pluralize }}</strong>: {% for org in event.organisers %}<a href="{% url 'show-person' org.slug %}">{{ org.name }}{% if org.bio %} ({{ org.bio }}){% endif %}</a>{% if not forloop.last %}, {% endif %}
{% empty %} TBA
{% endfor %}<br>
<strong>Host{{ event.hosts|pluralize }}</strong>: {% for host in event.hosts %}<a href="{% url 'show-person' host.slug %}">{{ host.name }}{% if host.bio %} ({{ host.bio }}){% endif %}</a>{% if not forloop.last %}, {% endif %}
{% empty %} TBA
{% endfor %}<br>

</li>
{% empty %}
<li class="list-group-item">
{% if show_all %}
There are no talks for this series yet
{% else %}
No upcoming talks to display for this series. Press the button below to show all talks.
{% endif %}
</li>
{% endfor %}

</ul>


<div class="panel-footer">
{% if show_all %}
<strong>Showing all talks </strong><a class="btn btn-default navbar-btn" href="{% url 'show-event-group' event_group.slug %}">Show upcoming talks only</a>
{% else %}
<strong>Only showing upcoming talks </strong><a class="btn btn-default navbar-btn" href="{% url 'show-event-group' event_group.slug %}?show_all=true">Show all talks in this series</a>
{% endif %}
</div>
</ul>
{% if events %}
{% include 'events/_event_list.html' with show_event_time_only=True is_group_view=True %}
{% else %}
<i>Sorry, there are currently no talks scheduled in this series.</i>
{% endif %}
<div class="panel-footer">
{% if show_all %}
<strong>Showing all talks </strong><a class="btn btn-default navbar-btn" href="{% url 'show-event-group' event_group.slug %}">Show upcoming talks only</a>
{% else %}
<strong>Only showing upcoming talks </strong><a class="btn btn-default navbar-btn" href="{% url 'show-event-group' event_group.slug %}?show_all=true">Show all talks in this series</a>
{% endif %}
</div>
</div>


Expand Down
29 changes: 17 additions & 12 deletions talks/templates/events/event-group.txt.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@
{% block content %}

<br>{{ event_group.title }}
<br>Editor: {{request.user}}
<br>
{% if editors %}
Editor{{ editors|pluralize }}: {% for editor in editors %}
{{ editor.username }}{% if not forloop.last %}, {% endif %}
{% endfor %}
{% endif %}
{% if event_group.description %}
<br>{{ event_group.description_html | safe | striptags | linebreaksbr }}
{% else %}
Expand All @@ -42,17 +47,17 @@
{% endif %}

<br>
<br>Talks:
{% for event in events %}
{% include "events/event_teaser.txt.html" %}<br>

{% empty %}
{% if show_all %}
<br>There are no talks for this series yet
{% else %}
<br>No upcoming talks to display for this series.
{% endif %}
{% endfor %}
<br>Talks:<br>

{% if grouped_events %}
{% include "events/_event_list.txt.html" %}
{% else %}
{% if show_all %}
<br>There are no talks for this series yet
{% else %}
<br>No upcoming talks to display for this series.
{% endif %}
{% endif %}

<br>
{% endblock %}
29 changes: 23 additions & 6 deletions talks/templates/events/event_teaser.html
Original file line number Diff line number Diff line change
@@ -1,32 +1,49 @@
{% load users %}
<!-- Display a single event teaser -->
<div class="event-teaser-wrapper">
<div class="event-teaser-text-wrapper">
<div class="event-teaser-text-wrapper">

<div class="pull-right">
<span style="padding-right: 20px">
{% if not event.is_published %}<strong>Status</strong>: This talk is in preparation - details may change{% endif %}
</span>
{% if perms.events.change_event %}
{% if request.user|can_edit_event:event %}
<a class="btn btn-default navbar-btn" href="{% url 'edit-event' event.slug %}">Edit</a>
{% else %}
Not authorized to edit
{% endif %}
{% endif %}
</div>

<strong>
{% if show_event_time_only %}
{{ event.formatted_time }}
{% else %}
{{ event.formatted_date }}
{% endif %}
</strong>
-

<b><u><a href="{{ event.get_absolute_url }}" class="list-group-item-heading">
{% if event.title %}
{{ event.title }}
{% else %}
Untitled talk
{% endif %}
</a></u></b>
{% if event.group %}
<br>
Part of: <a href="{{ event.group.get_absolute_url }}">{{ event.group.title }}</a>
{% endif %}
{% if event.speakers %}
<br>
Speaker{{ event.speakers|pluralize }}:
{% for speaker in event.speakers %}
<b><u><a href="{% url 'show-person' speaker.slug %}">{{ speaker.name}}{% if speaker.bio %} ({{ speaker.bio }}){% endif %}</a></u></b>{% if not forloop.last %}, {% endif %}
{% endfor %}
{% endif %}
{% if not is_group_view %}
{% if event.group %}
<br>
Part of: <a href="{{ event.group.get_absolute_url }}">{{ event.group.title }}</a>
{% endif %}
{% endif %}
</div>
<div class="formatting-links-wrapper">
{% include "events/event_ics_link.html" %}
Expand Down
2 changes: 2 additions & 0 deletions talks/templates/events/event_teaser.txt.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<!-- Display a single event teaser -->
<br>{{ event.title_display }}
{% if not event.is_published %}<br>Status: This talk is in preparation - details may change{% endif %}
<br>Date: {{ event.formatted_date }} - {{ event.formatted_endtime }} ({{ event.oxford_date.formatted_nocal }})

<br>Speaker{{ event.speakers|pluralize }}:
Expand Down Expand Up @@ -27,3 +28,4 @@
{{ host.name }}{% if host.bio %} ({{ host.bio }}){% endif %}{% if not forloop.last %}, {% endif %}
{% empty %} TBA
{% endfor %}
<br>

0 comments on commit 3308bbb

Please sign in to comment.