Update supervisor's idea table immediately upon scheduling a first meeting #105

Merged
ansv7779 merged 4 commits from first-meeting-feedback into develop 2025-02-13 09:59:34 +01:00
Showing only changes of commit 8900909191 - Show all commits

View File

@ -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());