wip: Rename CASEWORK

This commit is contained in:
Christian Cueni 2023-11-12 12:01:16 +01:00
parent 6afc9dcbc9
commit 5c140f00de
18 changed files with 58 additions and 46 deletions

View File

@ -63,16 +63,18 @@ export type ActionCompetenceObjectType = CoursePageInterface & {
/** An enumeration. */ /** An enumeration. */
export type AssignmentAssignmentAssignmentTypeChoices = export type AssignmentAssignmentAssignmentTypeChoices =
/** CASEWORK */
| 'CASEWORK'
/** CONDITION_ACCEPTANCE */ /** CONDITION_ACCEPTANCE */
| 'CONDITION_ACCEPTANCE' | 'CONDITION_ACCEPTANCE'
/** EDONIQ_TEST */ /** EDONIQ_TEST */
| 'EDONIQ_TEST' | 'EDONIQ_TEST'
/** MANDATORY_CASEWORK */
| 'MANDATORY_CASEWORK'
/** PREP_ASSIGNMENT */ /** PREP_ASSIGNMENT */
| 'PREP_ASSIGNMENT' | 'PREP_ASSIGNMENT'
/** REFLECTION */ /** REFLECTION */
| 'REFLECTION'; | 'REFLECTION'
/** VOLUNTARY_CASEWORK */
| 'VOLUNTARY_CASEWORK';
/** An enumeration. */ /** An enumeration. */
export type AssignmentAssignmentCompletionCompletionStatusChoices = export type AssignmentAssignmentCompletionCompletionStatusChoices =
@ -150,7 +152,7 @@ export type AssignmentObjectType = CoursePageInterface & {
learning_content?: Maybe<LearningContentInterface>; learning_content?: Maybe<LearningContentInterface>;
live: Scalars['Boolean']['output']; live: Scalars['Boolean']['output'];
max_points?: Maybe<Scalars['Int']['output']>; max_points?: Maybe<Scalars['Int']['output']>;
/** Muss der Auftrag durch eine Expertin oder einen Experten beurteilt werden? */ /** Muss der Auftrag durch eine/n Experten/in oder eine Lernbegleitung beurteilt werden? */
needs_expert_evaluation: Scalars['Boolean']['output']; needs_expert_evaluation: Scalars['Boolean']['output'];
performance_objectives?: Maybe<Scalars['JSONStreamField']['output']>; performance_objectives?: Maybe<Scalars['JSONStreamField']['output']>;
slug: Scalars['String']['output']; slug: Scalars['String']['output'];
@ -764,16 +766,18 @@ export type LearningUnitObjectType = CoursePageInterface & {
/** An enumeration. */ /** An enumeration. */
export type LearnpathLearningContentAssignmentAssignmentTypeChoices = export type LearnpathLearningContentAssignmentAssignmentTypeChoices =
/** CASEWORK */
| 'CASEWORK'
/** CONDITION_ACCEPTANCE */ /** CONDITION_ACCEPTANCE */
| 'CONDITION_ACCEPTANCE' | 'CONDITION_ACCEPTANCE'
/** EDONIQ_TEST */ /** EDONIQ_TEST */
| 'EDONIQ_TEST' | 'EDONIQ_TEST'
/** MANDATORY_CASEWORK */
| 'MANDATORY_CASEWORK'
/** PREP_ASSIGNMENT */ /** PREP_ASSIGNMENT */
| 'PREP_ASSIGNMENT' | 'PREP_ASSIGNMENT'
/** REFLECTION */ /** REFLECTION */
| 'REFLECTION'; | 'REFLECTION'
/** VOLUNTARY_CASEWORK */
| 'VOLUNTARY_CASEWORK';
export type Mutation = { export type Mutation = {
__typename?: 'Mutation'; __typename?: 'Mutation';

View File

@ -456,7 +456,7 @@ type AssignmentObjectType implements CoursePageInterface {
assignment_type: AssignmentAssignmentAssignmentTypeChoices! assignment_type: AssignmentAssignmentAssignmentTypeChoices!
""" """
Muss der Auftrag durch eine Expertin oder einen Experten beurteilt werden? Muss der Auftrag durch eine/n Experten/in oder eine Lernbegleitung beurteilt werden?
""" """
needs_expert_evaluation: Boolean! needs_expert_evaluation: Boolean!
competence_certificate: CompetenceCertificateObjectType competence_certificate: CompetenceCertificateObjectType
@ -490,8 +490,11 @@ type AssignmentObjectType implements CoursePageInterface {
"""An enumeration.""" """An enumeration."""
enum AssignmentAssignmentAssignmentTypeChoices { enum AssignmentAssignmentAssignmentTypeChoices {
"""CASEWORK""" """VOLUNTARY_CASEWORK"""
CASEWORK VOLUNTARY_CASEWORK
"""MANDATORY_CASEWORK"""
MANDATORY_CASEWORK
"""PREP_ASSIGNMENT""" """PREP_ASSIGNMENT"""
PREP_ASSIGNMENT PREP_ASSIGNMENT
@ -604,8 +607,11 @@ scalar JSONString
"""An enumeration.""" """An enumeration."""
enum LearnpathLearningContentAssignmentAssignmentTypeChoices { enum LearnpathLearningContentAssignmentAssignmentTypeChoices {
"""CASEWORK""" """VOLUNTARY_CASEWORK"""
CASEWORK VOLUNTARY_CASEWORK
"""MANDATORY_CASEWORK"""
MANDATORY_CASEWORK
"""PREP_ASSIGNMENT""" """PREP_ASSIGNMENT"""
PREP_ASSIGNMENT PREP_ASSIGNMENT

View File

@ -60,7 +60,7 @@ const totalCount = (status: StatusCount) => {
const showEvaluationStatus = computed(() => { const showEvaluationStatus = computed(() => {
return ( return (
props.learningContent.content_assignment.assignment_type === "CASEWORK" || props.learningContent.content_assignment.assignment_type === "MANDATORY_CASEWORK" ||
props.learningContent.content_assignment.assignment_type === "EDONIQ_TEST" props.learningContent.content_assignment.assignment_type === "EDONIQ_TEST"
); );
}); });

View File

@ -101,7 +101,7 @@ const getLearningContentType = (lc: LearningContent) => {
const getShowDetailsText = (lc: LearningContent) => { const getShowDetailsText = (lc: LearningContent) => {
if (isAssignment(lc)) { if (isAssignment(lc)) {
const assignmentType = (lc as LearningContentAssignment).assignment_type; const assignmentType = (lc as LearningContentAssignment).assignment_type;
if (assignmentType === "CASEWORK" || assignmentType === "REFLECTION") { if (assignmentType === "MANDATORY_CASEWORK" || assignmentType === "REFLECTION") {
return t("a.Ergebnisse anschauen"); return t("a.Ergebnisse anschauen");
} else if ( } else if (
assignmentType === "PREP_ASSIGNMENT" || assignmentType === "PREP_ASSIGNMENT" ||
@ -131,7 +131,7 @@ const getIconName = (lc: LearningContent) => {
const assignmentType = (lc as LearningContentAssignment).assignment_type; const assignmentType = (lc as LearningContentAssignment).assignment_type;
if ( if (
assignmentType === "PREP_ASSIGNMENT" || assignmentType === "PREP_ASSIGNMENT" ||
assignmentType === "CASEWORK" || assignmentType === "MANDATORY_CASEWORK" ||
assignmentType === "CONDITION_ACCEPTANCE" assignmentType === "CONDITION_ACCEPTANCE"
) { ) {
return "it-icon-assignment-large"; return "it-icon-assignment-large";

View File

@ -79,11 +79,13 @@ const completionTaskData = computed(() => {
const canSubmit = computed(() => { const canSubmit = computed(() => {
return ( return (
!state.confirmInput || !state.confirmInput ||
(props.assignment.assignment_type === "CASEWORK" && !state.confirmPerson) (props.assignment.assignment_type === "MANDATORY_CASEWORK" && !state.confirmPerson)
); );
}); });
const isCasework = computed(() => props.assignment.assignment_type === "CASEWORK"); const isCasework = computed(
() => props.assignment.assignment_type === "MANDATORY_CASEWORK"
);
const upsertAssignmentCompletionMutation = useMutation( const upsertAssignmentCompletionMutation = useMutation(
UPSERT_ASSIGNMENT_COMPLETION_MUTATION UPSERT_ASSIGNMENT_COMPLETION_MUTATION

View File

@ -374,7 +374,7 @@ export type ActionCompetence = Omit<
}; };
export interface CompetenceCertificateAssignment extends BaseCourseWagtailPage { export interface CompetenceCertificateAssignment extends BaseCourseWagtailPage {
assignment_type: "CASEWORK" | "EDONIQ_TEST"; assignment_type: "MANDATORY_CASEWORK" | "EDONIQ_TEST";
max_points: number; max_points: number;
learning_content: learning_content:
| (BaseCourseWagtailPage & { | (BaseCourseWagtailPage & {

View File

@ -40,7 +40,7 @@ export function getAssignmentTypeTitle(assignmentType: AssignmentType): string {
const { t } = useTranslation(); const { t } = useTranslation();
switch (assignmentType) { switch (assignmentType) {
case "CASEWORK": case "MANDATORY_CASEWORK":
return t("learningContentTypes.casework"); return t("learningContentTypes.casework");
case "PREP_ASSIGNMENT": case "PREP_ASSIGNMENT":
return t("learningContentTypes.prepAssignment"); return t("learningContentTypes.prepAssignment");

View File

@ -111,7 +111,8 @@ class EvaluationTaskBlock(blocks.StructBlock):
class AssignmentType(Enum): class AssignmentType(Enum):
CASEWORK = "CASEWORK" # Geleitete Fallarbeit VOLUNTARY_CASEWORK = "VOLUNTARY_CASEWORK" # Praxisauftrag
MANDATORY_CASEWORK = "MANDATORY_CASEWORK" # Geleitete Fallarbeit
PREP_ASSIGNMENT = "PREP_ASSIGNMENT" # Vorbereitungsauftrag PREP_ASSIGNMENT = "PREP_ASSIGNMENT" # Vorbereitungsauftrag
REFLECTION = "REFLECTION" # Reflexion REFLECTION = "REFLECTION" # Reflexion
CONDITION_ACCEPTANCE = "CONDITION_ACCEPTANCE" # Bedingungsannahme CONDITION_ACCEPTANCE = "CONDITION_ACCEPTANCE" # Bedingungsannahme
@ -138,12 +139,12 @@ class Assignment(CourseBasePage):
assignment_type = models.CharField( assignment_type = models.CharField(
max_length=50, max_length=50,
choices=[(tag.value, tag.value) for tag in AssignmentType], choices=[(tag.value, tag.value) for tag in AssignmentType],
default=AssignmentType.CASEWORK.value, default=AssignmentType.MANDATORY_CASEWORK.value,
) )
needs_expert_evaluation = models.BooleanField( needs_expert_evaluation = models.BooleanField(
default=False, default=False,
help_text="Muss der Auftrag durch eine Expertin oder einen Experten beurteilt werden?", help_text="Muss der Auftrag durch eine/n Experten/in oder eine Lernbegleitung beurteilt werden?",
) )
competence_certificate = models.ForeignKey( competence_certificate = models.ForeignKey(

View File

@ -132,7 +132,7 @@ class CourseSessionAssignment(models.Model):
) )
assignment_type = self.learning_content.assignment_type assignment_type = self.learning_content.assignment_type
assignment_type_translation_keys = { assignment_type_translation_keys = {
AssignmentType.CASEWORK.value: "learningContentTypes.casework", AssignmentType.MANDATORY_CASEWORK.value: "learningContentTypes.casework",
AssignmentType.PREP_ASSIGNMENT.value: "learningContentTypes.prepAssignment", AssignmentType.PREP_ASSIGNMENT.value: "learningContentTypes.prepAssignment",
AssignmentType.REFLECTION.value: "learningContentTypes.reflection", AssignmentType.REFLECTION.value: "learningContentTypes.reflection",
} }
@ -140,7 +140,7 @@ class CourseSessionAssignment(models.Model):
url_expert = f"/course/{self.course_session.course.slug}/cockpit/assignment/{self.learning_content_id}?courseSessionId={self.course_session.id}" url_expert = f"/course/{self.course_session.course.slug}/cockpit/assignment/{self.learning_content_id}?courseSessionId={self.course_session.id}"
if assignment_type in ( if assignment_type in (
AssignmentType.CASEWORK.value, AssignmentType.MANDATORY_CASEWORK.value,
AssignmentType.PREP_ASSIGNMENT.value, AssignmentType.PREP_ASSIGNMENT.value,
): ):
if not self.submission_deadline_id: if not self.submission_deadline_id:
@ -162,7 +162,7 @@ class CourseSessionAssignment(models.Model):
self.submission_deadline.save() self.submission_deadline.save()
if assignment_type == AssignmentType.CASEWORK.value: if assignment_type == AssignmentType.MANDATORY_CASEWORK.value:
if not self.evaluation_deadline_id: if not self.evaluation_deadline_id:
self.evaluation_deadline = DueDate.objects.create( self.evaluation_deadline = DueDate.objects.create(
course_session=self.course_session, course_session=self.course_session,

View File

@ -152,7 +152,7 @@ def assignments(
for csa in CourseSessionAssignment.objects.filter( for csa in CourseSessionAssignment.objects.filter(
course_session=course_session, course_session=course_session,
learning_content__content_assignment__assignment_type__in=[ learning_content__content_assignment__assignment_type__in=[
AssignmentType.CASEWORK.value, AssignmentType.MANDATORY_CASEWORK.value,
], ],
learning_content__content_assignment__competence_certificate__isnull=False, learning_content__content_assignment__competence_certificate__isnull=False,
): ):

View File

@ -99,7 +99,7 @@ class AssignmentTestCase(GraphQLTestCase):
def test_dashboard_contains_casework(self): def test_dashboard_contains_casework(self):
self._test_assignment_type_dashboard_details( self._test_assignment_type_dashboard_details(
assignment_type=AssignmentType.CASEWORK assignment_type=AssignmentType.MANDATORY_CASEWORK
) )
def test_dashboard_contains_edoniq_tests(self): def test_dashboard_contains_edoniq_tests(self):
@ -115,7 +115,7 @@ class AssignmentTestCase(GraphQLTestCase):
""" """
irrelevant_types_for_dashboard = set(AssignmentType) - { irrelevant_types_for_dashboard = set(AssignmentType) - {
AssignmentType.CASEWORK, AssignmentType.MANDATORY_CASEWORK,
AssignmentType.EDONIQ_TEST, AssignmentType.EDONIQ_TEST,
} }
@ -196,7 +196,7 @@ class AssignmentTestCase(GraphQLTestCase):
# GIVEN # GIVEN
assignment_1, _ = mix_assignment_cocktail( assignment_1, _ = mix_assignment_cocktail(
deadline_at=datetime(1990, 4, 1), deadline_at=datetime(1990, 4, 1),
assignment_type=AssignmentType.CASEWORK, assignment_type=AssignmentType.MANDATORY_CASEWORK,
course_session=self.course_session, course_session=self.course_session,
circle=self.circle, circle=self.circle,
add_competence_certificate=True, add_competence_certificate=True,
@ -212,7 +212,7 @@ class AssignmentTestCase(GraphQLTestCase):
assignment_3, _ = mix_assignment_cocktail( assignment_3, _ = mix_assignment_cocktail(
deadline_at=datetime(2010, 4, 1), deadline_at=datetime(2010, 4, 1),
assignment_type=AssignmentType.CASEWORK, assignment_type=AssignmentType.MANDATORY_CASEWORK,
course_session=self.course_session, course_session=self.course_session,
circle=self.circle, circle=self.circle,
add_competence_certificate=True, add_competence_certificate=True,

View File

@ -50,7 +50,7 @@ class DashboardTestCase(GraphQLTestCase):
create_assignment_completion( create_assignment_completion(
user=member, user=member,
assignment=create_assignment( assignment=create_assignment(
course=course, assignment_type=AssignmentType.CASEWORK course=course, assignment_type=AssignmentType.MANDATORY_CASEWORK
), ),
course_session=cs_1, course_session=cs_1,
has_passed=True, has_passed=True,
@ -61,7 +61,7 @@ class DashboardTestCase(GraphQLTestCase):
create_assignment_completion( create_assignment_completion(
user=member, user=member,
assignment=create_assignment( assignment=create_assignment(
course=course, assignment_type=AssignmentType.CASEWORK course=course, assignment_type=AssignmentType.MANDATORY_CASEWORK
), ),
course_session=cs_2, course_session=cs_2,
has_passed=False, has_passed=False,

View File

@ -459,7 +459,7 @@ def create_or_update_course_session_assignment(
csa.submission_deadline.save() csa.submission_deadline.save()
elif ( elif (
csa.learning_content.assignment_type == AssignmentType.CASEWORK.value csa.learning_content.assignment_type == AssignmentType.MANDATORY_CASEWORK.value
and start and start
): ):
csa.submission_deadline.start = timezone.make_aware( csa.submission_deadline.start = timezone.make_aware(

View File

@ -99,7 +99,7 @@ class CreateOrUpdateCourseSessionTestCase(TestCase):
self.assertEqual(4, DueDate.objects.count()) self.assertEqual(4, DueDate.objects.count())
casework = CourseSessionAssignment.objects.filter( casework = CourseSessionAssignment.objects.filter(
learning_content__assignment_type=AssignmentType.CASEWORK.value learning_content__assignment_type=AssignmentType.MANDATORY_CASEWORK.value
).first() ).first()
self.assertEqual( self.assertEqual(
casework.submission_deadline.start.isoformat(), "2023-07-06T11:30:00+00:00" casework.submission_deadline.start.isoformat(), "2023-07-06T11:30:00+00:00"
@ -183,7 +183,7 @@ class CreateOrUpdateCourseSessionTestCase(TestCase):
self.assertEqual(4, DueDate.objects.count()) self.assertEqual(4, DueDate.objects.count())
casework = CourseSessionAssignment.objects.filter( casework = CourseSessionAssignment.objects.filter(
learning_content__assignment_type=AssignmentType.CASEWORK.value learning_content__assignment_type=AssignmentType.MANDATORY_CASEWORK.value
).first() ).first()
self.assertEqual( self.assertEqual(
casework.submission_deadline.start.isoformat(), "2023-07-06T12:30:00+00:00" casework.submission_deadline.start.isoformat(), "2023-07-06T12:30:00+00:00"

View File

@ -426,7 +426,7 @@ class LearningContentAssignment(LearningContent):
assignment_type = models.CharField( assignment_type = models.CharField(
max_length=50, max_length=50,
choices=[(tag.name, tag.name) for tag in AssignmentType], choices=[(tag.name, tag.name) for tag in AssignmentType],
default=AssignmentType.CASEWORK.name, default=AssignmentType.MANDATORY_CASEWORK.name,
) )
content_panels = [ content_panels = [

View File

@ -26,7 +26,7 @@ def send_assignment_reminder_notifications():
submission_deadline__start__lte=end, submission_deadline__start__lte=end,
submission_deadline__start__gte=start, submission_deadline__start__gte=start,
learning_content__assignment_type__in=[ learning_content__assignment_type__in=[
AssignmentType.CASEWORK.value, AssignmentType.MANDATORY_CASEWORK.value,
AssignmentType.PREP_ASSIGNMENT.value, AssignmentType.PREP_ASSIGNMENT.value,
], ],
): ):
@ -60,7 +60,7 @@ def send_assignment_reminder_notifications():
evaluation_deadline__start__lte=end, evaluation_deadline__start__lte=end,
evaluation_deadline__start__gte=start, evaluation_deadline__start__gte=start,
learning_content__assignment_type__in=[ learning_content__assignment_type__in=[
AssignmentType.CASEWORK.value, AssignmentType.MANDATORY_CASEWORK.value,
], ],
): ):
for expert in CourseSessionUser.objects.filter( for expert in CourseSessionUser.objects.filter(

View File

@ -156,7 +156,7 @@ class NotificationService:
} }
templates = { templates = {
AssignmentType.CASEWORK: EmailTemplate.ASSIGNMENT_REMINDER_CASEWORK_MEMBER, AssignmentType.MANDATORY_CASEWORK: EmailTemplate.ASSIGNMENT_REMINDER_CASEWORK_MEMBER,
AssignmentType.PREP_ASSIGNMENT: EmailTemplate.ASSIGNMENT_REMINDER_PREP_ASSIGNMENT_MEMBER, AssignmentType.PREP_ASSIGNMENT: EmailTemplate.ASSIGNMENT_REMINDER_PREP_ASSIGNMENT_MEMBER,
} }

View File

@ -35,12 +35,11 @@ RECIPIENT_STUDENTS = [
"test-student3@example.com", "test-student3@example.com",
] ]
ASSIGNMENT_TYPE_LEARNING_CONTENT_LOOKUP: Dict[AssignmentType, str] = { ASSIGNMENT_TYPE_LEARNING_CONTENT_LOOKUP: Dict[AssignmentType, str] = {
AssignmentType.CONDITION_ACCEPTANCE: "test-lehrgang-lp-circle-fahrzeug-lc-redlichkeitserklärung", AssignmentType.CONDITION_ACCEPTANCE: "test-lehrgang-lp-circle-fahrzeug-lc-redlichkeitserklärung",
AssignmentType.PREP_ASSIGNMENT: "test-lehrgang-lp-circle-fahrzeug-lc-fahrzeug-mein-erstes-auto", AssignmentType.PREP_ASSIGNMENT: "test-lehrgang-lp-circle-fahrzeug-lc-fahrzeug-mein-erstes-auto",
AssignmentType.REFLECTION: "test-lehrgang-lp-circle-fahrzeug-lc-reflexion", AssignmentType.REFLECTION: "test-lehrgang-lp-circle-fahrzeug-lc-reflexion",
AssignmentType.CASEWORK: "test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice", AssignmentType.MANDATORY_CASEWORK: "test-lehrgang-lp-circle-fahrzeug-lc-überprüfen-einer-motorfahrzeug-versicherungspolice",
} }
@ -140,7 +139,7 @@ class TestAssignmentCourseRemindersTest(TestCase):
action_object.learning_content.assignment_type action_object.learning_content.assignment_type
) )
if assignment_type == AssignmentType.CASEWORK: if assignment_type == AssignmentType.MANDATORY_CASEWORK:
self.assertEquals( self.assertEquals(
EmailTemplate.ASSIGNMENT_REMINDER_CASEWORK_MEMBER.name, EmailTemplate.ASSIGNMENT_REMINDER_CASEWORK_MEMBER.name,
email_template, email_template,
@ -190,7 +189,7 @@ class TestAssignmentCourseRemindersTest(TestCase):
def test_notification_casework_for_members(self): def test_notification_casework_for_members(self):
# GIVEN # GIVEN
casework = create_assignment( casework = create_assignment(
assignment_type=AssignmentType.CASEWORK, assignment_type=AssignmentType.MANDATORY_CASEWORK,
# has a submission deadline within range -> member notification # has a submission deadline within range -> member notification
submission_deadline=timezone.make_aware(datetime(2023, 1, 2)), submission_deadline=timezone.make_aware(datetime(2023, 1, 2)),
# but no evaluation deadline within range -> no expert notification # but no evaluation deadline within range -> no expert notification
@ -199,14 +198,14 @@ class TestAssignmentCourseRemindersTest(TestCase):
# ...too early # ...too early
create_assignment( create_assignment(
assignment_type=AssignmentType.CASEWORK, assignment_type=AssignmentType.MANDATORY_CASEWORK,
submission_deadline=timezone.make_aware(datetime(2023, 1, 4)), submission_deadline=timezone.make_aware(datetime(2023, 1, 4)),
evaluation_deadline=timezone.make_aware(datetime(2023, 2, 2)), evaluation_deadline=timezone.make_aware(datetime(2023, 2, 2)),
) )
# ...too late # ...too late
create_assignment( create_assignment(
assignment_type=AssignmentType.CASEWORK, assignment_type=AssignmentType.MANDATORY_CASEWORK,
submission_deadline=timezone.make_aware(datetime(2022, 1, 1)), submission_deadline=timezone.make_aware(datetime(2022, 1, 1)),
evaluation_deadline=timezone.make_aware(datetime(2022, 2, 2)), evaluation_deadline=timezone.make_aware(datetime(2022, 2, 2)),
) )
@ -228,7 +227,7 @@ class TestAssignmentCourseRemindersTest(TestCase):
def test_notification_casework_for_experts(self): def test_notification_casework_for_experts(self):
# GIVEN # GIVEN
casework = create_assignment( casework = create_assignment(
assignment_type=AssignmentType.CASEWORK, assignment_type=AssignmentType.MANDATORY_CASEWORK,
submission_deadline=timezone.make_aware(datetime(2022, 12, 12)), submission_deadline=timezone.make_aware(datetime(2022, 12, 12)),
evaluation_deadline=timezone.make_aware(datetime(2023, 1, 2)), evaluation_deadline=timezone.make_aware(datetime(2023, 1, 2)),
) )