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 85a1f413a7..54d464cee6 100644 --- a/core/src/main/java/se/su/dsv/scipro/DataInitializer.java +++ b/core/src/main/java/se/su/dsv/scipro/DataInitializer.java @@ -10,6 +10,8 @@ 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.Idea; +import se.su.dsv.scipro.match.IdeaService; import se.su.dsv.scipro.match.Keyword; import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate; import se.su.dsv.scipro.milestones.dataobjects.MilestonePhaseTemplate; @@ -22,6 +24,7 @@ import se.su.dsv.scipro.report.GradingCriterionPointTemplate; import se.su.dsv.scipro.report.GradingReportTemplate; import se.su.dsv.scipro.security.auth.roles.Roles; import se.su.dsv.scipro.system.*; +import se.su.dsv.scipro.util.Pair; public class DataInitializer implements Lifecycle { @@ -36,6 +39,9 @@ public class DataInitializer implements Lifecycle { @Inject private PasswordService passwordService; + @Inject + private IdeaService ideaService; + @Inject private MilestoneActivityTemplateService milestoneActivityTemplateService; @@ -75,6 +81,8 @@ public class DataInitializer implements Lifecycle { private ResearchArea researchArea2; private ProjectType masterClass; private ProjectType magisterClass; + private ApplicationPeriod applicationPeriod; + private Keyword keyword1; @Transactional @Override @@ -88,6 +96,7 @@ public class DataInitializer implements Lifecycle { createKeywordsIfNotDone(); createMilestonesIfNotDone(); createUsers(); + createMatchedIdea(); createProjects(); } if (profile.getCurrentProfile() == Profiles.DEV && noAdminUser()) { @@ -103,18 +112,18 @@ public class DataInitializer implements Lifecycle { } private void createApplicationPeriodIfNotDone() { - ApplicationPeriod applicationPeriod = new ApplicationPeriod("HT 2014"); + applicationPeriod = new ApplicationPeriod("HT 2014"); applicationPeriod.setStartDate(LocalDate.now().minusDays(APPLICATION_PERIOD_START_MINUS_DAYS)); applicationPeriod.setEndDate(LocalDate.now().plusDays(APPLICATION_PERIOD_END_PLUS_DAYS)); applicationPeriod.setCourseStartDate(LocalDate.now().plusDays(APPLICATION_PERIOD_COURSE_START_PLUS_DAYS)); applicationPeriod.setCourseStartTime(LocalTime.of(8, 0)); applicationPeriod = save(applicationPeriod); - applicationPeriod.setProjectTypes(new HashSet<>(Collections.singletonList(bachelorClass))); + applicationPeriod.setProjectTypes(new HashSet<>(Set.of(bachelorClass, masterClass))); save(applicationPeriod); } private void createKeywordsIfNotDone() { - Keyword keyword1 = new Keyword("IT"); + keyword1 = new Keyword("IT"); keyword1.addResearchArea(researchArea1); keyword1.addResearchArea(researchArea2); save(keyword1); @@ -248,6 +257,22 @@ public class DataInitializer implements Lifecycle { return u; } + private void createMatchedIdea() { + Idea idea = new Idea(); + idea.setApplicationPeriod(applicationPeriod); + idea.setType(Idea.Type.SUPERVISOR); + idea.setProjectType(masterClass); + idea.setTitle("Idea without first meeting"); + idea.setDescription("Explore the deep sea"); + idea.setPrerequisites("Diving experience"); + idea.setResearchArea(researchArea1); + idea.setPublished(true); + Idea saved = ideaService.saveSupervisorIdea(idea, eve_employee, new ArrayList<>(Set.of(keyword1)), true); + Pair<Boolean, String> validated = ideaService.validateAdminAddAuthors(saved, Set.of(sid_student)); + assert validated.getHead(); + ideaService.setAuthors(saved, Set.of(sid_student), eve_employee); + } + private void createGradingCriterionTemplateIfNotDone() { save(getBachelorTemplate()); save(getMasterTemplate());