From 2d7c9d779ab815653d6aa08ec03f5b7617f909b2 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 18:37:01 +0300 Subject: [PATCH 1/7] Feed API added --- webapp/serializers.py | 7 +++++++ webapp/urls.py | 4 +++- webapp/views.py | 16 ++++++++-------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/webapp/serializers.py b/webapp/serializers.py index 1e9745f..5e5d9ec 100644 --- a/webapp/serializers.py +++ b/webapp/serializers.py @@ -40,3 +40,10 @@ class SignupSerializer(serializers.ModelSerializer): 'view_name': 'signup-detail', } } + + +class FeedSerializer(serializers.ModelSerializer): + class Meta: + model = Feed + fields = ('id', 'tags', 'visible', 'title', 'description', + 'content', 'publish_time', 'autohide') diff --git a/webapp/urls.py b/webapp/urls.py index dfd12a9..70b1fdc 100644 --- a/webapp/urls.py +++ b/webapp/urls.py @@ -18,12 +18,14 @@ from webapp.views import logout_view # from webapp.views import sosso_view # from webapp.views import contact_view -from webapp.views import EventViewSet, SignupFormViewSet, SignupViewSet +from webapp.views import EventViewSet, SignupFormViewSet, SignupViewSet,\ + FeedViewSet router = routers.DefaultRouter() router.register(r'events', EventViewSet) router.register(r'signupForm', SignupFormViewSet) router.register(r'signup', SignupViewSet) +router.register(r'feed', FeedViewSet) urlpatterns = [ url(r'^', include(router.urls)), diff --git a/webapp/views.py b/webapp/views.py index 2b364fa..be0f932 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -19,18 +19,13 @@ from rest_framework.reverse import reverse # import requests from dealer.git import git -from webapp.models import Event, SignupForm, Signup, Committee -from webapp.serializers import EventSerializer, SignupFormSerializer, SignupSerializer +from webapp.models import Event, SignupForm, Signup, Committee, Feed +from webapp.serializers import * from members.views.utils import * # -- REST API -- # -@api_view(['GET']) -def api_root(request, format=None): - return Response({'events': reverse('event-list', request=request, format=format), }) - - class EventViewSet(viewsets.ModelViewSet): queryset = Event.objects.all() serializer_class = EventSerializer @@ -46,6 +41,11 @@ class SignupViewSet(viewsets.ModelViewSet): serializer_class = SignupSerializer +class FeedViewSet(viewsets.ModelViewSet): + queryset = Feed.objects.all() + serializer_class = FeedSerializer + + # -- OLD CODEBASE -- # @require_http_methods(["GET"]) @@ -95,7 +95,7 @@ def about_view(request, *args, **kwargs): latest_commit = repo.git("rev-parse HEAD").decode('utf-8') latest_date = repo.git("show -s --format=%ci " + latest_commit).decode('utf-8') latest_tag = repo.git("describe --tags " + repo.git("rev-list --tags --max-count=1").decode('utf-8')).decode('utf-8') - except: + except Exception: pass context = { From a923e225e80062369f7c7786ddadb1b467f2e612 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 18:41:20 +0300 Subject: [PATCH 2/7] API root to /api --- webapp/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/urls.py b/webapp/urls.py index 70b1fdc..a4afd0e 100644 --- a/webapp/urls.py +++ b/webapp/urls.py @@ -28,7 +28,7 @@ router.register(r'signup', SignupViewSet) router.register(r'feed', FeedViewSet) urlpatterns = [ - url(r'^', include(router.urls)), + url(r'^api/', include(router.urls)), # login stuff url(r'^login$', login_view), url(r'^logout$', logout_view), From 60da9d8256b32b75266a385b0fa719f3d331ca61 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 20:11:24 +0300 Subject: [PATCH 3/7] Add event update serializer --- webapp/serializers.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/webapp/serializers.py b/webapp/serializers.py index 5e5d9ec..fab2832 100644 --- a/webapp/serializers.py +++ b/webapp/serializers.py @@ -25,11 +25,20 @@ class EventSerializer(serializers.HyperlinkedModelSerializer): def create(self, validated_data): signupForms = validated_data.pop('signupForm') event = Event.objects.create(**validated_data) - for signupForm in signupForms: - event.signupForm.add(signupForm) + for form in signupForms: + event.signupForm.add(form) event.save() return event + def update(self, instance, validated_data): + signupForms = validated_data.pop('signupForm') + instance = super(EventSerializer, self).update(instance, validated_data) + instance.signupForm.clear() + for form_data in signupForms: + # form_qs = SignupForms.objects.filter(id=form['id']) + instance.signupForm.add(form_data) + return instance + class SignupSerializer(serializers.ModelSerializer): class Meta: From c536899cc90f50e51faf0d24936e97cac9d2303e Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 20:12:06 +0300 Subject: [PATCH 4/7] Bring about page back --- webapp/urls.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/webapp/urls.py b/webapp/urls.py index a4afd0e..b687b35 100644 --- a/webapp/urls.py +++ b/webapp/urls.py @@ -9,7 +9,7 @@ from rest_framework import routers # from webapp.views import main_index from webapp.views import login_view from webapp.views import logout_view -# from webapp.views import about_view +from webapp.views import about_view # from webapp.views import guild_view # from webapp.views import freshmen_view # from webapp.views import jobs_view @@ -32,11 +32,13 @@ urlpatterns = [ # login stuff url(r'^login$', login_view), url(r'^logout$', logout_view), + + # git revision + url(r'^about', about_view), ] # urlpatterns = [ # # main # url(r'^$', main_index), -# url(r'^api/$', api_root), # url(r'^api/events/$', EventList.as_view(), name='event-list'), # url(r'^api/events/(?P[0-9]+)/$', EventDetail.as_view(), name='event-detail'), # url(r'^api/signup/$', SignupFormList.as_view(), name='signupform-list'), @@ -51,9 +53,6 @@ urlpatterns = [ # url(r'^login$', login_view), # url(r'^logout$', logout_view), -# # git revision -# url(r'^about', about_view), - # # pages # url(r'^guild', guild_view), # url(r'^freshmen', freshmen_view), From 1711aca5ec84ff72a251509c4cb8b5433a9a1159 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 20:39:08 +0300 Subject: [PATCH 5/7] Add templatequestions API --- webapp/serializers.py | 6 ++++++ webapp/urls.py | 3 ++- webapp/views.py | 8 +++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/webapp/serializers.py b/webapp/serializers.py index fab2832..49188dd 100644 --- a/webapp/serializers.py +++ b/webapp/serializers.py @@ -51,6 +51,12 @@ class SignupSerializer(serializers.ModelSerializer): } +class SavedQuestionsSerializer(serializers.ModelSerializer): + class Meta: + model = TemplateQuestion + fields = ('id', 'name', 'question') + + class FeedSerializer(serializers.ModelSerializer): class Meta: model = Feed diff --git a/webapp/urls.py b/webapp/urls.py index b687b35..ec3dd98 100644 --- a/webapp/urls.py +++ b/webapp/urls.py @@ -19,13 +19,14 @@ from webapp.views import about_view # from webapp.views import contact_view from webapp.views import EventViewSet, SignupFormViewSet, SignupViewSet,\ - FeedViewSet + FeedViewSet, ContactsViewSet, SavedQuestionsViewSet router = routers.DefaultRouter() router.register(r'events', EventViewSet) router.register(r'signupForm', SignupFormViewSet) router.register(r'signup', SignupViewSet) router.register(r'feed', FeedViewSet) +router.register(r'questions', SavedQuestionsViewSet) urlpatterns = [ url(r'^api/', include(router.urls)), diff --git a/webapp/views.py b/webapp/views.py index be0f932..dab27f5 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -19,7 +19,8 @@ from rest_framework.reverse import reverse # import requests from dealer.git import git -from webapp.models import Event, SignupForm, Signup, Committee, Feed +from webapp.models import Event, SignupForm, Signup, TemplateQuestion, Feed,\ + Committee, Official from webapp.serializers import * from members.views.utils import * @@ -41,6 +42,11 @@ class SignupViewSet(viewsets.ModelViewSet): serializer_class = SignupSerializer +class SavedQuestionsViewSet(viewsets.ModelViewSet): + queryset = TemplateQuestion.objects.all() + serializer_class = SavedQuestionsSerializer + + class FeedViewSet(viewsets.ModelViewSet): queryset = Feed.objects.all() serializer_class = FeedSerializer From 01c20b1a6ecf5be3ec927b01136c159c6026549b Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 20:40:19 +0300 Subject: [PATCH 6/7] Add contacts API --- webapp/serializers.py | 7 +++++++ webapp/urls.py | 1 + webapp/views.py | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/webapp/serializers.py b/webapp/serializers.py index 49188dd..d6cc1af 100644 --- a/webapp/serializers.py +++ b/webapp/serializers.py @@ -62,3 +62,10 @@ class FeedSerializer(serializers.ModelSerializer): model = Feed fields = ('id', 'tags', 'visible', 'title', 'description', 'content', 'publish_time', 'autohide') + + +class ContactsSerializer(serializers.ModelSerializer): + class Meta: + model = Official + fields = ('id', 'first_name', 'last_name', 'phone_number', 'role') + depth = 2 diff --git a/webapp/urls.py b/webapp/urls.py index ec3dd98..f731159 100644 --- a/webapp/urls.py +++ b/webapp/urls.py @@ -26,6 +26,7 @@ router.register(r'events', EventViewSet) router.register(r'signupForm', SignupFormViewSet) router.register(r'signup', SignupViewSet) router.register(r'feed', FeedViewSet) +router.register(r'contacts', ContactsViewSet) router.register(r'questions', SavedQuestionsViewSet) urlpatterns = [ diff --git a/webapp/views.py b/webapp/views.py index dab27f5..1f00e3c 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -52,6 +52,11 @@ class FeedViewSet(viewsets.ModelViewSet): serializer_class = FeedSerializer +class ContactsViewSet(viewsets.ReadOnlyModelViewSet): + queryset = Official.objects.all() + serializer_class = ContactsSerializer + + # -- OLD CODEBASE -- # @require_http_methods(["GET"]) From 0cfb78bc69928338999fa851b592c365065088d2 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 18 Jul 2018 20:40:44 +0300 Subject: [PATCH 7/7] Remove not used api_view --- webapp/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/webapp/views.py b/webapp/views.py index 1f00e3c..4bfc9bd 100644 --- a/webapp/views.py +++ b/webapp/views.py @@ -9,7 +9,6 @@ from django.views.decorators.http import require_http_methods # from django.contrib.auth.decorators import permission_required, login_required # from django.conf import settings # from django.utils import timezone -from rest_framework.decorators import api_view from rest_framework import viewsets # from rest_framework import permissions, authentication from rest_framework.response import Response