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

Commit 197f1a0

Browse files
committed
Added redirect for /view/<id>, redirects to /view/<id>/<slug>
1 parent 617e571 commit 197f1a0

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

web/tests/test_site.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# -*- coding: utf-8 -*-
22
import pytest
3+
import datetime
4+
5+
from web.processors.event import create_or_update_event
36

47
@pytest.mark.django_db
58
def test_unknown_URL(db, client):
@@ -20,3 +23,31 @@ def test_country_redirect(db, client):
2023

2124
assert response.status_code == 301
2225
assert response['Location'][-5:] == '/#!AB'
26+
27+
@pytest.mark.django_db
28+
def test_view_just_id(admin_user, db, client):
29+
event_data = {
30+
'audience': [3],
31+
'theme': [1,2],
32+
'contact_person': u'[email protected]',
33+
'country': u'SI',
34+
'description': u'Lorem ipsum dolor sit amet',
35+
'event_url': u'',
36+
'location': u'Tiraspol, Moldova',
37+
'organizer': u'RailsGirls Moldova',
38+
"creator": admin_user,
39+
'start_date': datetime.datetime.now(),
40+
'end_date': datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
41+
'tags': [u'css', u'html', u'web'],
42+
'title': u'Rails Moldova',
43+
}
44+
45+
test_event = create_or_update_event(event_id=None, **event_data)
46+
47+
# Test without a slash in the end
48+
response = client.get('/view/1')
49+
assert response.status_code == 301
50+
51+
# Test with a slash in the end
52+
response = client.get('/view/1/')
53+
assert response.status_code == 302

web/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
url(r'^add/$', 'events.add_event', name='web.add_event'),
1313
url(r'^edit/(?P<event_id>\d+)/$', 'events.edit_event', name='web.edit_event'),
1414
url(r'^view/(?P<event_id>\d+)/(?P<slug>[-\w]+)/$', 'events.view_event', name='web.view_event'),
15+
url(r'^view/(?P<event_id>[0-9]+)/$', 'events.view_event_by_id', name='web.view_event_by_id'),
1516
url(r'^view/(?P<country_code>\w+)/$', 'events.view_event_by_country', name='web.view_event_by_country'),
1617
url(r'^search/$', 'events.search_events', name='web.search_events'),
1718
url(r'^approved/(?P<country_code>\w{2,3})/$', 'events.list_approved_events', name='web.list_events'),

web/views/events.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
from web.decorators.events import is_ambassador
4040

4141
from django.http import Http404
42+
from django.shortcuts import redirect
4243
from django.core.exceptions import ObjectDoesNotExist
4344

4445
"""
@@ -206,6 +207,21 @@ def view_event(request, event_id, slug):
206207
'nearby': nearby
207208
}, context_instance=RequestContext(request))
208209

210+
def view_event_by_id(request, event_id):
211+
try:
212+
event = get_event_by_id(event_id)
213+
except ObjectDoesNotExist as e:
214+
raise Http404
215+
216+
return redirect(view_event, event_id, event.slug)
217+
# next_event = get_next_or_previous(event, country_code=event.country)
218+
# nearby = get_nearby_events(event, limit=4)
219+
# return render_to_response(
220+
# 'pages/view_event.html', {
221+
# 'event': event,
222+
# 'next_event': next_event,
223+
# 'nearby': nearby
224+
# }, context_instance=RequestContext(request))
209225

210226
@login_required
211227
@is_ambassador

0 commit comments

Comments
 (0)