Protect some objects from deletion

This commit is contained in:
Ramon Wenger 2021-02-11 17:26:50 +01:00
parent 9f81082f12
commit dbee7889b7
3 changed files with 28 additions and 3 deletions

View File

@ -56,7 +56,6 @@ class AssignmentNode(DjangoObjectType):
def resolve_submission(self, info, **kwargs):
return self.submissions.filter(student=info.context.user).first() # returns None if it doesn't exist yet
#todo: restrict for students
def resolve_submissions(self, info, **kwargs):
user = info.context.user
if user.has_perm('users.can_manage_school_class_content'):

View File

@ -0,0 +1,25 @@
# Generated by Django 2.2.17 on 2021-02-10 11:09
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('objectives', '0011_auto_20210121_1857'),
]
operations = [
migrations.AlterField(
model_name='objective',
name='owner',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='objectivegroup',
name='owner',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL),
),
]

View File

@ -24,7 +24,7 @@ class ObjectiveGroup(models.Model):
title = models.CharField('title', blank=True, null=False, max_length=255, choices=TITLE_CHOICES, default=LANGUAGE_COMMUNICATION)
module = models.ForeignKey(Module, blank=False, null=False, on_delete=models.CASCADE, related_name='objective_groups')
# a user can define her own objectives, hence this optional param
owner = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.CASCADE)
owner = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.PROTECT)
hidden_for = models.ManyToManyField(SchoolClass, related_name='hidden_objective_groups', blank=True)
visible_for = models.ManyToManyField(SchoolClass, related_name='visible_objective_groups', blank=True)
@ -42,7 +42,7 @@ class Objective(models.Model):
text = models.CharField('text', blank=True, null=False, max_length=255)
group = models.ForeignKey(ObjectiveGroup, blank=False, null=False, on_delete=models.CASCADE,
related_name='objectives')
owner = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.CASCADE)
owner = models.ForeignKey(get_user_model(), blank=True, null=True, on_delete=models.PROTECT)
hidden_for = models.ManyToManyField(SchoolClass, related_name='hidden_objectives', blank=True)
visible_for = models.ManyToManyField(SchoolClass, related_name='visible_objectives', blank=True)
order = models.IntegerField(null=True, blank=True)
@ -51,6 +51,7 @@ class Objective(models.Model):
return 'Objective {}-{}'.format(self.id, self.text)
# todo: delete
class ObjectiveProgressStatus(models.Model):
class Meta:
verbose_name = 'Lernzielstatus'