From b02675791f51ca012372f13bd6a13bdb5b194218 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bmate711@gmail.com>
Date: Sat, 11 Nov 2017 15:47:46 +0100
Subject: [PATCH] autsch

---
 src/homework/__init__.py                |  0
 src/homework/admin.py                   |  3 ++
 src/homework/apps.py                    |  5 +++
 src/homework/migrations/0001_initial.py | 53 +++++++++++++++++++++++++
 src/homework/migrations/__init__.py     |  0
 src/homework/models.py                  | 24 +++++++++++
 src/homework/serializers.py             | 20 ++++++++++
 src/homework/tests.py                   |  3 ++
 src/homework/urls.py                    | 10 +++++
 src/homework/views.py                   | 19 +++++++++
 src/kszkepzes/settings.py               |  1 +
 src/kszkepzes/urls.py                   |  1 +
 12 files changed, 139 insertions(+)
 create mode 100644 src/homework/__init__.py
 create mode 100644 src/homework/admin.py
 create mode 100644 src/homework/apps.py
 create mode 100644 src/homework/migrations/0001_initial.py
 create mode 100644 src/homework/migrations/__init__.py
 create mode 100644 src/homework/models.py
 create mode 100644 src/homework/serializers.py
 create mode 100644 src/homework/tests.py
 create mode 100644 src/homework/urls.py
 create mode 100644 src/homework/views.py

diff --git a/src/homework/__init__.py b/src/homework/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/homework/admin.py b/src/homework/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /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 0000000..98901a1
--- /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 0000000..524ab9f
--- /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 0000000..e69de29
diff --git a/src/homework/models.py b/src/homework/models.py
new file mode 100644
index 0000000..a5192a8
--- /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 0000000..3e2500d
--- /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 0000000..7ce503c
--- /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 0000000..1fe81c8
--- /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 0000000..d3429a7
--- /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 98e41eb..3128c9d 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 5a14337..16da3fb 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')),
 ]
-- 
GitLab