diff --git a/webapp/serializers.py b/webapp/serializers.py index 1e9745f..d6cc1af 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: @@ -40,3 +49,23 @@ class SignupSerializer(serializers.ModelSerializer): 'view_name': 'signup-detail', } } + + +class SavedQuestionsSerializer(serializers.ModelSerializer): + class Meta: + model = TemplateQuestion + fields = ('id', 'name', 'question') + + +class FeedSerializer(serializers.ModelSerializer): + class Meta: + 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 4f5d6e1..3e970c6 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 @@ -18,23 +18,29 @@ from rest_framework import routers # 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, 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'contacts', ContactsViewSet) +router.register(r'questions', SavedQuestionsViewSet) urlpatterns = [ - url(r'^', include(router.urls)), + url(r'^api/', include(router.urls)), # 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'), @@ -49,9 +55,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), diff --git a/webapp/views.py b/webapp/views.py index e538647..952cce1 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 @@ -19,18 +18,14 @@ 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, TemplateQuestion, Feed,\ + Committee, Official +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,21 @@ 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 + + +class ContactsViewSet(viewsets.ReadOnlyModelViewSet): + queryset = Official.objects.all() + serializer_class = ContactsSerializer + + # -- OLD CODEBASE -- # @require_http_methods(["GET"]) @@ -65,7 +75,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 = {