From 32c066a1c536b99c8ce4ab79cfab5ffb24bfe532 Mon Sep 17 00:00:00 2001 From: Tom Zhao <tom.zhao@dsv.su.se> Date: Wed, 12 Feb 2025 10:06:47 +0100 Subject: [PATCH] 67: Create student idea to test setting supervisor target --- .../se/su/dsv/scipro/DataInitializer.java | 54 +++++++++++++++---- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/se/su/dsv/scipro/DataInitializer.java b/core/src/main/java/se/su/dsv/scipro/DataInitializer.java index 44caa3b8c7..22a1e14bfd 100644 --- a/core/src/main/java/se/su/dsv/scipro/DataInitializer.java +++ b/core/src/main/java/se/su/dsv/scipro/DataInitializer.java @@ -9,9 +9,7 @@ import java.time.LocalTime; import java.time.Month; import java.util.*; import se.su.dsv.scipro.checklist.ChecklistCategory; -import se.su.dsv.scipro.match.ApplicationPeriod; -import se.su.dsv.scipro.match.Keyword; -import se.su.dsv.scipro.match.Target; +import se.su.dsv.scipro.match.*; import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate; import se.su.dsv.scipro.milestones.dataobjects.MilestonePhaseTemplate; import se.su.dsv.scipro.milestones.service.MilestoneActivityTemplateService; @@ -40,6 +38,9 @@ public class DataInitializer implements Lifecycle { @Inject private MilestoneActivityTemplateService milestoneActivityTemplateService; + @Inject + private IdeaService ideaService; + @Inject private CurrentProfile profile; @@ -68,12 +69,16 @@ public class DataInitializer implements Lifecycle { private User stina_student; private User sid_student; private User simon_student; - private ProjectType bachelorClass; + private User sofia_student; private Set<ResearchArea> researchAreas; private Long researchAreaId = RESEARCH_AREA_ID; private Set<Language> languages = Set.of(Language.SWEDISH, Language.ENGLISH); + private Program program; private ResearchArea researchArea1; private ResearchArea researchArea2; + private Keyword keyword1; + private Keyword keyword2; + private ProjectType bachelorClass; private ProjectType masterClass; private ProjectType magisterClass; private ApplicationPeriod applicationPeriod; @@ -84,6 +89,7 @@ public class DataInitializer implements Lifecycle { if (profile.getCurrentProfile() == Profiles.DEV && noUsers()) { createDefaultProjectTypesIfNotDone(); createDefaultChecklistCategoriesIfNotDone(); + createProgram(); createApplicationPeriodIfNotDone(); createGradingCriterionTemplateIfNotDone(); createResearchAreasForDemo(); @@ -92,6 +98,7 @@ public class DataInitializer implements Lifecycle { createUsers(); createProjects(); createTarget(); + createStudentIdea(); } if (profile.getCurrentProfile() == Profiles.DEV && noAdminUser()) { createAdmin(); @@ -105,6 +112,15 @@ public class DataInitializer implements Lifecycle { return userService.findByUsername(ADMIN + MAIL) == null; } + private void createProgram() { + program = new Program(); + program.setCode("AppCompSci"); + program.setName("Tillämpad Datavetenskap"); + program.setExternalId(123); + program.setNameEn("Applied Computer Science"); + program = save(program); + } + private void createApplicationPeriodIfNotDone() { applicationPeriod = new ApplicationPeriod("HT 2014"); applicationPeriod.setStartDate(LocalDate.now().minusDays(APPLICATION_PERIOD_START_MINUS_DAYS)); @@ -117,15 +133,15 @@ public class DataInitializer implements Lifecycle { } private void createKeywordsIfNotDone() { - Keyword keyword1 = new Keyword("IT"); + keyword1 = new Keyword("IT"); keyword1.addResearchArea(researchArea1); keyword1.addResearchArea(researchArea2); - save(keyword1); + keyword1 = save(keyword1); - Keyword keyword2 = new Keyword("Computers"); + keyword2 = new Keyword("Computers"); keyword2.addResearchArea(researchArea1); keyword2.addResearchArea(researchArea2); - save(keyword2); + keyword2 = save(keyword2); } private void createResearchAreasForDemo() { @@ -184,7 +200,7 @@ public class DataInitializer implements Lifecycle { // Used to test assign supervisor to student idea // this student has a submitted idea, which has not assigned supervisor // don't use this student for anything else - createStudent("Sofia"); + sofia_student = createStudent("Sofia"); } private User createStudent(String firstName) { @@ -271,6 +287,26 @@ public class DataInitializer implements Lifecycle { save(target); } + private void createStudentIdea() { + Idea idea = new Idea(); + idea.setTitle("Fundamental Math Concepts of AI"); + idea.setType(Idea.Type.STUDENT); + + TholanderBox box = new TholanderBox(); + box.setLiterature("Math AI Literature"); + box.setBackground("Math AI Background"); + box.setProblem("Math AI Problem"); + box.setMethod("Math AI Method"); + box.setInterests("Math AI Interests"); + idea.setTholanderBox(box); + + idea.setProjectType(bachelorClass); + idea.setApplicationPeriod(applicationPeriod); + + List<Keyword> keywords = List.of(keyword1, keyword2); + ideaService.saveStudentIdea(idea, sofia_student, program, new HashSet<User>(), keywords, true); + } + private GradingReportTemplate getBachelorTemplate() { GradingReportTemplate gradingReportTemplate = new GradingReportTemplate( bachelorClass,