Skip to content
Snippets Groups Projects
Commit f3a723c6 authored by Bodor Máté's avatar Bodor Máté
Browse files

Add student event view

parent c6cb0fce
No related branches found
No related tags found
No related merge requests found
# Generated by Django 2.0.1 on 2019-01-19 14:34
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stats', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='event',
name='description',
field=models.TextField(blank=True, default=''),
),
]
...@@ -8,6 +8,7 @@ from django.core.exceptions import ValidationError ...@@ -8,6 +8,7 @@ from django.core.exceptions import ValidationError
class Event(models.Model): class Event(models.Model):
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
date = models.DateTimeField(null=False) date = models.DateTimeField(null=False)
description = models.TextField(blank=True, default='')
visitors = models.ManyToManyField( visitors = models.ManyToManyField(
Profile, Profile,
related_name='events', related_name='events',
......
...@@ -3,7 +3,7 @@ from common.serializers import CurrentUserProfileDefault ...@@ -3,7 +3,7 @@ from common.serializers import CurrentUserProfileDefault
from . import models from . import models
class EventSerializer(serializers.ModelSerializer): class StaffEventSerializer(serializers.ModelSerializer):
created_by_name = serializers.SerializerMethodField() created_by_name = serializers.SerializerMethodField()
visitor_number = serializers.SerializerMethodField() visitor_number = serializers.SerializerMethodField()
...@@ -19,6 +19,13 @@ class EventSerializer(serializers.ModelSerializer): ...@@ -19,6 +19,13 @@ class EventSerializer(serializers.ModelSerializer):
return obj.visitors.all().count() return obj.visitors.all().count()
class StudentEventSerializer(serializers.ModelSerializer):
class Meta:
model = models.Event
fields = ('name', 'date', 'description', )
read_only_fields = ('name', 'date', 'description', )
class NoteSerializer(serializers.ModelSerializer): class NoteSerializer(serializers.ModelSerializer):
created_by = serializers.HiddenField(default=CurrentUserProfileDefault()) created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
created_by_name = serializers.SerializerMethodField() created_by_name = serializers.SerializerMethodField()
......
...@@ -2,7 +2,8 @@ from rest_framework import routers ...@@ -2,7 +2,8 @@ from rest_framework import routers
from . import views from . import views
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'events', views.EventViewSet, base_name='events') router.register(r'staff_events', views.StaffEventViewSet, base_name='staff_events')
router.register(r'student_events', views.StudentEventViewSet, base_name='student_events')
router.register(r'notes', views.NoteViewSet, base_name='notes') router.register(r'notes', views.NoteViewSet, base_name='notes')
urlpatterns = router.urls urlpatterns = router.urls
from rest_framework import viewsets from rest_framework import viewsets
from . import models from . import models
from . import serializers from . import serializers
from common.permissions import IsStaffUser, IsStaffOrReadOnlyForAuthenticated from common.permissions import IsStaffUser, IsStaffOrStudent
class EventViewSet(viewsets.ModelViewSet): class StaffEventViewSet(viewsets.ModelViewSet):
serializer_class = serializers.EventSerializer serializer_class = serializers.StaffEventSerializer
queryset = models.Event.objects.all() queryset = models.Event.objects.all()
permission_classes = (IsStaffOrReadOnlyForAuthenticated, ) permission_classes = (IsStaffUser, )
class StudentEventViewSet(viewsets.ModelViewSet):
serializer_class = serializers.StudentEventSerializer
queryset = models.Event.objects.all()
permission_classes = (IsStaffOrStudent, )
class NoteViewSet(viewsets.ModelViewSet): class NoteViewSet(viewsets.ModelViewSet):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment