diff --git a/src/homework/__init__.py b/src/homework/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/homework/admin.py b/src/homework/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/src/homework/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/src/homework/apps.py b/src/homework/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..98901a15dfa44243cd9894dc15652b9634c738fd --- /dev/null +++ b/src/homework/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class HomeworkConfig(AppConfig): + name = 'homework' diff --git a/src/homework/migrations/0001_initial.py b/src/homework/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..524ab9f6d3f30587c7cc28b3bcd15448db8b6077 --- /dev/null +++ b/src/homework/migrations/0001_initial.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-11-11 14:39 +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): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Solution', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('date', models.DateTimeField()), + ('ready', models.BooleanField()), + ('files', models.FileField(upload_to='')), + ], + ), + migrations.CreateModel( + name='Student', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('homework', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='homework.Solution')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='Task', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=150)), + ('date', models.DateTimeField()), + ('deadline', models.DateTimeField()), + ('text', models.TextField()), + ('files', models.FileField(upload_to='')), + ('author', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='solution', + name='task', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='homework.Task'), + ), + ] diff --git a/src/homework/migrations/__init__.py b/src/homework/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/homework/models.py b/src/homework/models.py new file mode 100644 index 0000000000000000000000000000000000000000..a5192a8b87bb9e57fae6d7cf35d8e08b208f3358 --- /dev/null +++ b/src/homework/models.py @@ -0,0 +1,24 @@ +from django.db import models +from django.contrib.auth.models import User + + +class Task(models.Model): + title = models.CharField(max_length=150) + date = models.DateTimeField() + deadline = models.DateTimeField() + text = models.TextField() + author = models.OneToOneField(User) + files = models.FileField() + + +# NormĂĄlisabb angol nevet adni ĂŠr!! +class Solution(models.Model): + task = models.ForeignKey(Task, on_delete=models.CASCADE) + date = models.DateTimeField() + ready = models.BooleanField() + files = models.FileField() + + +class Student(models.Model): + user = models.OneToOneField(User) + homework = models.ForeignKey(Solution, on_delete=models.CASCADE) diff --git a/src/homework/serializers.py b/src/homework/serializers.py new file mode 100644 index 0000000000000000000000000000000000000000..3e2500d68884b532f7624310bab1f54bf5615140 --- /dev/null +++ b/src/homework/serializers.py @@ -0,0 +1,20 @@ +from rest_framework import serializers +from . import models + + +class TaskSerializer(serializers.ModelSerializer): + class Meta: + model = models.Task + fields = '__all__' + + +class SolutionSerializer(serializers.ModelSerializer): + class Meta: + model = models.Solution + fields = '__all__' + + +class StudentSerializer(serializers.ModelSerializer): + class Meta: + model = models.Student + fields = '__all__' diff --git a/src/homework/tests.py b/src/homework/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/src/homework/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/homework/urls.py b/src/homework/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..1fe81c80ffd12d0934235950a68785ae9b67bcfb --- /dev/null +++ b/src/homework/urls.py @@ -0,0 +1,10 @@ +from rest_framework import routers +from . import views + +router = routers.DefaultRouter() +router.register(r'tasks', views.TasksViewSet) +router.register(r'solutions', views.SolutionViewSet) +router.register(r'students', views.StudentViewSet) + +app_name = 'homework' +urlpatterns = router.urls diff --git a/src/homework/views.py b/src/homework/views.py new file mode 100644 index 0000000000000000000000000000000000000000..d3429a7528e1c87a33309a7d4e1935a2d12d2faa --- /dev/null +++ b/src/homework/views.py @@ -0,0 +1,19 @@ +from rest_framework import viewsets + +from . import serializers +from . import models + + +class TasksViewSet(viewsets.ModelViewSet): + serializer_class = serializers.TaskSerializer + queryset = models.Task.objects.all() + + +class SolutionViewSet(viewsets.ModelViewSet): + serializer_class = serializers.SolutionSerializer + queryset = models.Solution.objects.all() + + +class StudentViewSet(viewsets.ModelViewSet): + serializer_class = serializers.StudentSerializer + queryset = models.Student.objects.all() diff --git a/src/kszkepzes/settings.py b/src/kszkepzes/settings.py index 98e41eb55d708a004af6ab85ac3810c91d0f8b61..3128c9d12e655bf39779c869a6b7dbd8f10f8a8d 100644 --- a/src/kszkepzes/settings.py +++ b/src/kszkepzes/settings.py @@ -41,6 +41,7 @@ INSTALLED_APPS = [ 'rest_framework', 'social_django', 'authsch', + 'homework', ] MIDDLEWARE = [ diff --git a/src/kszkepzes/urls.py b/src/kszkepzes/urls.py index 5a143373854dc913626f7e7bfb539826c5cbe465..16da3fbcb257357a307f9ec7a4b8ef3b52688453 100644 --- a/src/kszkepzes/urls.py +++ b/src/kszkepzes/urls.py @@ -19,4 +19,5 @@ from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url('', include('social_django.urls', namespace='social')), + url(r'^api/v1/homework/', include('homework.urls')), ]