commit
2d3234c7ce
|
|
@ -48,7 +48,7 @@ LP_DATA = {
|
||||||
"slug": "lancement",
|
"slug": "lancement",
|
||||||
"presence_course": "lancement-lc-cours-de-présence-lancement",
|
"presence_course": "lancement-lc-cours-de-présence-lancement",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"lancement-lc-mission-de-préparation",
|
"lancement-lc-mandat-de-préparation",
|
||||||
"lancement-lc-déclaration-de-probité",
|
"lancement-lc-déclaration-de-probité",
|
||||||
"lancement-lc-réflexion",
|
"lancement-lc-réflexion",
|
||||||
],
|
],
|
||||||
|
|
@ -83,7 +83,7 @@ LP_DATA = {
|
||||||
"slug": "base",
|
"slug": "base",
|
||||||
"presence_course": "base-lc-cours-de-présence-base",
|
"presence_course": "base-lc-cours-de-présence-base",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"base-lc-mission-de-préparation",
|
"base-lc-mandat-de-préparation",
|
||||||
],
|
],
|
||||||
"edoniq_tests": ["base-lc-questions-de-connaissances-et-de-compréhension"],
|
"edoniq_tests": ["base-lc-questions-de-connaissances-et-de-compréhension"],
|
||||||
},
|
},
|
||||||
|
|
@ -103,7 +103,7 @@ LP_DATA = {
|
||||||
"slug": "fahrzeug",
|
"slug": "fahrzeug",
|
||||||
"presence_course": "fahrzeug-lc-präsenzkurs-fahrzeug",
|
"presence_course": "fahrzeug-lc-präsenzkurs-fahrzeug",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice",
|
"fahrzeug-lc-geleitete-fallarbeit-überprüfen-einer-versicherungspolice",
|
||||||
"fahrzeug-lc-fahrzeug-mein-erstes-auto",
|
"fahrzeug-lc-fahrzeug-mein-erstes-auto",
|
||||||
],
|
],
|
||||||
"edoniq_tests": [],
|
"edoniq_tests": [],
|
||||||
|
|
@ -113,8 +113,8 @@ LP_DATA = {
|
||||||
"slug": "véhicule",
|
"slug": "véhicule",
|
||||||
"presence_course": "véhicule-lc-cours-de-présence-véhicule",
|
"presence_course": "véhicule-lc-cours-de-présence-véhicule",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"véhicule-lc-vérification-dune-police-dassurance-de-véhicule-à-moteur",
|
"véhicule-lc-mandat-de-préparation",
|
||||||
"véhicule-lc-véhicule-à-moteur-ma-première-voiture",
|
"véhicule-lc-étude-de-cas-dirigée-vérification-dune-police-dassurance",
|
||||||
],
|
],
|
||||||
"edoniq_tests": [],
|
"edoniq_tests": [],
|
||||||
},
|
},
|
||||||
|
|
@ -123,8 +123,8 @@ LP_DATA = {
|
||||||
"slug": "veicolo",
|
"slug": "veicolo",
|
||||||
"presence_course": "veicolo-lc-corso-di-presenza",
|
"presence_course": "veicolo-lc-corso-di-presenza",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"veicolo-lc-verifica-di-una-polizza-di-assicurazione-veicoli-a-motore",
|
"veicolo-lc-caso-di-studio-guidato-verifica-di-una-polizza-di-assicurazione",
|
||||||
"veicolo-lc-veicolo-la-mia-prima-auto",
|
"veicolo-lc-incarico-di-preparazione",
|
||||||
],
|
],
|
||||||
"edoniq_tests": [],
|
"edoniq_tests": [],
|
||||||
},
|
},
|
||||||
|
|
@ -192,7 +192,7 @@ LP_DATA = {
|
||||||
"de": {
|
"de": {
|
||||||
"title": "Reisen & Rechtsstreitigkeiten",
|
"title": "Reisen & Rechtsstreitigkeiten",
|
||||||
"slug": "reisen-rechtsstreitigkeiten",
|
"slug": "reisen-rechtsstreitigkeiten",
|
||||||
"presence_course": "reisen-rechtsstreitigkeiten-lc-präsenzkurs-reisen-rechtsstreiti",
|
"presence_course": "reisen-rechtsstreitigkeiten-lc-präsenzkurs-reisen-rechtsstreitigkeiten",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"reisen-rechtsstreitigkeiten-lc-vorbereitungsauftrag",
|
"reisen-rechtsstreitigkeiten-lc-vorbereitungsauftrag",
|
||||||
],
|
],
|
||||||
|
|
@ -203,7 +203,7 @@ LP_DATA = {
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Voyages / Litiges juridiques",
|
"title": "Voyages / Litiges juridiques",
|
||||||
"slug": "voyages-litiges-juridiques",
|
"slug": "voyages-litiges-juridiques",
|
||||||
"presence_course": "voyages--litiges-juridiques-lc-cours-de-présence",
|
"presence_course": "voyages-litiges-juridiques-lc-cours-de-présence-voyages-litiges-juridiques",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"voyages-litiges-juridiques-lc-mandat-de-préparation",
|
"voyages-litiges-juridiques-lc-mandat-de-préparation",
|
||||||
],
|
],
|
||||||
|
|
@ -214,7 +214,7 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "Viaggi e controversie giuridiche",
|
"title": "Viaggi e controversie giuridiche",
|
||||||
"slug": "viaggi-e-controversie-giuridiche",
|
"slug": "viaggi-e-controversie-giuridiche",
|
||||||
"presence_course": "viaggi-e-controversie-giuridiche-lc-corso-di-presenza",
|
"presence_course": "viaggi-e-controversie-giuridiche-lc-corso-di-presenza-viaggi-e-controversie-giuridiche",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"viaggi-e-controversie-giuridiche-lc-incarico-di-preparazione",
|
"viaggi-e-controversie-giuridiche-lc-incarico-di-preparazione",
|
||||||
],
|
],
|
||||||
|
|
@ -237,7 +237,7 @@ LP_DATA = {
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Propriété du logement",
|
"title": "Propriété du logement",
|
||||||
"slug": "propriété-du-logement",
|
"slug": "propriété-du-logement",
|
||||||
"presence_course": "propriété-du-logement-lc-cours-de-présence",
|
"presence_course": "propriété-du-logement-lc-cours-de-présence-propriété-du-logement",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"propriété-du-logement-lc-mandat-de-préparation",
|
"propriété-du-logement-lc-mandat-de-préparation",
|
||||||
"propriété-du-logement-lc-etude-de-cas-dirigée",
|
"propriété-du-logement-lc-etude-de-cas-dirigée",
|
||||||
|
|
@ -247,7 +247,7 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "Casa di proprietà",
|
"title": "Casa di proprietà",
|
||||||
"slug": "casa-di-proprietà",
|
"slug": "casa-di-proprietà",
|
||||||
"presence_course": "casa-di-proprietà-lc-corso-di-presenza",
|
"presence_course": "casa-di-proprietà-lc-corso-di-presenza-casa-di-proprietà",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"casa-di-proprietà-lc-incarico-di-preparazione",
|
"casa-di-proprietà-lc-incarico-di-preparazione",
|
||||||
"casa-di-proprietà-lc-caso-di-studio-guidato-dal-cantiere-alla-propria-casa",
|
"casa-di-proprietà-lc-caso-di-studio-guidato-dal-cantiere-alla-propria-casa",
|
||||||
|
|
@ -268,7 +268,7 @@ LP_DATA = {
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "PME, Partie 1",
|
"title": "PME, Partie 1",
|
||||||
"slug": "pme-partie-1",
|
"slug": "pme-partie-1",
|
||||||
"presence_course": "pme-partie-1-lc-cours-de-présence",
|
"presence_course": "pme-partie-1-lc-cours-de-présence-pme-partie-1",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"pme-partie-1-lc-mandat-de-préparation",
|
"pme-partie-1-lc-mandat-de-préparation",
|
||||||
],
|
],
|
||||||
|
|
@ -279,7 +279,7 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "PMI parte 1",
|
"title": "PMI parte 1",
|
||||||
"slug": "PMI parte 1",
|
"slug": "PMI parte 1",
|
||||||
"presence_course": "pmi-parte-1-lc-corso-di-presenza",
|
"presence_course": "pmi-parte-1-lc-corso-di-presenza-pmi-parte-1",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"pmi-parte-1-lc-incarico-di-preparazione",
|
"pmi-parte-1-lc-incarico-di-preparazione",
|
||||||
],
|
],
|
||||||
|
|
@ -300,7 +300,7 @@ LP_DATA = {
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "PME, Partie 2",
|
"title": "PME, Partie 2",
|
||||||
"slug": "pme-partie-2",
|
"slug": "pme-partie-2",
|
||||||
"presence_course": "pme-partie-2-lc-cours-de-présence",
|
"presence_course": "pme-partie-2-lc-cours-de-présence-pme-partie-2",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"pme-partie-2-lc-mandat-de-préparation",
|
"pme-partie-2-lc-mandat-de-préparation",
|
||||||
"pme-partie-2-lc-etude-de-cas-dirigée",
|
"pme-partie-2-lc-etude-de-cas-dirigée",
|
||||||
|
|
@ -310,10 +310,10 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "PMI parte 2",
|
"title": "PMI parte 2",
|
||||||
"slug": "PMI parte 2",
|
"slug": "PMI parte 2",
|
||||||
"presence_course": "pmi-parte-2-lc-corso-di-presenza",
|
"presence_course": "pmi-parte-2-lc-corso-di-presenza-pmi-parte-2",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"pmi-parte-2-lc-incarico-di-preparazione",
|
"pmi-parte-2-lc-incarico-di-preparazione",
|
||||||
"pmi-parte-2-lc-caso-di-studio-guidato",
|
"pmi-parte-2-lc-caso-di-studio-guidato-visitare-unazienda-pmi",
|
||||||
],
|
],
|
||||||
"edoniq_tests": [],
|
"edoniq_tests": [],
|
||||||
},
|
},
|
||||||
|
|
@ -322,16 +322,16 @@ LP_DATA = {
|
||||||
"de": {
|
"de": {
|
||||||
"title": "3-säulenkonzept",
|
"title": "3-säulenkonzept",
|
||||||
"slug": "3-säulenkonzept",
|
"slug": "3-säulenkonzept",
|
||||||
"presence_course": "3-säulenkonzept-lc-präsenzkurs-3-säulenkonzept",
|
"presence_course": "3-säulensystem-lc-präsenzkurs-3-säulenkonzept",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"3-säulenkonzept-lc-vorbereitungsauftrag",
|
"3-säulensystem-lc-vorbereitungsauftrag",
|
||||||
],
|
],
|
||||||
"edoniq_tests": ["3-säulenkonzept-lc-wissens-und-verständnisfragen"],
|
"edoniq_tests": ["3-säulensystem-lc-wissens-und-verständnisfragen"],
|
||||||
},
|
},
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Concept des 3 piliers",
|
"title": "Concept des 3 piliers",
|
||||||
"slug": "concept-des-3-piliers",
|
"slug": "concept-des-3-piliers",
|
||||||
"presence_course": "",
|
"presence_course": "concept-des-3-piliers-lc-cours-de-présence-concept-des-3-piliers",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"concept-des-3-piliers-lc-mandat-de-préparation",
|
"concept-des-3-piliers-lc-mandat-de-préparation",
|
||||||
],
|
],
|
||||||
|
|
@ -342,7 +342,7 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "Concetto dei 3 pilastri",
|
"title": "Concetto dei 3 pilastri",
|
||||||
"slug": "concetto-dei-3-pilastri",
|
"slug": "concetto-dei-3-pilastri",
|
||||||
"presence_course": "concetto-dei-3-pilastri-lc-corso-di-presenza",
|
"presence_course": "concetto-dei-3-pilastri-lc-corso-di-presenza-concetto-dei-3-pilastri",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"concetto-dei-3-pilastri-lc-incarico-di-preparazione",
|
"concetto-dei-3-pilastri-lc-incarico-di-preparazione",
|
||||||
],
|
],
|
||||||
|
|
@ -366,7 +366,7 @@ LP_DATA = {
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Garantie des revenus, Partie 1",
|
"title": "Garantie des revenus, Partie 1",
|
||||||
"slug": "garantie-des-revenus-partie-1",
|
"slug": "garantie-des-revenus-partie-1",
|
||||||
"presence_course": "garantie-des-revenus-partie-1-lc-cours-de-présence",
|
"presence_course": "garantie-des-revenus-partie-1-lc-cours-de-présence-garantie-des-revenus-partie-1",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"garantie-des-revenus-partie-1-lc-mandat-de-préparation",
|
"garantie-des-revenus-partie-1-lc-mandat-de-préparation",
|
||||||
],
|
],
|
||||||
|
|
@ -377,7 +377,7 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "Protezione del reddito parte 1",
|
"title": "Protezione del reddito parte 1",
|
||||||
"slug": "protezione-del-reddito-parte-1",
|
"slug": "protezione-del-reddito-parte-1",
|
||||||
"presence_course": "protezione-del-reddito-parte-1-lc-corso-di-presenza",
|
"presence_course": "protezione-del-reddito-parte-1-lc-corso-di-presenza-protezione-del-reddito-parte-1",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"protezione-del-reddito-parte-1-lc-incarico-di-preparazione",
|
"protezione-del-reddito-parte-1-lc-incarico-di-preparazione",
|
||||||
],
|
],
|
||||||
|
|
@ -390,7 +390,7 @@ LP_DATA = {
|
||||||
"de": {
|
"de": {
|
||||||
"title": "Einkommenssicherung (Todesfall)",
|
"title": "Einkommenssicherung (Todesfall)",
|
||||||
"slug": "einkommenssicherung-todesfall",
|
"slug": "einkommenssicherung-todesfall",
|
||||||
"presence_course": "einkommenssicherung-invalidität-lc-präsenzkurs-einkommenssicherung-invalidität",
|
"presence_course": "einkommenssicherung-todesfall-lc-präsenzkurs-einkommenssicherung-todesfall",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"einkommenssicherung-todesfall-lc-vorbereitungsauftrag",
|
"einkommenssicherung-todesfall-lc-vorbereitungsauftrag",
|
||||||
],
|
],
|
||||||
|
|
@ -401,7 +401,7 @@ LP_DATA = {
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Garantie des revenus, Partie 2",
|
"title": "Garantie des revenus, Partie 2",
|
||||||
"slug": "garantie-des-revenus-partie-2",
|
"slug": "garantie-des-revenus-partie-2",
|
||||||
"presence_course": "garantie-des-revenus-partie-2-lc-cours-de-présence",
|
"presence_course": "garantie-des-revenus-partie-2-lc-cours-de-présence-garantie-des-revenus-partie-2",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"garantie-des-revenus-partie-2-lc-mandat-de-préparation",
|
"garantie-des-revenus-partie-2-lc-mandat-de-préparation",
|
||||||
],
|
],
|
||||||
|
|
@ -410,14 +410,15 @@ LP_DATA = {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"it": {
|
"it": {
|
||||||
"title": "Casa di proprietà",
|
"title": "Protezione del reddito parte 2",
|
||||||
"slug": "casa-di-proprietà",
|
"slug": "protezione-del-reddito-parte-2",
|
||||||
"presence_course": "",
|
"presence_course": "protezione-del-reddito-parte-2-lc-corso-di-presenza-protezione-del-reddito-parte-2",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"",
|
"protezione-del-reddito-parte-2-lc-incarico-di-preparazione",
|
||||||
"",
|
],
|
||||||
|
"edoniq_tests": [
|
||||||
|
"protezione-del-reddito-parte-2-lc-domande-di-conoscenza-e-di-comprensione"
|
||||||
],
|
],
|
||||||
"edoniq_tests": [],
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"Pensionierung": {
|
"Pensionierung": {
|
||||||
|
|
@ -427,14 +428,14 @@ LP_DATA = {
|
||||||
"presence_course": "pensionierung-lc-präsenzkurs-pensionierung",
|
"presence_course": "pensionierung-lc-präsenzkurs-pensionierung",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"pensionierung-lc-vorbereitungsauftrag",
|
"pensionierung-lc-vorbereitungsauftrag",
|
||||||
"pensionierung-lc-geleitete-fallarbeit-geleitete-fallarbeit",
|
"pensionierung-lc-geleitete-fallarbeit",
|
||||||
],
|
],
|
||||||
"edoniq_tests": [],
|
"edoniq_tests": [],
|
||||||
},
|
},
|
||||||
"fr": {
|
"fr": {
|
||||||
"title": "Retraite",
|
"title": "Retraite",
|
||||||
"slug": "retraite",
|
"slug": "retraite",
|
||||||
"presence_course": "retraite-lc-cours-de-présence",
|
"presence_course": "retraite-lc-cours-de-présence-retraite",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"retraite-lc-mandat-de-préparation",
|
"retraite-lc-mandat-de-préparation",
|
||||||
"retraite-lc-etude-de-cas-dirigée",
|
"retraite-lc-etude-de-cas-dirigée",
|
||||||
|
|
@ -444,7 +445,7 @@ LP_DATA = {
|
||||||
"it": {
|
"it": {
|
||||||
"title": "Pensionamento",
|
"title": "Pensionamento",
|
||||||
"slug": "pensionamento",
|
"slug": "pensionamento",
|
||||||
"presence_course": "pensionamento-lc-corso-di-presenza",
|
"presence_course": "pensionamento-lc-corso-di-presenza-pensionamento",
|
||||||
"assignments": [
|
"assignments": [
|
||||||
"pensionamento-lc-incarico-di-preparazione",
|
"pensionamento-lc-incarico-di-preparazione",
|
||||||
"pensionamento-lc-caso-di-studio-guidato",
|
"pensionamento-lc-caso-di-studio-guidato",
|
||||||
|
|
@ -648,7 +649,8 @@ def create_or_update_course_session(
|
||||||
presence_day_end = try_parse_datetime(
|
presence_day_end = try_parse_datetime(
|
||||||
data[f"{circle} {TRANSLATIONS[language]['ende']}"]
|
data[f"{circle} {TRANSLATIONS[language]['ende']}"]
|
||||||
)[1]
|
)[1]
|
||||||
except KeyError:
|
except KeyError as e:
|
||||||
|
logger.debug("import", type="presence_data", key_error=e)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if attendance_course_lc:
|
if attendance_course_lc:
|
||||||
|
|
@ -662,6 +664,14 @@ def create_or_update_course_session(
|
||||||
presence_day_end,
|
presence_day_end,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
else:
|
||||||
|
logger.debug(
|
||||||
|
"import",
|
||||||
|
type="course_session_attendance",
|
||||||
|
slug=f"{course.slug}-lp-circle-{circle_data['presence_course']}",
|
||||||
|
error="Does not exist",
|
||||||
|
)
|
||||||
|
|
||||||
for assignment_slug in circle_data["assignments"]:
|
for assignment_slug in circle_data["assignments"]:
|
||||||
create_or_update_course_session_assignment(
|
create_or_update_course_session_assignment(
|
||||||
cs, course.slug, assignment_slug, presence_day_start
|
cs, course.slug, assignment_slug, presence_day_start
|
||||||
|
|
@ -758,6 +768,13 @@ def create_or_update_course_session_assignment(
|
||||||
) + timezone.timedelta(days=45)
|
) + timezone.timedelta(days=45)
|
||||||
csa.evaluation_deadline.end = None
|
csa.evaluation_deadline.end = None
|
||||||
csa.evaluation_deadline.save()
|
csa.evaluation_deadline.save()
|
||||||
|
else:
|
||||||
|
logger.debug(
|
||||||
|
"import",
|
||||||
|
type="course_session_assignment",
|
||||||
|
slug=f"{course_slug}-lp-circle-{assignment_slug}",
|
||||||
|
error="Does not exist",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_or_update_course_session_edoniq_test(
|
def create_or_update_course_session_edoniq_test(
|
||||||
|
|
@ -779,6 +796,13 @@ def create_or_update_course_session_edoniq_test(
|
||||||
)
|
)
|
||||||
cset.deadline.end = None
|
cset.deadline.end = None
|
||||||
cset.deadline.save()
|
cset.deadline.save()
|
||||||
|
else:
|
||||||
|
logger.debug(
|
||||||
|
"import",
|
||||||
|
type="course_session_edoniq_test",
|
||||||
|
slug=f"{course_slug}-lp-circle-{test_slug}",
|
||||||
|
error="Does not exist",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def validate_row_data(data: Dict[str, any], required_headers: List[str]):
|
def validate_row_data(data: Dict[str, any], required_headers: List[str]):
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ from vbv_lernwelt.importer.utils import (
|
||||||
calc_header_tuple_list_from_pyxl_sheet,
|
calc_header_tuple_list_from_pyxl_sheet,
|
||||||
try_parse_datetime,
|
try_parse_datetime,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.learnpath.models import Circle
|
from vbv_lernwelt.learnpath.models import Circle, LearningContentAssignment
|
||||||
|
|
||||||
test_dir = os.path.dirname(os.path.abspath(__file__))
|
test_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
|
@ -54,6 +54,15 @@ class CreateOrUpdateCourseSessionTestCase(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
create_default_users()
|
create_default_users()
|
||||||
self.course = create_test_course(include_vv=False)
|
self.course = create_test_course(include_vv=False)
|
||||||
|
# update slug to reflect the real data
|
||||||
|
assignment_slug = (
|
||||||
|
"fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice"
|
||||||
|
)
|
||||||
|
casework = LearningContentAssignment.objects.filter(
|
||||||
|
slug=f"{self.course.slug}-lp-circle-{assignment_slug}"
|
||||||
|
).first()
|
||||||
|
casework.title = "Geleitete Fallarbeit: Überprüfen einer Versicherungspolice"
|
||||||
|
casework.save()
|
||||||
|
|
||||||
def test_create_course_session(self):
|
def test_create_course_session(self):
|
||||||
row = [
|
row = [
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue