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

Commit 198abf2

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 5b51712 + 4bdcc97 commit 198abf2

File tree

18 files changed

+130
-54
lines changed

18 files changed

+130
-54
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ codeweekeu/static/css/scss/.sass-cache/
1111
*.sass-cache/
1212
staticfiles/
1313
.DS_Store
14+
Gemfile*

api/serializers.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from rest_framework import serializers
2+
3+
from api.models.events import Event
4+
5+
class EventListSerializers(serializers.ModelSerializer):
6+
class Meta:
7+
model = Event
8+
fields = ('geoposition', 'title', 'id' , 'slug', 'description', 'picture')

api/tests/__init__.py

Whitespace-only changes.

api/tests/test_restapi.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# -*- coding: utf-8 -*-
2+
import json
3+
import datetime
4+
5+
from geoposition import Geoposition
6+
7+
from web.processors.event import create_or_update_event
8+
9+
10+
class TestRestApi:
11+
def test_event_list_all(self, client, admin_user):
12+
event_data = {
13+
"start_date": datetime.datetime.now() - datetime.timedelta(days=1, hours=3),
14+
"end_date": datetime.datetime.now() + datetime.timedelta(days=3, hours=3),
15+
"organizer": "some organizer",
16+
"creator": admin_user,
17+
"title": "Unique REST API Event",
18+
"pub_date": datetime.datetime.now(),
19+
"country": "SI",
20+
"geoposition": Geoposition(46.05528,14.51444),
21+
"location": "Ljubljana",
22+
"audience": [1],
23+
"theme": [1],
24+
"tags": ["tag1", "tag2"],
25+
}
26+
27+
event = create_or_update_event(**event_data)
28+
event.status = 'APPROVED'
29+
event.save()
30+
31+
response_json = client.get('/api/event/list/?format=json')
32+
response_data = json.loads(response_json.content)
33+
34+
assert isinstance(response_data, list)
35+
assert event_data['title'] in response_json.content

api/urls.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# -*- coding: utf-8 -*-
2+
from django.conf.urls import patterns, url
3+
4+
from api.views import EventListApi
5+
6+
urlpatterns = patterns('',
7+
url(r'^event/list/$', EventListApi.as_view(), name='event.list'),
8+
)

api/views.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# -*- coding: utf-8 -*-
2+
from rest_framework import generics
3+
4+
from api.serializers import EventListSerializers
5+
from api.processors import get_approved_events
6+
7+
class EventListApi(generics.ListAPIView):
8+
""" Lists epproved Events, takes the following optional GET parameters:
9+
10+
* limit
11+
* order
12+
* country_code
13+
* past
14+
"""
15+
serializer_class = EventListSerializers
16+
17+
def get_queryset(self):
18+
params = {
19+
'limit': self.request.GET.get('limit', None),
20+
'order': self.request.GET.get('order', None),
21+
'country_code': self.request.GET.get('country_code', None),
22+
'past': self.request.GET.get('past', False)
23+
}
24+
25+
return get_approved_events(**params)
26+

codeweekeu/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@
199199
# South migration tool.
200200
'south',
201201

202+
'rest_framework',
202203
# Celery task queue.
203204
#'djcelery',
204205

codeweekeu/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
'',
1212
url('', include('social.apps.django_app.urls', namespace='social')),
1313
url(r'^avatar/', include('avatar.urls')),
14+
url(r'^api/', include('api.urls', namespace='api')),
1415
url(r'^admin/', include(admin.site.urls)),
1516
#Note: keep this urls last
1617
url(r'', include('web.urls')),

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,6 @@ six==1.5.2
3030
sqlparse==0.1.11
3131
wsgiref==0.1.2
3232
dj-static==0.0.5
33+
djangorestframework==2.4.2
34+
Markdown==2.4.1
3335
django-cleanup==0.1.10

0 commit comments

Comments
 (0)