67: Create student idea to test setting supervisor target

This commit is contained in:
Tom Zhao 2025-02-12 10:06:47 +01:00
parent 37b4e76ad2
commit 32c066a1c5

@ -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,