Skip to content
Snippets Groups Projects
Unverified Commit d83c8a05 authored by Chif Gergő's avatar Chif Gergő Committed by GitHub
Browse files

Merge pull request #3 from DevTeamSCH/news

News
parents c958fa90 0bc845ee
No related branches found
No related tags found
No related merge requests found
Showing with 134 additions and 1 deletion
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2018-01-25 17:17
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('homework', '0003_auto_20180124_1818'),
]
operations = [
migrations.AlterField(
model_name='solution',
name='created_by',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
...@@ -51,7 +51,7 @@ class Solution(models.Model): ...@@ -51,7 +51,7 @@ class Solution(models.Model):
task = models.ForeignKey(Task, related_name='task_solution', on_delete=models.CASCADE, ) task = models.ForeignKey(Task, related_name='task_solution', on_delete=models.CASCADE, )
# student = models.ForeignKey(account.models.Profile, related_name='student_solution', on_delete=models.CASCADE) # student = models.ForeignKey(account.models.Profile, related_name='student_solution', on_delete=models.CASCADE)
date = models.DateTimeField(auto_now_add=True, editable=False, ) date = models.DateTimeField(auto_now_add=True, editable=False, )
ready = models.BooleanField(default=False, ) #if(Soulution.date <= Task.deadline) ready = models.BooleanField(default=False, ) # if(Soulution.date <= Task.deadline)
accepted = models.BooleanField(default=False, ) accepted = models.BooleanField(default=False, )
files = models.FileField( files = models.FileField(
validators=[validators.FileExtensionValidator( validators=[validators.FileExtensionValidator(
......
...@@ -29,6 +29,7 @@ class IsAuthenticatedOrReadOnly(BasePermission): ...@@ -29,6 +29,7 @@ class IsAuthenticatedOrReadOnly(BasePermission):
class IsStaffOrReadOnlyForAuthenticated(BasePermission): class IsStaffOrReadOnlyForAuthenticated(BasePermission):
""" """
The request is authenticated as a staff, or is a read-only request for authenticated. The request is authenticated as a staff, or is a read-only request for authenticated.
""" """
......
...@@ -44,6 +44,7 @@ INSTALLED_APPS = [ ...@@ -44,6 +44,7 @@ INSTALLED_APPS = [
'homework', 'homework',
'account', 'account',
'stats', 'stats',
'news',
] ]
MIDDLEWARE = [ MIDDLEWARE = [
......
...@@ -7,4 +7,5 @@ urlpatterns = [ ...@@ -7,4 +7,5 @@ urlpatterns = [
url(r'^api/v1/homework/', include('homework.urls')), url(r'^api/v1/homework/', include('homework.urls')),
url(r'^api/v1/', include('stats.urls')), url(r'^api/v1/', include('stats.urls')),
url(r'^api/v1/', include('account.urls')), url(r'^api/v1/', include('account.urls')),
url(r'^api/v1/', include('news.urls')),
] ]
from django.contrib import admin
from .models import Article
admin.site.register(Article)
# Register your models here.
from django.apps import AppConfig
class NewsConfig(AppConfig):
name = 'news'
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-11-28 19:55
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('account', '0002_auto_20171114_2144'),
]
operations = [
migrations.CreateModel(
name='Article',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200)),
('text', models.TextField()),
('date', models.DateTimeField()),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='author', to='account.Profile')),
],
),
]
# -*- 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),
),
]
from django.db import models
from account.models import Profile
class Article(models.Model):
author = models.ForeignKey(Profile, related_name="author")
title = models.CharField(null=False, max_length=200)
text = models.TextField()
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
from rest_framework.permissions import BasePermission
from rest_framework.permissions import SAFE_METHODS
class IsStaffOrReadOnlyForAuthenticated(BasePermission):
def has_permission(self, request, view):
return (request.user.is_staff or
request.method in SAFE_METHODS and
request.user.is_authenticated
)
from news.models import Article
from rest_framework import serializers
class ArticleListSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = '__all__'
from rest_framework import routers
from news import views
router = routers.DefaultRouter(trailing_slash=False)
router.register(r'news', views.NewsViewSet)
urlpatterns = router.urls
from news.permissions import IsStaffOrReadOnlyForAuthenticated
from rest_framework import viewsets
from news.models import Article
from news.serializers import ArticleListSerializer
class NewsViewSet(viewsets.ModelViewSet):
serializer_class = ArticleListSerializer
permission_classes = [IsStaffOrReadOnlyForAuthenticated]
queryset = Article.objects.all()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment