Bugfix #117: API Event tags
Add API for tags so events can get the related field.
This commit is contained in:
+11
-2
@@ -14,19 +14,28 @@ class EventSerializer(serializers.HyperlinkedModelSerializer):
|
||||
signup_id = serializers.PrimaryKeyRelatedField(
|
||||
many=True,
|
||||
source="signupForm",
|
||||
queryset=SignupForm.objects.all())
|
||||
queryset=SignupForm.objects.all()
|
||||
)
|
||||
tag_id = serializers.PrimaryKeyRelatedField(
|
||||
many=True,
|
||||
source="tags",
|
||||
queryset=Tag.objects.all()
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Event
|
||||
fields = ('id', 'tags', 'visible', 'title', 'description',
|
||||
fields = ('id', 'tag_id', 'tags', 'visible', 'title', 'description',
|
||||
'content', 'start_time', 'end_time', 'signup_id', 'signupForm')
|
||||
depth = 1
|
||||
|
||||
def create(self, validated_data):
|
||||
signupForms = validated_data.pop('signupForm')
|
||||
tags = validated_data.pop('tags')
|
||||
event = Event.objects.create(**validated_data)
|
||||
for form in signupForms:
|
||||
event.signupForm.add(form)
|
||||
for tag in tags:
|
||||
event.tags.add(tag)
|
||||
event.save()
|
||||
return event
|
||||
|
||||
|
||||
+2
-1
@@ -19,7 +19,7 @@ from webapp.views import about_view
|
||||
# from webapp.views import contact_view
|
||||
|
||||
from webapp.views import EventViewSet, SignupFormViewSet, SignupViewSet,\
|
||||
FeedViewSet, ContactsViewSet, SavedQuestionsViewSet, RootView
|
||||
FeedViewSet, ContactsViewSet, SavedQuestionsViewSet, RootView, TagsViewSet
|
||||
|
||||
|
||||
class APIRouter(routers.DefaultRouter):
|
||||
@@ -33,6 +33,7 @@ router.register(r'signup', SignupViewSet)
|
||||
router.register(r'feed', FeedViewSet)
|
||||
router.register(r'contacts', ContactsViewSet)
|
||||
router.register(r'questions', SavedQuestionsViewSet)
|
||||
router.register(r'tags', TagsViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^api/', include(router.urls)),
|
||||
|
||||
+7
-1
@@ -19,7 +19,7 @@ from rest_framework.reverse import reverse
|
||||
from dealer.git import git
|
||||
|
||||
from webapp.models import Event, SignupForm, Signup, TemplateQuestion, Feed,\
|
||||
Committee, Official
|
||||
Committee, Official, Tag
|
||||
from webapp.serializers import *
|
||||
from members.views.utils import *
|
||||
|
||||
@@ -65,6 +65,12 @@ class ContactsViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
|
||||
|
||||
class TagsViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
queryset = Tag.objects.all()
|
||||
serializer_class = ContactsSerializer
|
||||
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||
|
||||
|
||||
# -- OLD CODEBASE -- #
|
||||
|
||||
@require_http_methods(["GET"])
|
||||
|
||||
Reference in New Issue
Block a user