Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/ox-it/talks.ox
Browse files Browse the repository at this point in the history
  • Loading branch information
ahaith committed May 6, 2016
2 parents e8696bc + 40c82e2 commit 8ebaf18
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 21 deletions.
4 changes: 2 additions & 2 deletions talks/core/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def parse_date(date_param):
from_date = datetime.strptime(date_param, "%d/%m/%y")
except Exception as e:
try:
from_date = datetime.strptime(date_param, "%d/%m/%y")
from_date = datetime.strptime(date_param, "%d/%m/%Y")
except Exception as e:
try:
from_date = datetime.strptime(date_param, "%Y-%m-%d")
Expand Down Expand Up @@ -91,4 +91,4 @@ def iso8601_duration(value):
# remove trailing zeros
seconds = seconds.rstrip('0')
time += '{}S'.format(seconds)
return u'P' + date + time
return u'P' + date + time
28 changes: 21 additions & 7 deletions talks/events/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import logging
import functools
from datetime import date, timedelta, datetime

from django.core.urlresolvers import reverse
Expand All @@ -12,6 +13,7 @@
from talks.users.models import COLLECTION_ROLES_OWNER, COLLECTION_ROLES_EDITOR, COLLECTION_ROLES_READER
from .forms import BrowseEventsForm, BrowseSeriesForm
from talks.api.services import events_search
from talks.api_ox.api import OxfordDateResource

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -60,7 +62,7 @@ def browse_events(request):
modified_request_parameters['subdepartments'] = "false"
if (len(request.GET) == 0) or (len(request.GET) == 1) and request.GET.get('limit_to_collections'):
today = date.today()
modified_request_parameters['start_date'] = today.strftime("%Y-%m-%d")
modified_request_parameters['start_date'] = today.strftime("%d/%m/%Y")
modified_request_parameters['include_subdepartments'] = True
modified_request_parameters['subdepartments'] = 'true'
elif request.GET.get('include_subdepartments'):
Expand Down Expand Up @@ -175,12 +177,15 @@ def group_events (events):
minutes = ""
ampm = datetime.strftime(group_event.start, '%p')
group_event.display_time = str(int(hours))+minutes+ampm.lower()
if group_event.oxford_date:
comps = group_event.oxford_date.components
key = comps['day_name']+ " " +str(comps['day_number'])+ " " +comps['month_long']+ " "
key+= str(comps['year'])+ " ("+ str(comps['week']) + comps['ordinal']+ " Week, " +comps['term_long']+ " Term)"
else:
key = datetime.strftime(group_event.start, '%A, %d %B %Y')
# if there is no oxford_date field, events are search results
# we need to call date_to_oxford_date to create the oxford date
if not group_event.oxford_date:
group_event.oxford_date = date_to_oxford_date(group_event.start)

comps = group_event.oxford_date.components
key = comps['day_name']+ " " +str(comps['day_number'])+ " " +comps['month_long']+ " "
key+= str(comps['year'])+ " ("+ str(comps['week']) + comps['ordinal']+ " Week, " +comps['term_long']+ " Term)"

if key not in grouped_events:
grouped_events[key] = []
event_dates.append(key)
Expand All @@ -192,6 +197,15 @@ def group_events (events):

return result_events

def date_to_oxford_date(date_str):
func = functools.partial(OxfordDateResource.from_date, date_str)
try:
res = func()
return res
except ApiException:
logger.warn('Unable to reach API', exc_info=True)
return None


def upcoming_events(request):
today = date.today()
Expand Down
14 changes: 13 additions & 1 deletion talks/events_search/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from haystack.views import FacetedSearchView
from datetime import datetime

from talks.events.views import group_events
from talks.events.views import group_events, date_to_oxford_date


class StartDateFacetItem(object):
Expand Down Expand Up @@ -68,6 +68,18 @@ def extra_context(self):
extra = super(SearchUpcomingView, self).extra_context()

extra['top_results'] = self.get_results()[:5]
for top_event in extra['top_results']:
ox_date = date_to_oxford_date(top_event.start)
comps = ox_date.components
date_str = comps['day_name']+ " " +str(comps['day_number'])+ " " +comps['month_long']+ " "
date_str+= str(comps['year'])+ " ("+ str(comps['week']) + comps['ordinal']+ " Week, " +comps['term_long']+ " Term)"
hours = datetime.strftime(top_event.start, '%I')
minutes = datetime.strftime(top_event.start, ':%M')
if minutes==":00":
minutes = ""
ampm = datetime.strftime(top_event.start, '%p')
top_event.oxford_date_time = date_str +" "+ str(int(hours))+minutes+ampm.lower()

now = datetime.now()
extra['future_results'] = self.get_results().filter(start__gte=now).order_by('start')

Expand Down
1 change: 1 addition & 0 deletions talks/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@
<ul class="dropdown-menu">
<li {% if '/user/lists' in request.path %} class="active" {% endif %}><a href="{{ manage_lists }}"><span class="glyphicon glyphicon-list-alt"></span> Manage Collections</a></li>
<li {% if '/user/mytalks' in request.path %} class="active" {% endif %}><a href="{% url 'my-talks' %}"><span class="glyphicon glyphicon-list-alt"></span> My Talks</a></li>
<li><a href="http://talksox.readthedocs.io/en/latest/user/talk-editors/sign-up.html" target="blank"><span class="glyphicon glyphicon-list-alt"></span> Become an Editor</a></li>
<li><a href="{% url 'logout' %}">Logout</a></li>
</ul>
</li>
Expand Down
4 changes: 2 additions & 2 deletions talks/templates/events/browse.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ <h3 class="hidden-xs">Filters</h3>
});

$('.js-datetimepicker').datetimepicker({
format : 'YYYY-MM-DD',
format : 'DD/MM/YYYY',
allowInputToggle : true
}).each(function(i,v){
$(v).data("DateTimePicker").ignoreReadonly(true);
Expand All @@ -99,7 +99,7 @@ <h3 class="hidden-xs">Filters</h3>
$('#start_date').on('dp.change', function(e){
$('#to').data('DateTimePicker').minDate(e.date);
});

});
</script>

Expand Down
11 changes: 5 additions & 6 deletions talks/templates/events/event_teaser.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,12 @@
<strong>
{% if show_event_time_only %}
{{ event.display_time }}
{% elif show_oxford_date_time %}
{{ event.oxford_date_time }}
{% elif event.formatted_date %}
{{ event.formatted_date }}
{% else %}
{% if event.formatted_date %}
{{ event.formatted_date }}
{% else %}
<!-- from search results -->
{{ event.start | date:"D, d M y" }}
{% endif %}
{{ event.start | date:"D, d M y" }}
{% endif %}
</strong>

Expand Down
4 changes: 2 additions & 2 deletions talks/templates/search/search.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ <h3>Top results</h3>
<ul class="list-group">
{% for event in top_results %}
<li class="list-group-item">
{% include "events/event_teaser.html" %}
{% include "events/event_teaser.html" with show_oxford_date_time=True %}
</li>
{% endfor %}
</ul>
{% endif %}

<h3>Upcoming</h3>
<h5><a href="{% url 'haystack_search_past' %}?q={{query}}">Show past results</a></h5>
{% include "events/_event_list.html" with grouped_events=grouped_future_results %}
{% include "events/_event_list.html" with grouped_events=grouped_future_results show_event_time_only=True %}

</div>

Expand Down
2 changes: 1 addition & 1 deletion talks/templates/search/search_past.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<h3>Past results</h3>
<h5><a href="{% url 'haystack_search' %}?q={{query}}">Show upcoming results</a></h5>

{% include "events/_event_list.html" with grouped_events=grouped_past_results %}
{% include "events/_event_list.html" with grouped_events=grouped_past_results show_event_time_only=True %}

</div>

Expand Down

0 comments on commit 8ebaf18

Please sign in to comment.