From 187c268566a4ca178c393130f2c5248552ccc15c Mon Sep 17 00:00:00 2001 From: rlacko <rlacko@sch.bme.hu> Date: Sun, 26 Jan 2020 13:52:17 +0100 Subject: [PATCH] groups api endpoint --- src/groups/__init__.py | 0 src/groups/admin.py | 5 +++++ src/groups/apps.py | 5 +++++ src/groups/migrations/__init__.py | 0 src/groups/models.py | 9 +++++++++ src/groups/serializers.py | 16 ++++++++++++++++ src/groups/tests.py | 3 +++ src/groups/urls.py | 7 +++++++ src/groups/views.py | 9 +++++++++ src/kszkepzes/settings/base.py | 3 ++- src/kszkepzes/urls.py | 1 + 11 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/groups/__init__.py create mode 100644 src/groups/admin.py create mode 100644 src/groups/apps.py create mode 100644 src/groups/migrations/__init__.py create mode 100644 src/groups/models.py create mode 100644 src/groups/serializers.py create mode 100644 src/groups/tests.py create mode 100644 src/groups/urls.py create mode 100644 src/groups/views.py diff --git a/src/groups/__init__.py b/src/groups/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/groups/admin.py b/src/groups/admin.py new file mode 100644 index 0000000..8eefe1f --- /dev/null +++ b/src/groups/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin + +from . import models + +admin.site.register(models.Group) diff --git a/src/groups/apps.py b/src/groups/apps.py new file mode 100644 index 0000000..e6984a8 --- /dev/null +++ b/src/groups/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class GroupsConfig(AppConfig): + name = 'groups' diff --git a/src/groups/migrations/__init__.py b/src/groups/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/groups/models.py b/src/groups/models.py new file mode 100644 index 0000000..88a35cf --- /dev/null +++ b/src/groups/models.py @@ -0,0 +1,9 @@ +from django.db import models + +# KSZK groups, like Devteam, Sysadmin, ... +class Group(models.Model): + name = models.CharField(max_length=50, blank=True, default='') + description = models.TextField(blank=True, default='') + + def __str__(self): + return self.name \ No newline at end of file diff --git a/src/groups/serializers.py b/src/groups/serializers.py new file mode 100644 index 0000000..5c11909 --- /dev/null +++ b/src/groups/serializers.py @@ -0,0 +1,16 @@ +from rest_framework import serializers +from . import models + + +class GroupSerializer(serializers.ModelSerializer): + class Meta: + model = models.Group + read_only_fields = ( + 'name', + 'description',) + fields = ( + 'name', + 'description', + ) + + diff --git a/src/groups/tests.py b/src/groups/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/src/groups/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/groups/urls.py b/src/groups/urls.py new file mode 100644 index 0000000..646653b --- /dev/null +++ b/src/groups/urls.py @@ -0,0 +1,7 @@ +from rest_framework import routers +from . import views + +router = routers.DefaultRouter() + +router.register(r'group', views.GroupViewSet, base_name='group') +urlpatterns = router.urls diff --git a/src/groups/views.py b/src/groups/views.py new file mode 100644 index 0000000..5504214 --- /dev/null +++ b/src/groups/views.py @@ -0,0 +1,9 @@ +from rest_framework import viewsets + +from . import serializers +from . import models + +class GroupViewSet(viewsets.ReadOnlyModelViewSet): + serializer_class = serializers.GroupSerializer + queryset = models.Group.objects.all() + \ No newline at end of file diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py index 6e651b7..d564e3d 100644 --- a/src/kszkepzes/settings/base.py +++ b/src/kszkepzes/settings/base.py @@ -48,6 +48,7 @@ INSTALLED_APPS = [ 'stats', 'news', 'document', + 'groups', 'drf_yasg', ] @@ -59,7 +60,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'common.middleware.CurrentUserMiddleware', + 'common.middleware.CurrentUserMiddleware' ] ROOT_URLCONF = 'kszkepzes.urls' diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py index 6708831..154ab83 100644 --- a/src/kszkepzes/urls.py +++ b/src/kszkepzes/urls.py @@ -32,6 +32,7 @@ urlpatterns = [ url(r'^api/v1/', include('account.urls')), url(r'^api/v1/', include('news.urls')), url(r'^api/v1/', include('document.urls')), + url(r'^api/v1/', include('groups.urls')), url(r'^api/v1/logout/$', auth_views.LogoutView.as_view(), name='logout'), ] -- GitLab