From 890be81d5a8944056db66701bfb4a0ae1f1fc15a Mon Sep 17 00:00:00 2001
From: Chif Gergo <chifgeri97@gmail.com>
Date: Fri, 22 Dec 2017 14:12:38 +0100
Subject: [PATCH] Veiws and urls added to news

---
 src/kszkepzes/settings.py                     |  1 +
 src/kszkepzes/urls.py                         |  2 +-
 .../migrations/0002_auto_20171220_1852.py     | 20 +++++++++++++++++++
 src/news/serializers.py                       | 11 ++++++++++
 src/news/urls.py                              | 12 +++++++++++
 src/news/views.py                             | 19 +++++++++++++++---
 6 files changed, 61 insertions(+), 4 deletions(-)
 create mode 100644 src/news/migrations/0002_auto_20171220_1852.py

diff --git a/src/kszkepzes/settings.py b/src/kszkepzes/settings.py
index d69a2b4..e40e7e8 100644
--- a/src/kszkepzes/settings.py
+++ b/src/kszkepzes/settings.py
@@ -43,6 +43,7 @@ INSTALLED_APPS = [
     'authsch',
     'account',
     'stats',
+    'news',
 ]
 
 MIDDLEWARE = [
diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py
index 7d26d9b..8c50beb 100644
--- a/src/kszkepzes/urls.py
+++ b/src/kszkepzes/urls.py
@@ -20,5 +20,5 @@ urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url('', include('social_django.urls', namespace='social')),
     url(r'^api/v1/', include('stats.urls')),
-
+    url(r'^api/v1/', include('news.urls')),
 ]
diff --git a/src/news/migrations/0002_auto_20171220_1852.py b/src/news/migrations/0002_auto_20171220_1852.py
new file mode 100644
index 0000000..82274a5
--- /dev/null
+++ b/src/news/migrations/0002_auto_20171220_1852.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.5 on 2017-12-20 17:52
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('news', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='article',
+            name='date',
+            field=models.DateTimeField(auto_now_add=True),
+        ),
+    ]
diff --git a/src/news/serializers.py b/src/news/serializers.py
index be9febe..4aa15a1 100644
--- a/src/news/serializers.py
+++ b/src/news/serializers.py
@@ -9,3 +9,14 @@ class ArticleListSerializer(serializers.ModelSerializer):
             'author',
             'title',
             ]
+
+
+class ArticleDetailSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = Article
+        fields = [
+            'author',
+            'title',
+            'text',
+            'date',
+            ]
diff --git a/src/news/urls.py b/src/news/urls.py
index e69de29..5ac1acb 100644
--- a/src/news/urls.py
+++ b/src/news/urls.py
@@ -0,0 +1,12 @@
+from rest_framework import routers
+from django.conf.urls import url
+from news.views import NewsListView, NewsDetailView, NewsUpdateView
+
+router = routers.DefaultRouter()
+urlpatterns = [
+    url(r'^news/$', NewsListView.as_view()),
+    url(r'^news/(?P<pk>\d+)/$', NewsDetailView.as_view()),
+    url(r'^news/edit/(?P<pk>\d+)/$', NewsUpdateView.as_view()),
+]
+
+urlpatterns += router.urls
diff --git a/src/news/views.py b/src/news/views.py
index c132c70..db05e3b 100644
--- a/src/news/views.py
+++ b/src/news/views.py
@@ -1,8 +1,21 @@
+from rest_framework.permissions import IsAdminUser, IsAuthenticated
 from rest_framework import generics
-from models import Article
-from news.serializer import ArticleListSerializer
+from news.models import Article
+from news.serializers import ArticleListSerializer, ArticleDetailSerializer
 
 
 class NewsListView(generics.ListAPIView):
-    qureryset = Article.objects.all()
+    queryset = Article.objects.all()
     serializer_class = ArticleListSerializer
+
+
+class NewsDetailView(generics.RetrieveAPIView):
+    queryset = Article.objects.all()
+    serializer_class = ArticleDetailSerializer
+    permission_classes = [IsAuthenticated]
+
+
+class NewsUpdateView(generics.RetrieveUpdateAPIView):
+    queryset = Article.objects.all()
+    serializer_class = ArticleDetailSerializer
+    permission_classes = [IsAdminUser]
-- 
GitLab