Skip to content
This repository was archived by the owner on Sep 19, 2018. It is now read-only.

Commit 5c30de3

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 3ae2ec1 + f8ef039 commit 5c30de3

File tree

5 files changed

+66
-2
lines changed

5 files changed

+66
-2
lines changed

api/processors.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,21 @@ def get_created_events(creator, limit=None, order=None, country_code=None, past=
126126
events = events = events[:limit]
127127
return events
128128

129+
def get_nearby_events(event, limit=None, past=False):
130+
131+
"""
132+
Select ten events which are near by the current event
133+
"""
134+
135+
events = Event.objects.filter(status='APPROVED').filter(country=event.country).exclude(pk=event.pk)
136+
137+
if not past:
138+
events = events.filter(end_date__gte=datetime.datetime.now())
139+
if limit:
140+
events = events[:limit]
141+
142+
return events
143+
129144
def list_themes():
130145
themes = EventTheme.objects.all()
131146

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{% load static %}
2+
<div class="col-sm-3 col-xs-6">
3+
<a href="{% url 'web.view_event' event.id event.slug %}" class="thumbnail clearfix">
4+
<h4>{{ event.title }}</h4>
5+
<div class="caption">
6+
<span class="countdown pull-left caption">
7+
{{ event.start_date|date:"F j, Y" }}
8+
</span>
9+
</div>
10+
{% if event.picture %}
11+
<img src="{{ event.picture.url }}" alt="{{ event.title }} Image">
12+
{% else %}
13+
<img src="{% static 'img/event_default_picture.png' %}" alt="{{ event.title }} Image">
14+
{% endif %}
15+
</a>
16+
</div>

web/templates/pages/view_event.html

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,22 @@ <h1>{{ event.title }}</h1>
188188
<div class="col-md-12 first">
189189
<hr>
190190
</div>
191-
<div id="view-event-map-wrapper" class=" col-md-12 first">
191+
<div id="view-event-map-wrapper" class="col-md-12 first">
192192
<div id="view-event-map"></div>
193193
</div>
194+
</div>
195+
<div class="col-md-12 first">
196+
<hr>
197+
</div>
198+
{% if nearby %}
199+
<div class="col-md-12 first">
200+
<h3>Nearby events:</h3>
201+
{% for event in nearby %}
202+
{% include 'layout/near_event_tile.html' %}
203+
{% endfor %}
204+
</div>
205+
{% endif %}
194206
</div>
195-
</div>
196207
{% endblock content %}
197208

198209
{% block custom_js %}

web/tests/test_events_processors.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from web.processors.event import create_or_update_event
1212
from api.processors import get_approved_events
1313
from api.processors import get_next_or_previous
14+
from api.processors import get_nearby_events
1415

1516

1617
class EventTestCase(TestCase):
@@ -205,3 +206,21 @@ def test_get_next_or_previous_pending_event(self):
205206

206207
self.assertEqual(None, previous_event_2)
207208

209+
def test_get_nearby_events(self):
210+
target_event = self.create_event(status="APPROVED")
211+
nearby_event = self.create_event(status="APPROVED")
212+
nearby = get_nearby_events(target_event)
213+
214+
self.assertEqual(1, len(nearby))
215+
self.assertEqual(nearby_event.pk, nearby[0].pk)
216+
217+
self.create_event(status="APPROVED", country_code="HR")
218+
nearby = get_nearby_events(target_event)
219+
220+
self.assertEqual(1, len(nearby))
221+
222+
self.create_event(status="PENDING")
223+
nearby = get_nearby_events(target_event)
224+
225+
self.assertEqual(1, len(nearby))
226+

web/views/events.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from api.processors import get_pending_events
1717
from api.processors import get_created_events
1818
from api.processors import get_next_or_previous
19+
from api.processors import get_nearby_events
1920
from web.forms.event_form import AddEventForm
2021
from web.forms.event_form import SearchEventForm
2122
from web.processors.event import get_initial_data
@@ -191,11 +192,13 @@ def view_event_by_country(request, country_code):
191192
def view_event(request, event_id, slug):
192193
event = get_event_by_id(event_id)
193194
next_event = get_next_or_previous(event, country_code=event.country)
195+
nearby = get_nearby_events(event, limit=10)
194196

195197
return render_to_response(
196198
'pages/view_event.html', {
197199
'event': event,
198200
'next_event': next_event,
201+
'nearby': nearby
199202
}, context_instance=RequestContext(request))
200203

201204

0 commit comments

Comments
 (0)