Bugfix #117: API Event tags

Add API for tags so events can get the related field.
This commit is contained in:
Aarni Halinen
2018-10-23 14:42:26 +03:00
parent b1eda70e7a
commit 4a2a5f9d76
3 changed files with 20 additions and 4 deletions
+11 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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"])