diff --git a/src/groups/__init__.py b/src/groups/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/groups/admin.py b/src/groups/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8eefe1fca67e802c1a591c1705104a3bc34f23fc --- /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 0000000000000000000000000000000000000000..e6984a81f64b2c3bf2ebae54e2d9501333bafa38 --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/groups/models.py b/src/groups/models.py new file mode 100644 index 0000000000000000000000000000000000000000..88a35cf5ebf1ed80ea968b1e9259dee34df19354 --- /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 0000000000000000000000000000000000000000..5c1190901e9f73653428aadd07e3a41b7eacbace --- /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 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /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 0000000000000000000000000000000000000000..646653bfd576f26682a903eb79bd870b894cc449 --- /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 0000000000000000000000000000000000000000..5504214f8fcb0e82148537bd39ed3c51d30dfcd7 --- /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 6e651b7376abf8c9c2f3d6154ac2a92732222198..d564e3dee8ad1ad214bc5863f4860746d92d5f6b 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 67088315709b743e661111ea6affc543565cede8..154ab83d88494a0ebff41d1c574e006ef6f51c70 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'), ]