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 0000000000000000000000000000000000000000..a8c1133e37545849ab15d91ed7b97957d4dcb334 --- /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 0000000000000000000000000000000000000000..720bbc23297729f88824b0fe99a5385a3ad55ac7 --- /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 0e5ec4eecf89840db4446de752faf0c8b4cbb66f..2f3e785df82722652e7d850e4db7e8cfdd38f0df 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 d2615a1ee9c8fb3a6f0a39df82b85991f0899d17..595260de6015813f1814317efe9f08b0438e996b 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')