From 1c602ae89b93e6116ac6464a5db13113702a2593 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bodor.mate@kszk.bme.hu>
Date: Mon, 14 Jan 2019 17:01:00 +0100
Subject: [PATCH] Add created_by field to serializer

---
 .../migrations/0004_auto_20190114_1641.py     | 20 +++++++++++++++
 .../migrations/0005_auto_20190114_1658.py     | 25 +++++++++++++++++++
 src/homework/models.py                        | 21 ++++++++++------
 src/homework/serializers.py                   |  6 -----
 4 files changed, 59 insertions(+), 13 deletions(-)
 create mode 100644 src/homework/migrations/0004_auto_20190114_1641.py
 create mode 100644 src/homework/migrations/0005_auto_20190114_1658.py

diff --git a/src/homework/migrations/0004_auto_20190114_1641.py b/src/homework/migrations/0004_auto_20190114_1641.py
new file mode 100644
index 0000000..a8c1133
--- /dev/null
+++ b/src/homework/migrations/0004_auto_20190114_1641.py
@@ -0,0 +1,20 @@
+# Generated by Django 2.0.1 on 2019-01-14 15:41
+
+import common.middleware
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0003_auto_20190113_1239'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='solution',
+            name='created_by',
+            field=models.ForeignKey(default=common.middleware.CurrentUserMiddleware.get_current_user_profile, on_delete=django.db.models.deletion.DO_NOTHING, related_name='solution', to='account.Profile'),
+        ),
+    ]
diff --git a/src/homework/migrations/0005_auto_20190114_1658.py b/src/homework/migrations/0005_auto_20190114_1658.py
new file mode 100644
index 0000000..720bbc2
--- /dev/null
+++ b/src/homework/migrations/0005_auto_20190114_1658.py
@@ -0,0 +1,25 @@
+# Generated by Django 2.0.1 on 2019-01-14 15:58
+
+import common.middleware
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('homework', '0004_auto_20190114_1641'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='solution',
+            name='task',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='solutions', to='homework.Task'),
+        ),
+        migrations.AlterField(
+            model_name='task',
+            name='created_by',
+            field=models.ForeignKey(default=common.middleware.CurrentUserMiddleware.get_current_user_profile, on_delete=django.db.models.deletion.DO_NOTHING, related_name='tasks', to='account.Profile'),
+        ),
+    ]
diff --git a/src/homework/models.py b/src/homework/models.py
index 0e5ec4e..2f3e785 100755
--- a/src/homework/models.py
+++ b/src/homework/models.py
@@ -1,13 +1,15 @@
 from django.db import models
-from django.core import validators
-
-from common.validators import FileSizeValidator
+from common.middleware import CurrentUserMiddleware
 from account.models import Profile
 
 
-
 class Task(models.Model):
-    created_by = models.ForeignKey(Profile, on_delete=models.DO_NOTHING)
+    created_by = models.ForeignKey(
+        Profile,
+        on_delete=models.DO_NOTHING,
+        related_name='tasks',
+        default=CurrentUserMiddleware.get_current_user_profile,
+    )
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
     title = models.CharField(max_length=150)
@@ -19,8 +21,13 @@ class Task(models.Model):
 
 
 class Solution(models.Model):
-    task = models.ForeignKey(Task, related_name='solution', on_delete=models.CASCADE)
-    created_by = models.ForeignKey(Profile, related_name='solution', on_delete=models.DO_NOTHING)
+    task = models.ForeignKey(Task, related_name='solutions', on_delete=models.CASCADE)
+    created_by = models.ForeignKey(
+        Profile,
+        related_name='solution',
+        on_delete=models.DO_NOTHING,
+        default=CurrentUserMiddleware.get_current_user_profile,
+    )
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
     note = models.TextField()
diff --git a/src/homework/serializers.py b/src/homework/serializers.py
index d2615a1..595260d 100755
--- a/src/homework/serializers.py
+++ b/src/homework/serializers.py
@@ -6,8 +6,6 @@ from . import models
 
 
 class TaskSerializer(serializers.ModelSerializer):
-    created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
-
     class Meta:
         model = models.Task
         read_only_fields = ('created_by', 'created_at', 'updated_at')
@@ -20,10 +18,6 @@ class TaskSerializer(serializers.ModelSerializer):
 
 
 class SolutionSerializer(serializers.ModelSerializer):
-    created_at = serializers.DateTimeField(read_only=True)
-    updated_at = serializers.DateTimeField(read_only=True)
-    created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
-
     class Meta:
         model = models.Solution
         read_only_fields = ('created_by', 'created_at', 'updated_at', 'ready', 'files')
-- 
GitLab