feat: adds feedback_user to LearningUnit model
This commit is contained in:
parent
1e934c15b1
commit
780be68a58
|
|
@ -329,3 +329,25 @@ class CircleDocument(models.Model):
|
||||||
self.file.upload_finished_at = None
|
self.file.upload_finished_at = None
|
||||||
self.file.save()
|
self.file.save()
|
||||||
return super().delete(*args, **kwargs)
|
return super().delete(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: Model something like this:
|
||||||
|
# class LearningUnitCompletionFeedback(models.Model):
|
||||||
|
# assignment_user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
|
# feedback_user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
|
# feedback_submitted = models.BooleanField(default=False)
|
||||||
|
# learning_unit = models.ForeignKey(
|
||||||
|
# "learnpath.LearningUnit", on_delete=models.CASCADE
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# class CourseCompletionFeedback(models.Model):
|
||||||
|
# learning_unit_completion_feedback = models.ForeignKey(
|
||||||
|
# LearningUnitCompletionFeedback, on_delete=models.CASCADE
|
||||||
|
# )
|
||||||
|
# course_completion = models.ForeignKey(CourseCompletion, on_delete=models.CASCADE)
|
||||||
|
# feedback_status = models.CharField(
|
||||||
|
# max_length=255,
|
||||||
|
# choices=[(status, status.value) for status in CourseCompletionStatus],
|
||||||
|
# default=CourseCompletionStatus.UNKNOWN.value,
|
||||||
|
# )
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.2.20 on 2024-01-17 13:00
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('learnpath', '0012_auto_20231129_0827'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='learningunit',
|
||||||
|
name='feedback_user',
|
||||||
|
field=models.CharField(blank=True, choices=[('NO_FEEDBACK', 'NO_FEEDBACK'), ('MENTOR_FEEDBACK', 'MENTOR_FEEDBACK')], default='NO_FEEDBACK', max_length=255),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='learningcontentassignment',
|
||||||
|
name='assignment_type',
|
||||||
|
field=models.CharField(choices=[('PRAXIS_ASSIGNMENT', 'PRAXIS_ASSIGNMENT'), ('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION'), ('CONDITION_ACCEPTANCE', 'CONDITION_ACCEPTANCE'), ('EDONIQ_TEST', 'EDONIQ_TEST')], default='CASEWORK', max_length=50),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import re
|
import re
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
from wagtail.admin.panels import FieldPanel, PageChooserPanel
|
from wagtail.admin.panels import FieldPanel, PageChooserPanel, HelpPanel
|
||||||
from wagtail.fields import RichTextField, StreamField
|
from wagtail.fields import RichTextField, StreamField
|
||||||
from wagtail.models import Page
|
from wagtail.models import Page
|
||||||
|
|
||||||
|
|
@ -117,6 +118,13 @@ class Circle(CourseBasePage):
|
||||||
return f"{self.title}"
|
return f"{self.title}"
|
||||||
|
|
||||||
|
|
||||||
|
class LearningUnitPerformanceFeedbackType(Enum):
|
||||||
|
"""Defines how feedback on the performance criteria (n) of a learning unit are given."""
|
||||||
|
|
||||||
|
NO_FEEDBACK = "NO_FEEDBACK"
|
||||||
|
MENTOR_FEEDBACK = "MENTOR_FEEDBACK"
|
||||||
|
|
||||||
|
|
||||||
class LearningSequence(CourseBasePage):
|
class LearningSequence(CourseBasePage):
|
||||||
serialize_field_names = ["icon"]
|
serialize_field_names = ["icon"]
|
||||||
|
|
||||||
|
|
@ -169,10 +177,22 @@ class LearningUnit(CourseBasePage):
|
||||||
"course.CourseCategory", on_delete=models.SET_NULL, null=True, blank=True
|
"course.CourseCategory", on_delete=models.SET_NULL, null=True, blank=True
|
||||||
)
|
)
|
||||||
title_hidden = models.BooleanField(default=False)
|
title_hidden = models.BooleanField(default=False)
|
||||||
|
feedback_user = models.CharField(
|
||||||
|
max_length=255,
|
||||||
|
blank=True,
|
||||||
|
choices=[(tag.name, tag.name) for tag in LearningUnitPerformanceFeedbackType],
|
||||||
|
default=LearningUnitPerformanceFeedbackType.NO_FEEDBACK.name,
|
||||||
|
)
|
||||||
|
|
||||||
content_panels = Page.content_panels + [
|
content_panels = Page.content_panels + [
|
||||||
FieldPanel("course_category"),
|
FieldPanel("course_category"),
|
||||||
FieldPanel("title_hidden"),
|
FieldPanel("title_hidden"),
|
||||||
|
FieldPanel("feedback_user"),
|
||||||
|
HelpPanel(
|
||||||
|
content="👆 Feedback zur Selbsteinschätzung: Normalerweise <code>NO_FEEDBACK</code>, "
|
||||||
|
"ausser bei den Lerninhalten Selbsteinschätzungen, die eine Bewertung haben von einer "
|
||||||
|
"Lernbegleitung haben sollen (z.B. VV)."
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue