Format code

This commit is contained in:
Daniel Egger 2023-09-05 17:49:51 +02:00
parent 08edf98e2a
commit cce82b72ad
13 changed files with 146 additions and 66 deletions

View File

@ -1,5 +1,6 @@
import { graphql } from "@/gql";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const CoursePageFragment = graphql(`
fragment CoursePageFields on CoursePageInterface {
title

View File

@ -3,7 +3,8 @@ import * as log from "loglevel";
import type { CompetenceCertificate } from "@/types";
import CompetenceAssignmentRow from "@/pages/competence/CompetenceAssignmentRow.vue";
import { computed } from "vue";
import ItProgress, { StatusCount } from "@/components/ui/ItProgress.vue";
import type { StatusCount } from "@/components/ui/ItProgress.vue";
import ItProgress from "@/components/ui/ItProgress.vue";
log.debug("CompetenceCertificateComponent setup");
@ -23,7 +24,7 @@ const totalPointsEvaluatedAssignments = computed(() => {
const userPointsEvaluatedAssignments = computed(() => {
return props.competenceCertificate.assignments.reduce((acc, assignment) => {
if (assignment.completion?.completion_status === "EVALUATION_SUBMITTED") {
return acc + assignment.completion.evaluation_points;
return acc + (assignment.completion?.evaluation_points ?? 0);
}
return acc;
}, 0);
@ -70,6 +71,7 @@ const progressStatusCount = computed(() => {
<div
v-for="assignment in props.competenceCertificate.assignments"
:key="assignment.id"
class="bg-white px-8"
>
<CompetenceAssignmentRow :assignment="assignment"></CompetenceAssignmentRow>

View File

@ -2,7 +2,8 @@ import graphene
from vbv_lernwelt.assignment.graphql.types import (
AssignmentCompletionObjectType,
AssignmentObjectType, resolve_assignment_completion,
AssignmentObjectType,
resolve_assignment_completion,
)
from vbv_lernwelt.assignment.models import Assignment
from vbv_lernwelt.course.graphql.types import resolve_course_page
@ -34,6 +35,9 @@ class AssignmentQuery(object):
**kwargs,
):
return resolve_assignment_completion(
info, assignment_id, course_session_id, learning_content_page_id,
info,
assignment_id,
course_session_id,
learning_content_page_id,
assignment_user_id,
)

View File

@ -7,7 +7,7 @@ from vbv_lernwelt.assignment.models import Assignment, AssignmentCompletion
from vbv_lernwelt.core.graphql.types import JSONStreamField
from vbv_lernwelt.course.graphql.interfaces import CoursePageInterface
from vbv_lernwelt.course.models import CourseSession
from vbv_lernwelt.course.permissions import is_course_session_expert, has_course_access
from vbv_lernwelt.course.permissions import has_course_access, is_course_session_expert
from vbv_lernwelt.learnpath.graphql.types import LearningContentInterface
@ -68,7 +68,10 @@ class AssignmentObjectType(DjangoObjectType):
return self.find_attached_learning_content()
def resolve_completion(
self, info, course_session_id, learning_content_page_id=None,
self,
info,
course_session_id,
learning_content_page_id=None,
assignment_user_id=None,
):
if learning_content_page_id is None:
@ -94,9 +97,9 @@ def resolve_assignment_completion(
if assignment_user_id is None:
assignment_user_id = info.context.user.id
if str(assignment_user_id) == str(
info.context.user.id
) or is_course_session_expert(info.context.user, course_session_id):
if str(assignment_user_id) == str(info.context.user.id) or is_course_session_expert(
info.context.user, course_session_id
):
course_id = CourseSession.objects.get(id=course_session_id).course_id
if has_course_access(info.context.user, course_id):
if learning_content_page_id is None:

View File

@ -1,25 +1,42 @@
# Generated by Django 3.2.20 on 2023-09-01 09:12
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('competence', '0003_competencecertificate_competencecertificatelist_competencenavipage'),
('assignment', '0006_auto_20230823_1127'),
(
"competence",
"0003_competencecertificate_competencecertificatelist_competencenavipage",
),
("assignment", "0006_auto_20230823_1127"),
]
operations = [
migrations.AddField(
model_name='assignment',
name='competence_certificate',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='competence.competencecertificate'),
model_name="assignment",
name="competence_certificate",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="competence.competencecertificate",
),
),
migrations.AlterField(
model_name='assignment',
name='assignment_type',
field=models.CharField(choices=[('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION'), ('CONDITION_ACCEPTANCE', 'CONDITION_ACCEPTANCE'), ('EDONIQ_TEST', 'EDONIQ_TEST')], default='CASEWORK', max_length=50),
model_name="assignment",
name="assignment_type",
field=models.CharField(
choices=[
("CASEWORK", "CASEWORK"),
("PREP_ASSIGNMENT", "PREP_ASSIGNMENT"),
("REFLECTION", "REFLECTION"),
("CONDITION_ACCEPTANCE", "CONDITION_ACCEPTANCE"),
("EDONIQ_TEST", "EDONIQ_TEST"),
],
default="CASEWORK",
max_length=50,
),
),
]

View File

@ -1,12 +1,12 @@
import wagtail_factories
from vbv_lernwelt.competence.models import (
CompetenceCertificate,
CompetenceCertificateList,
CompetenceNaviPage,
CompetencePage,
CompetenceProfilePage,
PerformanceCriteria,
CompetenceCertificate,
CompetenceNaviPage,
CompetenceCertificateList,
)

View File

@ -1,8 +1,8 @@
import graphene
from vbv_lernwelt.competence.graphql.types import (
CompetenceCertificateObjectType,
CompetenceCertificateListObjectType,
CompetenceCertificateObjectType,
)
from vbv_lernwelt.competence.models import (
CompetenceCertificate,

View File

@ -1,45 +1,74 @@
# Generated by Django 3.2.20 on 2023-09-01 09:12
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wagtailcore', '0089_log_entry_data_json_null_to_object'),
('competence', '0002_performancecriteria_learning_unit'),
("wagtailcore", "0089_log_entry_data_json_null_to_object"),
("competence", "0002_performancecriteria_learning_unit"),
]
operations = [
migrations.CreateModel(
name='CompetenceCertificate',
name="CompetenceCertificate",
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
],
options={
'abstract': False,
"abstract": False,
},
bases=('wagtailcore.page',),
bases=("wagtailcore.page",),
),
migrations.CreateModel(
name='CompetenceCertificateList',
name="CompetenceCertificateList",
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
],
options={
'abstract': False,
"abstract": False,
},
bases=('wagtailcore.page',),
bases=("wagtailcore.page",),
),
migrations.CreateModel(
name='CompetenceNaviPage',
name="CompetenceNaviPage",
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
(
"page_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="wagtailcore.page",
),
),
],
options={
'abstract': False,
"abstract": False,
},
bases=('wagtailcore.page',),
bases=("wagtailcore.page",),
),
]

View File

@ -8,9 +8,9 @@ from vbv_lernwelt.core.constants import (
)
from vbv_lernwelt.core.models import User
from vbv_lernwelt.course.creators.test_course import (
create_test_assignment_submitted_data,
create_test_assignment_evaluation_data,
create_edoniq_test_result_data,
create_test_assignment_evaluation_data,
create_test_assignment_submitted_data,
)
from vbv_lernwelt.course.models import CourseCompletion, CourseSession
from vbv_lernwelt.notify.models import Notification

View File

@ -135,12 +135,15 @@ def check_rate_limit(request):
def cypress_reset_view(request):
if not settings.APP_ENVIRONMENT.startswith("prod"):
# Checking for the flags in the POST request
create_assignment_completion = request.data.get(
'create_assignment_completion') == 'true'
create_assignment_evaluation = request.data.get(
'create_assignment_evaluation') == 'true'
create_edoniq_test_results = request.data.get(
'create_edoniq_test_results') == 'true'
create_assignment_completion = (
request.data.get("create_assignment_completion") == "true"
)
create_assignment_evaluation = (
request.data.get("create_assignment_evaluation") == "true"
)
create_edoniq_test_results = (
request.data.get("create_edoniq_test_results") == "true"
)
# TODO: Handle the flags as needed. For example:
if create_assignment_completion:

View File

@ -18,17 +18,17 @@ from vbv_lernwelt.assignment.models import (
)
from vbv_lernwelt.assignment.services import update_assignment_completion
from vbv_lernwelt.assignment.tests.assignment_factories import (
AssignmentListPageFactory,
AssignmentFactory,
AssignmentListPageFactory,
EvaluationTaskBlockFactory,
)
from vbv_lernwelt.competence.factories import (
CompetenceCertificateFactory,
CompetenceCertificateListFactory,
CompetenceNaviPageFactory,
CompetencePageFactory,
CompetenceProfilePageFactory,
PerformanceCriteriaFactory,
CompetenceNaviPageFactory,
CompetenceCertificateListFactory,
CompetenceCertificateFactory,
)
from vbv_lernwelt.competence.models import CompetencePage
from vbv_lernwelt.core.constants import (

View File

@ -1,25 +1,38 @@
# Generated by Django 3.2.20 on 2023-09-01 09:12
from django.db import migrations, models
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('assignment', '0007_auto_20230901_1112'),
('learnpath', '0003_auto_20230810_0817'),
("assignment", "0007_auto_20230901_1112"),
("learnpath", "0003_auto_20230810_0817"),
]
operations = [
migrations.AddField(
model_name='learningcontentedoniqtest',
name='content_assignment',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='assignment.assignment'),
model_name="learningcontentedoniqtest",
name="content_assignment",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="assignment.assignment",
),
),
migrations.AlterField(
model_name='learningcontentassignment',
name='assignment_type',
field=models.CharField(choices=[('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION'), ('CONDITION_ACCEPTANCE', 'CONDITION_ACCEPTANCE'), ('EDONIQ_TEST', 'EDONIQ_TEST')], default='CASEWORK', max_length=50),
model_name="learningcontentassignment",
name="assignment_type",
field=models.CharField(
choices=[
("CASEWORK", "CASEWORK"),
("PREP_ASSIGNMENT", "PREP_ASSIGNMENT"),
("REFLECTION", "REFLECTION"),
("CONDITION_ACCEPTANCE", "CONDITION_ACCEPTANCE"),
("EDONIQ_TEST", "EDONIQ_TEST"),
],
default="CASEWORK",
max_length=50,
),
),
]

View File

@ -4,15 +4,23 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('notify', '0003_truncate_notifications'),
("notify", "0003_truncate_notifications"),
]
operations = [
migrations.AlterField(
model_name='notification',
name='notification_trigger',
field=models.CharField(choices=[('ATTENDANCE_COURSE_REMINDER', 'Attendance Course Reminder'), ('CASEWORK_SUBMITTED', 'Casework Submitted'), ('CASEWORK_EVALUATED', 'Casework Evaluated'), ('NEW_FEEDBACK', 'New Feedback')], default='', max_length=255),
model_name="notification",
name="notification_trigger",
field=models.CharField(
choices=[
("ATTENDANCE_COURSE_REMINDER", "Attendance Course Reminder"),
("CASEWORK_SUBMITTED", "Casework Submitted"),
("CASEWORK_EVALUATED", "Casework Evaluated"),
("NEW_FEEDBACK", "New Feedback"),
],
default="",
max_length=255,
),
),
]