Fix cypress tests
This commit is contained in:
parent
726d5dc9bd
commit
d1907182a3
|
|
@ -54,7 +54,7 @@ async function startEvaluation() {
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="my-4">
|
<p class="my-4">
|
||||||
Die Gesamtpunktzahl und die daruas resultierende Note wird auf Grund des
|
Die Gesamtpunktzahl und die daraus resultierende Note wird auf Grund des
|
||||||
hinterlegeten Beurteilungsinstrument berechnet.
|
hinterlegeten Beurteilungsinstrument berechnet.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,9 @@ export function userAssignmentPoints(
|
||||||
});
|
});
|
||||||
|
|
||||||
return sum(
|
return sum(
|
||||||
|
// transform the object of { [expert_id]: { expert_data: { points } } } to an array
|
||||||
|
// of [ [expert_id, { expert_data: { points } }], ... ] so that we can easily sum
|
||||||
|
// the points of the user
|
||||||
Object.entries(pick(assignmentCompletion.completion_data, evaluationTaskIds)).map(
|
Object.entries(pick(assignmentCompletion.completion_data, evaluationTaskIds)).map(
|
||||||
(entry) => {
|
(entry) => {
|
||||||
return entry[1]?.expert_data?.points ?? 0;
|
return entry[1]?.expert_data?.points ?? 0;
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,12 @@
|
||||||
import { login } from "./helpers";
|
import { login } from "./helpers";
|
||||||
|
|
||||||
const navigateToAssignment = () => {
|
describe("student test", () => {
|
||||||
cy.visit(
|
|
||||||
"/course/überbetriebliche-kurse/learn/fahrzeug/überprüfen-einer-motorfahrzeug-versicherungspolice"
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
describe("assignment completion", () => {
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.manageCommand("cypress_reset");
|
cy.manageCommand("cypress_reset");
|
||||||
login("admin", "test");
|
login("test-student1@example.com", "test");
|
||||||
navigateToAssignment();
|
cy.visit(
|
||||||
|
"/course/test-lehrgang/learn/fahrzeug/überprüfen-einer-motorfahrzeug-versicherungspolice"
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("can open assignment", () => {
|
it("can open assignment", () => {
|
||||||
|
|
@ -46,10 +42,7 @@ describe("assignment completion", () => {
|
||||||
);
|
);
|
||||||
// Click confirmation
|
// Click confirmation
|
||||||
cy.get('[data-cy="it-checkbox-confirmation-1"]').click({ force: true });
|
cy.get('[data-cy="it-checkbox-confirmation-1"]').click({ force: true });
|
||||||
cy.wait(250);
|
|
||||||
cy.reload();
|
cy.reload();
|
||||||
// 1 Step forward
|
|
||||||
cy.learningContentMultiLayoutNextStep();
|
|
||||||
cy.get('[data-cy="it-checkbox-confirmation-1"]').should("be.checked");
|
cy.get('[data-cy="it-checkbox-confirmation-1"]').should("be.checked");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -64,12 +57,10 @@ describe("assignment completion", () => {
|
||||||
cy.get('[data-cy="it-textarea-user-text-input-1"]')
|
cy.get('[data-cy="it-textarea-user-text-input-1"]')
|
||||||
.clear()
|
.clear()
|
||||||
.type("Hallovelo");
|
.type("Hallovelo");
|
||||||
|
// wait because of input debounce
|
||||||
cy.wait(550);
|
cy.wait(550);
|
||||||
cy.reload();
|
cy.reload();
|
||||||
|
|
||||||
// 2 Step forward
|
|
||||||
cy.learningContentMultiLayoutNextStep();
|
|
||||||
cy.learningContentMultiLayoutNextStep();
|
|
||||||
cy.get('[data-cy="it-textarea-user-text-input-1"]').should(
|
cy.get('[data-cy="it-textarea-user-text-input-1"]').should(
|
||||||
"have.value",
|
"have.value",
|
||||||
"Hallovelo"
|
"Hallovelo"
|
||||||
|
|
@ -456,6 +456,8 @@ def create_uk_assignments(course_id=COURSE_UK):
|
||||||
|
|
||||||
assignment.save()
|
assignment.save()
|
||||||
|
|
||||||
|
return assignment
|
||||||
|
|
||||||
|
|
||||||
def create_test_assignment(course_id=COURSE_TEST_ID):
|
def create_test_assignment(course_id=COURSE_TEST_ID):
|
||||||
course_page = CoursePage.objects.get(course_id=course_id)
|
course_page = CoursePage.objects.get(course_id=course_id)
|
||||||
|
|
@ -494,6 +496,185 @@ def create_test_assignment(course_id=COURSE_TEST_ID):
|
||||||
evaluation_description="Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsintrument bewertet.",
|
evaluation_description="Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsintrument bewertet.",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
assignment.evaluation_tasks = []
|
||||||
|
assignment.evaluation_tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
EvaluationTaskBlockFactory(
|
||||||
|
title="Ausgangslage des Auftrags",
|
||||||
|
description=RichText(
|
||||||
|
"Beschreibt der/die Lernende die Ausgangslage des Auftrags vollständig?"
|
||||||
|
),
|
||||||
|
max_points=6,
|
||||||
|
sub_tasks=ListValue(
|
||||||
|
ListBlock(EvaluationSubTaskBlock()),
|
||||||
|
values=[
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Ausgangslage des Auftrag ist vollständig beschrieben.",
|
||||||
|
description=RichText(
|
||||||
|
replace_whitespace(
|
||||||
|
"""
|
||||||
|
<ul>
|
||||||
|
<li>Worum geht es? Was ist die Aufgabe?</li>
|
||||||
|
<li>Sind das Kundenprofil und die Kundenbeziehung vollständig und nachvollziehbar dargestellt?</li>
|
||||||
|
<li>Ist das Alter des Fahrzeugs dokumentiert?</li>
|
||||||
|
<li>Welche Ressourcen stehen zur Verfügung?</li>
|
||||||
|
</ul>
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
),
|
||||||
|
points=6,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Ausgangslage ist grösstenteils vollständig beschrieben.",
|
||||||
|
points=4,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Ausgangslage ist unvollständig - nur 2 Punkte wurden beschrieben.",
|
||||||
|
points=2,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Ausgangslage des Auftrag ist unvollständig - es fehlen mehr als 2 Punkte in der Beschreibung.",
|
||||||
|
points=0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
assignment.evaluation_tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
EvaluationTaskBlockFactory(
|
||||||
|
title="Inhaltsanalyse und Struktur",
|
||||||
|
max_points=6,
|
||||||
|
description=RichText(
|
||||||
|
"Sind die Deckungen der Police vollständig und nachvollziehbar dokumentiert?"
|
||||||
|
),
|
||||||
|
sub_tasks=ListValue(
|
||||||
|
ListBlock(EvaluationSubTaskBlock()),
|
||||||
|
values=[
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Analyse beinhaltet alle in der Police vorhandenen Deckungen und ist logisch aufgebaut.",
|
||||||
|
points=6,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Analyse beinhaltet die meisten vorhandenen Deckungen in der Police und ist grösstenteils logisch aufgebaut.",
|
||||||
|
points=4,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Analyse ist unvollständig (es fehlen mehr als 3 Deckungen) und der rote Faden ist nicht erkennbar.",
|
||||||
|
points=2,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Analyse ist insgesamt nicht nachvollziehbar und es fehlen einige Deckungen.",
|
||||||
|
points=0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
assignment.evaluation_tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
EvaluationTaskBlockFactory(
|
||||||
|
title="Sinnvolle Empfehlungen",
|
||||||
|
max_points=6,
|
||||||
|
description=RichText(
|
||||||
|
"Leitet die lernende Person sinnvolle und geeignete Empfehlungen ab?"
|
||||||
|
),
|
||||||
|
sub_tasks=ListValue(
|
||||||
|
ListBlock(EvaluationSubTaskBlock()),
|
||||||
|
values=[
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Empfehlungen sind durchgängig sinnvoll und nachvollziehbar begründet.",
|
||||||
|
points=6,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Empfehlungen sind grösstenteils sinnvoll und nachvollziehbar begründet.",
|
||||||
|
points=4,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Empfehlungen sind wenig sinnvoll und unvollständig begründet.",
|
||||||
|
points=2,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Empfehlungen sind weder sinnvoll nch nachvollziehbar begründet.",
|
||||||
|
points=0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
assignment.evaluation_tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
EvaluationTaskBlockFactory(
|
||||||
|
title="Qualität der Reflexion",
|
||||||
|
max_points=3,
|
||||||
|
description=RichText(
|
||||||
|
"Reflektiert die lernende Person die Durchführung der geleiteten Fallarbeit?"
|
||||||
|
),
|
||||||
|
sub_tasks=ListValue(
|
||||||
|
ListBlock(EvaluationSubTaskBlock()),
|
||||||
|
values=[
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst nachvollziehbare positive wie negative Aspekte.",
|
||||||
|
points=3,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst grösstenteils nachvollziehbare positive wie negative Aspekte.",
|
||||||
|
points=2,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Reflexion ist unvollständig.",
|
||||||
|
points=1,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Reflexion bezieht sich nicht auf die geleitete Fallarbeit.",
|
||||||
|
points=0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
assignment.evaluation_tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
EvaluationTaskBlockFactory(
|
||||||
|
title="Eignung der Learnings",
|
||||||
|
max_points=3,
|
||||||
|
description=RichText(
|
||||||
|
"Leitet die lernende Person geeignete Learnings aus der Reflexion ab?"
|
||||||
|
),
|
||||||
|
sub_tasks=ListValue(
|
||||||
|
ListBlock(EvaluationSubTaskBlock()),
|
||||||
|
values=[
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Learnings beziehen sich auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
||||||
|
points=3,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Learnings beziehen sich grösstenteils auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
||||||
|
points=2,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Learnings beziehen sich teilweise auf die geleitete Fallarbeit und sind inhaltlich wenig sinnvoll.",
|
||||||
|
points=1,
|
||||||
|
),
|
||||||
|
EvaluationSubTaskBlockFactory(
|
||||||
|
title="Die Learnings beziehen sich nicht auf die geleitete Fallarbeit.",
|
||||||
|
points=0,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
assignment.tasks = []
|
assignment.tasks = []
|
||||||
assignment.tasks.append(
|
assignment.tasks.append(
|
||||||
(
|
(
|
||||||
|
|
@ -501,14 +682,16 @@ def create_test_assignment(course_id=COURSE_TEST_ID):
|
||||||
TaskBlockFactory(
|
TaskBlockFactory(
|
||||||
title="Teilaufgabe 1: Beispiel einer Versicherungspolice finden",
|
title="Teilaufgabe 1: Beispiel einer Versicherungspolice finden",
|
||||||
# it is hard to create a StreamValue programmatically, we have to
|
# it is hard to create a StreamValue programmatically, we have to
|
||||||
# create a `StreamValue` manually. Ask the Daniel and/or Ramon
|
# create a `StreamValue` manually. Ask Daniel and/or Ramon
|
||||||
content=StreamValue(
|
content=StreamValue(
|
||||||
TaskContentStreamBlock(),
|
TaskContentStreamBlock(),
|
||||||
stream_data=[
|
stream_data=[
|
||||||
(
|
(
|
||||||
"explanation",
|
"explanation",
|
||||||
ExplanationBlockFactory(
|
ExplanationBlockFactory(
|
||||||
text=RichText("Dies ist ein Beispieltext.")
|
text=RichText(
|
||||||
|
"Bitte jemand aus deiner Familie oder deinem Freundeskreis darum, dir seine/ihre Motorfahrzeugversicherungspolice zur Verfügung zu stellen."
|
||||||
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
|
@ -710,185 +893,6 @@ def create_test_assignment(course_id=COURSE_TEST_ID):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
assignment.evaluation_tasks = []
|
|
||||||
assignment.evaluation_tasks.append(
|
|
||||||
(
|
|
||||||
"task",
|
|
||||||
EvaluationTaskBlockFactory(
|
|
||||||
title="Ausgangslage des Auftrags",
|
|
||||||
description=RichText(
|
|
||||||
"Beschreibt der/die Lernende die Ausgangslage des Auftrags vollständig?"
|
|
||||||
),
|
|
||||||
max_points=6,
|
|
||||||
sub_tasks=ListValue(
|
|
||||||
ListBlock(EvaluationSubTaskBlock()),
|
|
||||||
values=[
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Ausgangslage des Auftrag ist vollständig beschrieben.",
|
|
||||||
description=RichText(
|
|
||||||
replace_whitespace(
|
|
||||||
"""
|
|
||||||
<ul>
|
|
||||||
<li>Worum geht es? Was ist die Aufgabe?</li>
|
|
||||||
<li>Sind das Kundenprofil und die Kundenbeziehung vollständig und nachvollziehbar dargestellt?</li>
|
|
||||||
<li>Ist das Alter des Fahrzeugs dokumentiert?</li>
|
|
||||||
<li>Welche Ressourcen stehen zur Verfügung?</li>
|
|
||||||
</ul>
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
),
|
|
||||||
points=6,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Ausgangslage ist grösstenteils vollständig beschrieben.",
|
|
||||||
points=4,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Ausgangslage ist unvollständig - nur 2 Punkte wurden beschrieben.",
|
|
||||||
points=2,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Ausgangslage des Auftrag ist unvollständig - es fehlen mehr als 2 Punkte in der Beschreibung.",
|
|
||||||
points=0,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
assignment.evaluation_tasks.append(
|
|
||||||
(
|
|
||||||
"task",
|
|
||||||
EvaluationTaskBlockFactory(
|
|
||||||
title="Inhaltsanalyse und Struktur",
|
|
||||||
max_points=6,
|
|
||||||
description=RichText(
|
|
||||||
"Sind die Deckungen der Police vollständig und nachvollziehbar dokumentiert?"
|
|
||||||
),
|
|
||||||
sub_tasks=ListValue(
|
|
||||||
ListBlock(EvaluationSubTaskBlock()),
|
|
||||||
values=[
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Analyse beinhaltet alle in der Police vorhandenen Deckungen und ist logisch aufgebaut.",
|
|
||||||
points=6,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Analyse beinhaltet die meisten vorhandenen Deckungen in der Police und ist grösstenteils logisch aufgebaut.",
|
|
||||||
points=4,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Analyse ist unvollständig (es fehlen mehr als 3 Deckungen) und der rote Faden ist nicht erkennbar.",
|
|
||||||
points=2,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Analyse ist insgesamt nicht nachvollziehbar und es fehlen einige Deckungen.",
|
|
||||||
points=0,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
assignment.evaluation_tasks.append(
|
|
||||||
(
|
|
||||||
"task",
|
|
||||||
EvaluationTaskBlockFactory(
|
|
||||||
title="Sinnvolle Empfehlungen",
|
|
||||||
max_points=6,
|
|
||||||
description=RichText(
|
|
||||||
"Leitet die lernende Person sinnvolle und geeignete Empfehlungen ab?"
|
|
||||||
),
|
|
||||||
sub_tasks=ListValue(
|
|
||||||
ListBlock(EvaluationSubTaskBlock()),
|
|
||||||
values=[
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Empfehlungen sind durchgängig sinnvoll und nachvollziehbar begründet.",
|
|
||||||
points=6,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Empfehlungen sind grösstenteils sinnvoll und nachvollziehbar begründet.",
|
|
||||||
points=4,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Empfehlungen sind wenig sinnvoll und unvollständig begründet.",
|
|
||||||
points=2,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Empfehlungen sind weder sinnvoll nch nachvollziehbar begründet.",
|
|
||||||
points=0,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
assignment.evaluation_tasks.append(
|
|
||||||
(
|
|
||||||
"task",
|
|
||||||
EvaluationTaskBlockFactory(
|
|
||||||
title="Qualität der Reflexion",
|
|
||||||
max_points=3,
|
|
||||||
description=RichText(
|
|
||||||
"Reflektiert die lernende Person die Durchführung der geleiteten Fallarbeit?"
|
|
||||||
),
|
|
||||||
sub_tasks=ListValue(
|
|
||||||
ListBlock(EvaluationSubTaskBlock()),
|
|
||||||
values=[
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst nachvollziehbare positive wie negative Aspekte.",
|
|
||||||
points=3,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst grösstenteils nachvollziehbare positive wie negative Aspekte.",
|
|
||||||
points=2,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Reflexion ist unvollständig.",
|
|
||||||
points=1,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Reflexion bezieht sich nicht auf die geleitete Fallarbeit.",
|
|
||||||
points=0,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
assignment.evaluation_tasks.append(
|
|
||||||
(
|
|
||||||
"task",
|
|
||||||
EvaluationTaskBlockFactory(
|
|
||||||
title="Eignung der Learnings",
|
|
||||||
max_points=3,
|
|
||||||
description=RichText(
|
|
||||||
"Leitet die lernende Person geeignete Learnings aus der Reflexion ab?"
|
|
||||||
),
|
|
||||||
sub_tasks=ListValue(
|
|
||||||
ListBlock(EvaluationSubTaskBlock()),
|
|
||||||
values=[
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Learnings beziehen sich auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
|
||||||
points=3,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Learnings beziehen sich grösstenteils auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
|
||||||
points=2,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Learnings beziehen sich teilweise auf die geleitete Fallarbeit und sind inhaltlich wenig sinnvoll.",
|
|
||||||
points=1,
|
|
||||||
),
|
|
||||||
EvaluationSubTaskBlockFactory(
|
|
||||||
title="Die Learnings beziehen sich nicht auf die geleitete Fallarbeit.",
|
|
||||||
points=0,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
assignment.save()
|
assignment.save()
|
||||||
|
|
||||||
return assignment
|
return assignment
|
||||||
|
|
|
||||||
|
|
@ -230,6 +230,23 @@ def create_default_users(user_model=User, group_model=Group, default_password=No
|
||||||
language="fr",
|
language="fr",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# users for cypress tests
|
||||||
|
_create_student_user(
|
||||||
|
email="test-trainer1@example.com",
|
||||||
|
first_name="Test",
|
||||||
|
last_name="Trainer1",
|
||||||
|
)
|
||||||
|
_create_student_user(
|
||||||
|
email="test-student1@example.com",
|
||||||
|
first_name="Test",
|
||||||
|
last_name="Student1",
|
||||||
|
)
|
||||||
|
_create_student_user(
|
||||||
|
email="test-student2@example.com",
|
||||||
|
first_name="Test",
|
||||||
|
last_name="Student2",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _get_or_create_user(user_model, *args, **kwargs):
|
def _get_or_create_user(user_model, *args, **kwargs):
|
||||||
username = kwargs.get("username", None)
|
username = kwargs.get("username", None)
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,18 @@ from vbv_lernwelt.competence.factories import (
|
||||||
PerformanceCriteriaFactory,
|
PerformanceCriteriaFactory,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.competence.models import CompetencePage
|
from vbv_lernwelt.competence.models import CompetencePage
|
||||||
|
from vbv_lernwelt.core.models import User
|
||||||
from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail
|
from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail
|
||||||
from vbv_lernwelt.course.consts import COURSE_TEST_ID
|
from vbv_lernwelt.course.consts import COURSE_TEST_ID
|
||||||
from vbv_lernwelt.course.factories import CoursePageFactory
|
from vbv_lernwelt.course.factories import CoursePageFactory
|
||||||
from vbv_lernwelt.course.models import Course, CourseCategory, CoursePage, CourseSession
|
from vbv_lernwelt.course.models import (
|
||||||
|
Course,
|
||||||
|
CourseCategory,
|
||||||
|
CoursePage,
|
||||||
|
CourseSession,
|
||||||
|
CourseSessionUser,
|
||||||
|
)
|
||||||
|
from vbv_lernwelt.learnpath.models import Circle
|
||||||
from vbv_lernwelt.learnpath.tests.learning_path_factories import (
|
from vbv_lernwelt.learnpath.tests.learning_path_factories import (
|
||||||
AssignmentBlockFactory,
|
AssignmentBlockFactory,
|
||||||
AttendanceDayBlockFactory,
|
AttendanceDayBlockFactory,
|
||||||
|
|
@ -55,15 +63,40 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
|
||||||
|
|
||||||
if with_sessions:
|
if with_sessions:
|
||||||
# course sessions
|
# course sessions
|
||||||
CourseSession.objects.create(
|
cs_bern = CourseSession.objects.create(
|
||||||
course_id=COURSE_TEST_ID,
|
course_id=COURSE_TEST_ID,
|
||||||
title="Bern 2022 a",
|
title="Bern 2022 a",
|
||||||
)
|
)
|
||||||
CourseSession.objects.create(
|
cs_zurich = CourseSession.objects.create(
|
||||||
course_id=COURSE_TEST_ID,
|
course_id=COURSE_TEST_ID,
|
||||||
title="Zürich 2022 a",
|
title="Zürich 2022 a",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
trainer1 = User.objects.get(email="test-trainer1@example.com")
|
||||||
|
csu = CourseSessionUser.objects.create(
|
||||||
|
course_session=cs_bern,
|
||||||
|
user=trainer1,
|
||||||
|
role=CourseSessionUser.Role.EXPERT,
|
||||||
|
)
|
||||||
|
csu.expert.add(Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug"))
|
||||||
|
|
||||||
|
student1 = User.objects.get(email="test-student1@example.com")
|
||||||
|
_csu = CourseSessionUser.objects.create(
|
||||||
|
course_session=cs_bern,
|
||||||
|
user=student1,
|
||||||
|
)
|
||||||
|
|
||||||
|
student2 = User.objects.get(email="test-student2@example.com")
|
||||||
|
_csu = CourseSessionUser.objects.create(
|
||||||
|
course_session=cs_bern,
|
||||||
|
user=student2,
|
||||||
|
)
|
||||||
|
student2 = User.objects.get(email="test-student2@example.com")
|
||||||
|
_csu = CourseSessionUser.objects.create(
|
||||||
|
course_session=cs_zurich,
|
||||||
|
user=student2,
|
||||||
|
)
|
||||||
|
|
||||||
return course
|
return course
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue