2828 Give project start date its own attribute instead of stealing audit data
This commit is contained in:
parent
f84594665d
commit
5ece9dda93
core/src
main
java/se/su/dsv/scipro
DataInitializer.java
gdpr
milestones
project
report
workerthreads
resources/db/migration
test/java/se/su/dsv/scipro
activityplan
ActivityPlanFacadeImplIntegrationTest.javaActivityPlanFacadeImplIntegrationTestChecklistMethods.javaActivityPlanFacadeImplTest.java
checklist
crosscutting
finalseminar
ExtendedFinalSeminarServiceImplTest.javaFinalSeminarOppositionServiceImplIntegrationTest.javaFinalSeminarRespondentServiceImplIntegrationTest.javaFinalSeminarServiceImplIntegrationTest.javaFinalSeminarUploadControllerImplTest.java
finalthesis
forum
forummail
group
match
milestones/service/impl
MilestoneActivityTemplateServiceImplTest.javaMilestonePhaseTemplateServiceImplTest.javaMilestoneServiceImplIntegrationTest.javaMilestoneStatisticsServiceImplTest.java
notifications
GradingNotificationsTest.javaGradingReportNotificationsTest.javaNotificationServiceImplIntegrationTest.java
peer
CommentThreadServiceImplTest.javaPeerPortalImplTest.javaPeerRequestServiceImplTest.javaPeerReviewServiceImplIntegrationTest.javaPeerReviewServiceImplTest.javaPeerReviewTest.javaTestPeerReview.java
project
report
GradingReportServiceImplIntegrationTest.javaGradingReportServiceImplTest.javaGradingReportTemplateTest.javaSupervisorGradingReportTest.java
reviewing
FinalSeminarApprovalServiceImplTest.javaReviewerDecisionReminderWorkerTest.javaReviewerInteractionServiceImplTest.javaReviewingServiceImplTest.java
system
test
daisy-integration/src
main/java/se/su/dsv/scipro
test/java/se/su/dsv/scipro
view/src
main/java/se/su/dsv/scipro
admin/pages
components
datatables/project
grading
milestones/panels
MileStoneCounterPanel.javaMileStoneOverviewPanel.javaMileStoneProgressPanel.javaMilestoneSummaryPanel.java
project/panels
reviewer
statistics
AdminFinalSeminarStatisticsPage.javaIndividualMilestoneDetailsPanel.javaMilestoneStatisticsProgressPanel.javaProjectMilestoneDetailsPanel.java
supervisor/panels
test/java/se/su/dsv/scipro
activityplan
ActivityPlanPanelTest.javaEditActivityPanelTest.javaProjectActivityPlanPageTest.javaProjectEditActivityPageTest.javaSupervisorEditActivityPageTest.javaUpcomingActivitiesPanelTest.java
admin/pages
checklists
datatables/project
finalseminar
@ -145,7 +145,7 @@ public class DataInitializer implements Lifecycle {
|
||||
}
|
||||
|
||||
private void createProject(String title, User headSupervisor, User student1, User student2, User reviewer) {
|
||||
Project project = Project.builder().title(title).projectType(bachelorClass).build();
|
||||
Project project = Project.builder().title(title).projectType(bachelorClass).startDate(LocalDate.now().plusDays(2)).build();
|
||||
project.setHeadSupervisor(headSupervisor);
|
||||
project.addProjectParticipant(student2);
|
||||
project.addProjectParticipant(student1);
|
||||
|
@ -35,6 +35,7 @@ import java.io.InputStream;
|
||||
import java.net.URI;
|
||||
import java.nio.file.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@ -414,7 +415,7 @@ public class ZipReporter implements Reporter {
|
||||
dt("Type"), dd(text(project.getProjectType().getName())),
|
||||
dt("Credits"), dd(text(Integer.toString(project.getCredits()))),
|
||||
dt("Status"), dd(text(project.getProjectStatus().name())),
|
||||
dt("Created"), dd(text(dateString(project.getDateCreated()))),
|
||||
dt("Created"), dd(text(dateString(project.getStartDate()))),
|
||||
dt("Research area"), dd(text(Optional.ofNullable(project.getResearchArea()).map(ResearchArea::getTitle).orElse("None"))),
|
||||
dt("Language"), dd(text(Optional.ofNullable(project.getLanguage()).map(Language::name).orElse("None")))
|
||||
))
|
||||
@ -591,6 +592,10 @@ public class ZipReporter implements Reporter {
|
||||
return dateFormat.format(date);
|
||||
}
|
||||
|
||||
private String dateString(final LocalDate date) {
|
||||
return date.toString();
|
||||
}
|
||||
|
||||
private void copyFiles(final FileSystem zipFileFS, final List<FileDescription> all) throws IOException {
|
||||
final Path uploadedFiles = zipFileFS.getPath("Attachments");
|
||||
Files.createDirectories(uploadedFiles);
|
||||
|
@ -7,28 +7,27 @@ import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.MilestonePhaseTemplate;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
@Transactional
|
||||
public interface MilestoneActivityTemplateRepository extends JpaRepository<MilestoneActivityTemplate, Long>, QueryDslPredicateExecutor<MilestoneActivityTemplate> {
|
||||
|
||||
List<MilestoneActivityTemplate> findActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate);
|
||||
List<MilestoneActivityTemplate> findActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
List<MilestoneActivityTemplate> findAllActivitiesByProjectType(MilestoneActivityTemplate.Type type, Collection<ProjectType> projectType);
|
||||
|
||||
List<MilestoneActivityTemplate> findAllActivitiesInOrder(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate);
|
||||
List<MilestoneActivityTemplate> findAllActivitiesInOrder(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
List<MilestoneActivityTemplate> findByMilestonePhase(MilestonePhaseTemplate milestonePhaseTemplate);
|
||||
|
||||
List<MilestoneActivityTemplate> findActiveByPhase(MilestonePhaseTemplate milestonePhaseTemplate, ProjectType projectType, Date projectStartDate);
|
||||
List<MilestoneActivityTemplate> findActiveByPhase(MilestonePhaseTemplate milestonePhaseTemplate, ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
long countByMilestonePhase(MilestonePhaseTemplate milestonePhaseTemplate);
|
||||
|
||||
long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate);
|
||||
long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
long countActivities(ProjectType projectType, Date projectStartDate);
|
||||
long countActivities(ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
MilestoneActivityTemplate findBySortOrderAndMilestonePhaseTemplate(int sortOrder, MilestonePhaseTemplate milestonePhaseTemplate);
|
||||
}
|
||||
|
@ -9,6 +9,8 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import javax.persistence.EntityManager;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
@ -23,13 +25,13 @@ public class MilestoneActivityTemplateRepositoryImpl extends GenericRepo<Milesto
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MilestoneActivityTemplate> findActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate) {
|
||||
public List<MilestoneActivityTemplate> findActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate) {
|
||||
QMilestoneActivityTemplate activity = QMilestoneActivityTemplate.milestoneActivityTemplate;
|
||||
return createQuery().where(allOf(
|
||||
activity.type.eq(type),
|
||||
activity.projectTypes.any().eq(projectType),
|
||||
activity.deleted.isFalse(),
|
||||
activity.dateCreated.before(projectStartDate)
|
||||
activity.dateCreated.before(java.util.Date.from(projectStartDate.atStartOfDay(ZoneId.systemDefault()).toInstant()))
|
||||
)).fetch();
|
||||
}
|
||||
|
||||
@ -47,13 +49,13 @@ public class MilestoneActivityTemplateRepositoryImpl extends GenericRepo<Milesto
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MilestoneActivityTemplate> findAllActivitiesInOrder(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate) {
|
||||
public List<MilestoneActivityTemplate> findAllActivitiesInOrder(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate) {
|
||||
QMilestoneActivityTemplate activity = QMilestoneActivityTemplate.milestoneActivityTemplate;
|
||||
return createQuery().where(allOf(
|
||||
activity.type.eq(type),
|
||||
activity.projectTypes.any().eq(projectType),
|
||||
activity.deleted.isFalse(),
|
||||
activity.dateCreated.before(projectStartDate)
|
||||
activity.dateCreated.before(java.util.Date.from(projectStartDate.atStartOfDay(ZoneId.systemDefault()).toInstant()))
|
||||
)).orderBy(activity.milestonePhaseTemplate.sortOrder.asc(), activity.sortOrder.asc()).fetch();
|
||||
}
|
||||
|
||||
@ -64,12 +66,12 @@ public class MilestoneActivityTemplateRepositoryImpl extends GenericRepo<Milesto
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MilestoneActivityTemplate> findActiveByPhase(MilestonePhaseTemplate milestonePhaseTemplate, ProjectType projectType, Date projectStartDate) {
|
||||
public List<MilestoneActivityTemplate> findActiveByPhase(MilestonePhaseTemplate milestonePhaseTemplate, ProjectType projectType, LocalDate projectStartDate) {
|
||||
QMilestoneActivityTemplate activity = QMilestoneActivityTemplate.milestoneActivityTemplate;
|
||||
return createQuery().where(allOf(
|
||||
activity.milestonePhaseTemplate.eq(milestonePhaseTemplate),
|
||||
activity.deleted.isFalse(),
|
||||
activity.dateCreated.before(projectStartDate),
|
||||
activity.dateCreated.before(java.util.Date.from(projectStartDate.atStartOfDay(ZoneId.systemDefault()).toInstant())),
|
||||
activity.projectTypes.any().eq(projectType)
|
||||
)).orderBy(activity.sortOrder.asc()).fetch();
|
||||
}
|
||||
@ -83,25 +85,27 @@ public class MilestoneActivityTemplateRepositoryImpl extends GenericRepo<Milesto
|
||||
}
|
||||
|
||||
@Override
|
||||
public long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate) {
|
||||
public long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate) {
|
||||
QMilestoneActivityTemplate activity = QMilestoneActivityTemplate.milestoneActivityTemplate;
|
||||
Date date = Date.from(projectStartDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
return createQuery().where(allOf(
|
||||
activity.type.eq(type),
|
||||
activity.projectTypes.any().eq(projectType),
|
||||
activity.deleted.isFalse(),
|
||||
activity.dateCreated.before(projectStartDate),
|
||||
activity.milestonePhaseTemplate.dateCreated.before(projectStartDate)
|
||||
activity.dateCreated.before(date),
|
||||
activity.milestonePhaseTemplate.dateCreated.before(date)
|
||||
)).select(activity.count()).fetchFirst();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long countActivities(ProjectType projectType, Date projectStartDate) {
|
||||
public long countActivities(ProjectType projectType, LocalDate projectStartDate) {
|
||||
QMilestoneActivityTemplate activity = QMilestoneActivityTemplate.milestoneActivityTemplate;
|
||||
Date date = Date.from(projectStartDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
return createQuery().where(allOf(
|
||||
activity.projectTypes.any().eq(projectType),
|
||||
activity.deleted.isFalse(),
|
||||
activity.dateCreated.before(projectStartDate),
|
||||
activity.milestonePhaseTemplate.dateCreated.before(projectStartDate)
|
||||
activity.dateCreated.before(date),
|
||||
activity.milestonePhaseTemplate.dateCreated.before(date)
|
||||
)).select(activity.count()).fetchFirst();
|
||||
}
|
||||
|
||||
|
@ -7,15 +7,14 @@ import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.springdata.SortOrderService;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
public interface MilestoneActivityTemplateService extends SortOrderService<MilestoneActivityTemplate> {
|
||||
|
||||
List<MilestoneActivityTemplate> findAll();
|
||||
|
||||
List<MilestoneActivityTemplate> getActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate);
|
||||
List<MilestoneActivityTemplate> getActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
List<MilestoneActivityTemplate> getAllActivities(MilestoneActivityTemplate.Type type, Collection<ProjectType> projectTypes);
|
||||
|
||||
@ -25,12 +24,12 @@ public interface MilestoneActivityTemplateService extends SortOrderService<Miles
|
||||
|
||||
List<MilestoneActivityTemplate> getActivitiesInOrder(MilestoneActivityTemplate.Type type, Project project);
|
||||
|
||||
Long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate);
|
||||
Long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
|
||||
MilestoneActivityTemplate save(MilestoneActivityTemplate activity, MilestonePhaseTemplate currentPhase);
|
||||
|
||||
long countActivities(ProjectType projectType, Date projectStartDate);
|
||||
long countActivities(ProjectType projectType, LocalDate projectStartDate);
|
||||
|
||||
MilestoneActivityTemplate findByEvent(String eventName);
|
||||
}
|
||||
|
@ -4,14 +4,14 @@ import org.springframework.data.domain.Sort;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.MilestonePhaseTemplate;
|
||||
import se.su.dsv.scipro.springdata.SortOrderService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
public interface MilestonePhaseTemplateService extends SortOrderService<MilestonePhaseTemplate> {
|
||||
|
||||
List<MilestonePhaseTemplate> findAll(Sort sort);
|
||||
|
||||
List<MilestonePhaseTemplate> findAllActive(Date projectStartDate);
|
||||
List<MilestonePhaseTemplate> findAllActive(LocalDate projectStartDate);
|
||||
|
||||
<S extends MilestonePhaseTemplate> S save(S phase);
|
||||
|
||||
|
@ -10,9 +10,8 @@ import se.su.dsv.scipro.reusable.SciProUtilities;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
public class MilestoneActivityTemplateServiceImpl implements MilestoneActivityTemplateService {
|
||||
|
||||
@ -29,7 +28,7 @@ public class MilestoneActivityTemplateServiceImpl implements MilestoneActivityTe
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MilestoneActivityTemplate> getActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate) {
|
||||
public List<MilestoneActivityTemplate> getActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate) {
|
||||
return milestoneActivityTemplateRepository.findActivities(type, projectType, projectStartDate);
|
||||
}
|
||||
|
||||
@ -45,16 +44,16 @@ public class MilestoneActivityTemplateServiceImpl implements MilestoneActivityTe
|
||||
|
||||
@Override
|
||||
public List<MilestoneActivityTemplate> findActiveByPhase(MilestonePhaseTemplate milestonePhaseTemplate, Project project) {
|
||||
return milestoneActivityTemplateRepository.findActiveByPhase(milestonePhaseTemplate, project.getProjectType(), project.getDateCreated());
|
||||
return milestoneActivityTemplateRepository.findActiveByPhase(milestonePhaseTemplate, project.getProjectType(), project.getStartDate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MilestoneActivityTemplate> getActivitiesInOrder(MilestoneActivityTemplate.Type type, Project project) {
|
||||
return milestoneActivityTemplateRepository.findAllActivitiesInOrder(type, project.getProjectType(), project.getDateCreated());
|
||||
return milestoneActivityTemplateRepository.findAllActivitiesInOrder(type, project.getProjectType(), project.getStartDate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, Date projectStartDate) {
|
||||
public Long countActivities(MilestoneActivityTemplate.Type type, ProjectType projectType, LocalDate projectStartDate) {
|
||||
return milestoneActivityTemplateRepository.countActivities(type, projectType, projectStartDate);
|
||||
}
|
||||
|
||||
@ -67,7 +66,7 @@ public class MilestoneActivityTemplateServiceImpl implements MilestoneActivityTe
|
||||
}
|
||||
|
||||
@Override
|
||||
public long countActivities(ProjectType projectType, Date projectStartDate) {
|
||||
public long countActivities(ProjectType projectType, LocalDate projectStartDate) {
|
||||
return milestoneActivityTemplateRepository.countActivities(projectType, projectStartDate);
|
||||
}
|
||||
|
||||
|
9
core/src/main/java/se/su/dsv/scipro/milestones/service/impl/MilestonePhaseTemplateServiceImpl.java
9
core/src/main/java/se/su/dsv/scipro/milestones/service/impl/MilestonePhaseTemplateServiceImpl.java
@ -11,8 +11,9 @@ import se.su.dsv.scipro.system.AbstractServiceImpl;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import javax.persistence.EntityManager;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
|
||||
import static com.querydsl.core.types.dsl.Expressions.allOf;
|
||||
|
||||
@ -29,10 +30,10 @@ public class MilestonePhaseTemplateServiceImpl extends AbstractServiceImpl<Miles
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MilestonePhaseTemplate> findAllActive(Date projectStartDate) {
|
||||
public List<MilestonePhaseTemplate> findAllActive(LocalDate projectStartDate) {
|
||||
QMilestonePhaseTemplate template = QMilestonePhaseTemplate.milestonePhaseTemplate;
|
||||
return from(template)
|
||||
.where(allOf(template.deleted.isFalse(), template.dateCreated.lt(projectStartDate)))
|
||||
.where(allOf(template.deleted.isFalse(), template.dateCreated.lt(java.util.Date.from(projectStartDate.atStartOfDay(ZoneId.systemDefault()).toInstant()))))
|
||||
.orderBy(template.sortOrder.asc())
|
||||
.fetch();
|
||||
}
|
||||
|
@ -29,6 +29,10 @@ public class Project extends DomainObject {
|
||||
@Basic(optional = false)
|
||||
private String title;
|
||||
|
||||
@Basic(optional = false)
|
||||
@Column(name = "start_date", nullable = false)
|
||||
private LocalDate startDate;
|
||||
|
||||
@Basic
|
||||
@Column(name = "expected_end_date")
|
||||
private LocalDate expectedEndDate;
|
||||
@ -395,6 +399,14 @@ public class Project extends DomainObject {
|
||||
this.language = language;
|
||||
}
|
||||
|
||||
public LocalDate getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(LocalDate startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
if (o == this) return true;
|
||||
@ -418,7 +430,7 @@ public class Project extends DomainObject {
|
||||
return "Project(id=" + this.getId() + ", identifier=" + this.getIdentifier() + ", title=" + this.getTitle() + ", projectParticipants=" + this.getProjectParticipants() + ", headSupervisor=" + this.getHeadSupervisor() + ", projectType=" + this.getProjectType() + ")";
|
||||
}
|
||||
|
||||
private static class Builder implements ITitle, IProjectType, IBuild {
|
||||
private static class Builder implements ITitle, IProjectType, IStartDate, IBuild {
|
||||
private final Project instance = new Project();
|
||||
|
||||
@Override
|
||||
@ -428,7 +440,7 @@ public class Project extends DomainObject {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBuild projectType(ProjectType projectType) {
|
||||
public IStartDate projectType(ProjectType projectType) {
|
||||
instance.setProjectType(projectType);
|
||||
return this;
|
||||
}
|
||||
@ -470,8 +482,8 @@ public class Project extends DomainObject {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBuild dateCreated(Date dateCreated) {
|
||||
instance.setDateCreated(dateCreated);
|
||||
public IBuild startDate(LocalDate startDate) {
|
||||
instance.setStartDate(startDate);
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -486,7 +498,11 @@ public class Project extends DomainObject {
|
||||
}
|
||||
|
||||
public interface IProjectType {
|
||||
IBuild projectType(ProjectType projectType);
|
||||
IStartDate projectType(ProjectType projectType);
|
||||
}
|
||||
|
||||
public interface IStartDate {
|
||||
IBuild startDate(LocalDate startDate);
|
||||
}
|
||||
|
||||
public interface IBuild {
|
||||
@ -502,8 +518,6 @@ public class Project extends DomainObject {
|
||||
|
||||
IBuild stateOfMind(StateOfMind stateOfMind);
|
||||
|
||||
IBuild dateCreated(Date dateCreated);
|
||||
|
||||
Project build();
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,15 @@
|
||||
package se.su.dsv.scipro.report;
|
||||
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.report.calculators.original.*;
|
||||
import se.su.dsv.scipro.report.calculators.original.ReviewerBachelorGradeCalculator;
|
||||
import se.su.dsv.scipro.report.calculators.original.ReviewerMaster15GradeCalculator;
|
||||
import se.su.dsv.scipro.report.calculators.original.ReviewerMaster30GradeCalculator;
|
||||
import se.su.dsv.scipro.report.calculators.original.SupervisorBachelorGradeCalculator;
|
||||
import se.su.dsv.scipro.report.calculators.original.SupervisorMaster15GradeCalculator;
|
||||
import se.su.dsv.scipro.report.calculators.original.SupervisorMaster30GradeCalculator;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
public class GradeCalculatorServiceImpl implements GradeCalculatorService {
|
||||
@Override
|
||||
public GradeCalculator getSupervisorCalculator(final Project project) {
|
||||
@ -85,8 +88,6 @@ public class GradeCalculatorServiceImpl implements GradeCalculatorService {
|
||||
}
|
||||
|
||||
private int getYear(final Project project) {
|
||||
final Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(project.getDateCreated());
|
||||
return calendar.get(Calendar.YEAR);
|
||||
return project.getStartDate().getYear();
|
||||
}
|
||||
}
|
||||
|
@ -107,9 +107,9 @@ public class IdeaExportWorker extends AbstractWorker {
|
||||
Project project = Project.builder()
|
||||
.title(idea.getTitle())
|
||||
.projectType(idea.getProjectType())
|
||||
.startDate(getCourseStartDate(idea))
|
||||
.headSupervisor(idea.getMatch().getSupervisor())
|
||||
.projectParticipants(getAuthors(idea))
|
||||
.dateCreated(getCourseStartDate(idea))
|
||||
.build();
|
||||
project.setExpectedEndDate(idea.getApplicationPeriod().getCourseEndDate());
|
||||
project.setResearchArea(idea.getResearchArea());
|
||||
@ -122,12 +122,10 @@ public class IdeaExportWorker extends AbstractWorker {
|
||||
commitTransaction();
|
||||
}
|
||||
|
||||
private Date getCourseStartDate(final Idea idea) {
|
||||
final Instant courseStartDateTime = idea.getApplicationPeriod()
|
||||
private LocalDate getCourseStartDate(final Idea idea) {
|
||||
return idea.getApplicationPeriod()
|
||||
.getCourseStartDateTime()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toInstant();
|
||||
return Date.from(courseStartDateTime);
|
||||
.toLocalDate();
|
||||
}
|
||||
|
||||
private void createFirstMeetingEvent(Idea idea, Project project) {
|
||||
|
@ -0,0 +1,5 @@
|
||||
ALTER TABLE project ADD COLUMN start_date DATE;
|
||||
|
||||
UPDATE project SET start_date = DATE(dateCreated);
|
||||
|
||||
ALTER TABLE project MODIFY COLUMN start_date DATE NOT NULL;
|
@ -20,6 +20,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
@ -167,6 +168,7 @@ public class ActivityPlanFacadeImplIntegrationTest extends IntegrationTest {
|
||||
project.setHeadSupervisor(createUser());
|
||||
project.setTitle("");
|
||||
project.setProjectType(createProjectType());
|
||||
project.setStartDate(LocalDate.now());
|
||||
return save(project);
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -41,6 +42,7 @@ public class ActivityPlanFacadeImplIntegrationTestChecklistMethods extends Integ
|
||||
Project project = Project.builder().
|
||||
title("project").
|
||||
projectType(bachelor).
|
||||
startDate(LocalDate.now()).
|
||||
headSupervisor(employee1).
|
||||
build();
|
||||
project = save(project);
|
||||
|
@ -24,6 +24,8 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.hasItem;
|
||||
@ -34,7 +36,7 @@ import static org.mockito.Mockito.*;
|
||||
public class ActivityPlanFacadeImplTest {
|
||||
|
||||
static final ProjectType PROJECT_TYPE = new ProjectType(DegreeType.BACHELOR, "bach", "bach");
|
||||
static final Project SOME_PROJECT = Project.builder().title("title").projectType(PROJECT_TYPE).build();
|
||||
static final Project SOME_PROJECT = Project.builder().title("title").projectType(PROJECT_TYPE).startDate(LocalDate.now()).build();
|
||||
static final ChecklistTemplate SOME_TEMPLATE = new ChecklistTemplate("name", new UserBuilder().create());
|
||||
static final String SOME_NAME = "someName";
|
||||
static final String SOME_TITLE = "someTitle";
|
||||
|
@ -11,6 +11,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.hasItem;
|
||||
@ -90,7 +91,7 @@ public class ChecklistTemplateServiceImplTest extends IntegrationTest {
|
||||
@Test
|
||||
public void find_peer_request_checklists() {
|
||||
ProjectType master = save(new ProjectType(DegreeType.MASTER, "Master", "Master"));
|
||||
Project project = save(Project.builder().title("Title").projectType(master).headSupervisor(user).build());
|
||||
Project project = save(Project.builder().title("Title").projectType(master).startDate(LocalDate.now()).headSupervisor(user).build());
|
||||
template.getCategories().add(save(new ChecklistCategory(ChecklistTemplateServiceImpl.PEER)));
|
||||
template.getProjectTypes().add(master);
|
||||
|
||||
|
@ -20,6 +20,7 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.Optional;
|
||||
@ -52,7 +53,7 @@ public class ReviewerAssignedNotificationsTest {
|
||||
reviewer.setId(1L);
|
||||
TreeSet<User> reviewers = new TreeSet<>(new User.ByNameComparator());
|
||||
reviewers.addAll(Collections.singleton(reviewer));
|
||||
project = Project.builder().title("My project").projectType(master).reviewers(reviewers).build();
|
||||
project = Project.builder().title("My project").projectType(master).startDate(LocalDate.now()).reviewers(reviewers).build();
|
||||
|
||||
when(roughDraftApprovalService.findBy(project)).thenReturn(Optional.empty());
|
||||
when(finalSeminarApprovalService.findBy(project)).thenReturn(Optional.empty());
|
||||
|
@ -24,6 +24,7 @@ import se.su.dsv.scipro.system.ResearchArea;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.ObjectMother;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.mockito.Mockito.verify;
|
||||
@ -51,7 +52,7 @@ public class ReviewerSupportMailerTest {
|
||||
researchArea.setTitle("IT");
|
||||
researchAreas.add(researchArea);
|
||||
supervisor.setResearchAreas(new HashSet<>(researchAreas));
|
||||
final Project project = Project.builder().title("Title").projectType(bachelor).headSupervisor(supervisor).build();
|
||||
final Project project = Project.builder().title("Title").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(supervisor).build();
|
||||
final FileDescription fileDescription = new FileDescription();
|
||||
final FileReference fsaThesis = new FileReference();
|
||||
fsaThesis.setFileDescription(fileDescription);
|
||||
|
@ -20,6 +20,7 @@ import se.su.dsv.scipro.reviewing.RoughDraftApprovalRequestedEvent;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
@ -41,7 +42,7 @@ public class ReviewingNotificationsTest {
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
project = Project.builder().title("Title").projectType(bachelor).build();
|
||||
project = Project.builder().title("Title").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
final FileDescription fileDescription = new FileDescription();
|
||||
finalSeminarApproval = new FinalSeminarApproval(project, referenceTo(fileDescription), "hello", new Date());
|
||||
roughDraftApproval = new RoughDraftApproval(project, referenceTo(fileDescription), "hello", new Date());
|
||||
|
@ -1,10 +1,5 @@
|
||||
package se.su.dsv.scipro.finalseminar;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
@ -12,6 +7,13 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.util.Either;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class ExtendedFinalSeminarServiceImplTest {
|
||||
|
||||
FinalSeminar exempted;
|
||||
@ -22,9 +24,9 @@ public class ExtendedFinalSeminarServiceImplTest {
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
ProjectType master = new ProjectType(DegreeType.MASTER, "Master", "Master");
|
||||
Project exemptedProject = Project.builder().title("Title").projectType(master).build();
|
||||
Project exemptedProject = Project.builder().title("Title").projectType(master).startDate(LocalDate.now()).build();
|
||||
exemptedProject.setFinalSeminarRuleExempted(true);
|
||||
Project notExemptedProject = Project.builder().title("Title").projectType(master).build();
|
||||
Project notExemptedProject = Project.builder().title("Title").projectType(master).startDate(LocalDate.now()).build();
|
||||
|
||||
exempted = new FinalSeminar(exemptedProject);
|
||||
notExempted = new FinalSeminar(notExemptedProject);
|
||||
|
@ -12,6 +12,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@ -68,6 +69,7 @@ public class FinalSeminarOppositionServiceImplIntegrationTest extends Integratio
|
||||
Project project = Project.builder()
|
||||
.title("title")
|
||||
.projectType(projectType)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(createUser())
|
||||
.build();
|
||||
return save(project);
|
||||
|
@ -10,6 +10,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.TreeSet;
|
||||
@ -58,6 +59,7 @@ public class FinalSeminarRespondentServiceImplIntegrationTest extends Integratio
|
||||
Project project = Project.builder()
|
||||
.title("title")
|
||||
.projectType(projectType)
|
||||
.startDate(LocalDate.now())
|
||||
.projectParticipants(projectParticipants)
|
||||
.headSupervisor(createUser())
|
||||
.build();
|
||||
|
@ -15,6 +15,7 @@ import se.su.dsv.scipro.system.*;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -349,7 +350,7 @@ public class FinalSeminarServiceImplIntegrationTest extends IntegrationTest {
|
||||
}
|
||||
|
||||
private Project createProject(User supervisor, ProjectType projectType) {
|
||||
Project project = Project.builder().title("Some title").projectType(projectType).headSupervisor(supervisor).build();
|
||||
Project project = Project.builder().title("Some title").projectType(projectType).startDate(LocalDate.now()).headSupervisor(supervisor).build();
|
||||
return save(project);
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,8 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@ -55,7 +57,7 @@ public class FinalSeminarUploadControllerImplTest {
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).build();
|
||||
project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).startDate(LocalDate.now()).build();
|
||||
project.setId(812L);
|
||||
seminar = new FinalSeminar();
|
||||
seminar.setId(738L);
|
||||
|
@ -16,6 +16,8 @@ import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.everyItem;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
@ -40,7 +42,7 @@ public class FinalThesisServiceImplTest extends IntegrationTest {
|
||||
ProjectType bachelor = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
uploader = save(User.builder().firstName("Bob").lastName("Sponge").emailAddress("bob@example.com").build());
|
||||
project = save(Project.builder().title("Some title").projectType(bachelor).headSupervisor(headSupervisor).build());
|
||||
project = save(Project.builder().title("Some title").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
source = new NotificationSource();
|
||||
name = "name";
|
||||
contentType = TEXT_PLAIN;
|
||||
|
@ -13,6 +13,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.StreamingUpload;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
@ -36,7 +37,7 @@ public class ProjectForumServiceImplTest extends ForumModuleTest {
|
||||
projectType.addModule(ProjectModule.FORUM);
|
||||
save(projectType);
|
||||
final User supervisor = save(User.builder().firstName("Bob").lastName("The Builder").emailAddress("bob@example.com").build());
|
||||
project = Project.builder().title("Some title").projectType(projectType).headSupervisor(supervisor).build();
|
||||
project = Project.builder().title("Some title").projectType(projectType).startDate(LocalDate.now()).headSupervisor(supervisor).build();
|
||||
save(project);
|
||||
user = User.builder().firstName("Stina").lastName("Student").emailAddress("stina@example.com").build();
|
||||
save(user);
|
||||
|
@ -11,6 +11,8 @@ import se.su.dsv.scipro.system.User;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class ForumMailServiceImplTest extends ForumMailModuleTest {
|
||||
@ -44,7 +46,7 @@ public class ForumMailServiceImplTest extends ForumMailModuleTest {
|
||||
save(forumThread);
|
||||
ProjectType bachelor = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
User user = save(User.builder().firstName("Bob").lastName("Example").emailAddress("bob@example.com").build());
|
||||
Project project = save(Project.builder().title("Project").projectType(bachelor).headSupervisor(user).build());
|
||||
Project project = save(Project.builder().title("Project").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(user).build());
|
||||
ProjectThread projectThread = new ProjectThread();
|
||||
projectThread.setForumThread(forumThread);
|
||||
projectThread.setProject(project);
|
||||
|
@ -17,6 +17,7 @@ import se.su.dsv.scipro.test.ObjectMother;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.mail.Part;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.mockito.Mockito.*;
|
||||
@ -100,7 +101,7 @@ public class ReadForumMailTest extends ForumMailModuleTest {
|
||||
private ProjectThread createProjectThread() {
|
||||
ProjectType bachelor = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
User supervisor = createUser();
|
||||
Project project = save(Project.builder().title("Project").projectType(bachelor).headSupervisor(supervisor).build());
|
||||
Project project = save(Project.builder().title("Project").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(supervisor).build());
|
||||
ProjectThread projectThread = new ProjectThread();
|
||||
projectThread.setProject(project);
|
||||
projectThread.setForumThread(createThread());
|
||||
|
@ -22,6 +22,8 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.DomainObjects;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
@ -62,7 +64,7 @@ public class SendForumMailTest {
|
||||
final User threadMember = newUser(2L);
|
||||
coSupervisor = newUser(3L);
|
||||
ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
Project project = Project.builder().title("Project").projectType(bachelor).headSupervisor(poster).build();
|
||||
Project project = Project.builder().title("Project").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(poster).build();
|
||||
project.addProjectParticipant(threadMember);
|
||||
project.addCoSupervisor(coSupervisor);
|
||||
ForumThread forumThread = new ForumThread();
|
||||
|
@ -9,6 +9,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
|
||||
@ -37,7 +38,7 @@ public class GroupServiceImplTest extends IntegrationTest {
|
||||
cosupervisor = saveUser("cosupervisor", "test", "reviewer@example.com");
|
||||
projectType = save(new ProjectType(DegreeType.BACHELOR, "b", "b"));
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
Project project = save(Project.builder().title("title").projectType(projectType).headSupervisor(headSupervisor).build());
|
||||
Project project = save(Project.builder().title("title").projectType(projectType).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
project.addProjectParticipant(author);
|
||||
project.addReviewer(reviewer);
|
||||
project.addCoSupervisor(cosupervisor);
|
||||
@ -108,7 +109,7 @@ public class GroupServiceImplTest extends IntegrationTest {
|
||||
another.setTitle("hi");
|
||||
another.setUser(creator);
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
Project anotherProject = save(Project.builder().title("another").projectType(projectType).headSupervisor(headSupervisor).build());
|
||||
Project anotherProject = save(Project.builder().title("another").projectType(projectType).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
another.setProjects(new HashSet<>(Collections.singletonList(anotherProject)));
|
||||
save(another);
|
||||
GroupService.Filter filter = new GroupService.Filter();
|
||||
|
@ -12,6 +12,7 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectModule;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
@ -78,7 +79,7 @@ public class AddActivityPlanOnProjectStartTest {
|
||||
}
|
||||
|
||||
private Tuple2<Project, ProjectStartedEvent> prepareEvent(final ProjectType projectType, final ActivityPlanTemplate activityPlanTemplate) {
|
||||
Project project = Project.builder().title("Title").projectType(projectType).build();
|
||||
Project project = Project.builder().title("Title").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
ApplicationPeriod applicationPeriod = new ApplicationPeriod();
|
||||
ApplicationPeriodProjectType applicationPeriodProjectType = new ApplicationPeriodProjectType(applicationPeriod, projectType);
|
||||
applicationPeriodProjectType.setActivityPlanTemplate(activityPlanTemplate);
|
||||
|
@ -1,6 +1,5 @@
|
||||
package se.su.dsv.scipro.milestones.service.impl;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -9,9 +8,7 @@ import org.mockito.AdditionalAnswers;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.invocation.InvocationOnMock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepository;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.MilestonePhaseTemplate;
|
||||
@ -20,6 +17,7 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.test.DomainObjects;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@ -32,12 +30,12 @@ public class MilestoneActivityTemplateServiceImplTest {
|
||||
MilestoneActivityTemplateRepository milestoneActivityTemplateRepository;
|
||||
@InjectMocks
|
||||
MilestoneActivityTemplateServiceImpl mileStoneActivityService;
|
||||
private Date date;
|
||||
private LocalDate date;
|
||||
private ProjectType projectType;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
date = new DateTime().minusDays(1).toDate();
|
||||
date = LocalDate.now().minusDays(1);
|
||||
projectType = new ProjectType(DegreeType.BACHELOR, "any", "any");
|
||||
}
|
||||
|
||||
@ -169,10 +167,10 @@ public class MilestoneActivityTemplateServiceImplTest {
|
||||
@Test
|
||||
public void testFindActiveActivitiesByPhase() {
|
||||
List<MilestoneActivityTemplate> list = Collections.singletonList(createActivity(MilestoneActivityTemplate.Type.PROJECT, "Create seminar", "description", 0));
|
||||
Date date = new DateTime().minusDays(1).toDate();
|
||||
LocalDate date = LocalDate.now().minusDays(1);
|
||||
ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "bachelor", "bachelor");
|
||||
Project project = Project.builder().title("title").projectType(bachelor).build();
|
||||
project.setDateCreated(date);
|
||||
Project project = Project.builder().title("title").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
project.setStartDate(date);
|
||||
when(milestoneActivityTemplateRepository.findActiveByPhase(isA(MilestonePhaseTemplate.class), eq(bachelor), eq(date))).thenReturn(list);
|
||||
|
||||
List<MilestoneActivityTemplate> serviceList = mileStoneActivityService.findActiveByPhase(mock(MilestonePhaseTemplate.class), project);
|
||||
@ -183,7 +181,7 @@ public class MilestoneActivityTemplateServiceImplTest {
|
||||
@Test
|
||||
public void testCountActivitiesByTypeAndProjectTypeAndDate() {
|
||||
Long activityCount = 3L;
|
||||
Date date = new DateTime().minusDays(1).toDate();
|
||||
LocalDate date = LocalDate.now().minusDays(1);
|
||||
when(milestoneActivityTemplateRepository.countActivities(eq(MilestoneActivityTemplate.Type.PROJECT), isA(ProjectType.class), eq(date))).thenReturn(activityCount);
|
||||
|
||||
Long serviceCount = mileStoneActivityService.countActivities(MilestoneActivityTemplate.Type.PROJECT, mock(ProjectType.class), date);
|
||||
@ -193,7 +191,7 @@ public class MilestoneActivityTemplateServiceImplTest {
|
||||
@Test
|
||||
public void countActivitiesByProjectTypeAndDate() {
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
Date projectStartDate = new DateTime().minusDays(1).toDate();
|
||||
LocalDate projectStartDate = LocalDate.now().minusDays(1);
|
||||
long expected = 3L;
|
||||
|
||||
when(milestoneActivityTemplateRepository.countActivities(projectType, projectStartDate)).thenReturn(expected);
|
||||
@ -266,10 +264,10 @@ public class MilestoneActivityTemplateServiceImplTest {
|
||||
@Test
|
||||
public void testGetActivitiesInOrder() {
|
||||
List<MilestoneActivityTemplate> list = Collections.singletonList(new MilestoneActivityTemplate());
|
||||
Date dateCreated = new DateTime().minusDays(1).toDate();
|
||||
LocalDate dateCreated = LocalDate.now().minusDays(1);
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "bachelor", "bachelor");
|
||||
Project project = Project.builder().title("title").projectType(projectType).build();
|
||||
project.setDateCreated(dateCreated);
|
||||
Project project = Project.builder().title("title").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
project.setStartDate(dateCreated);
|
||||
|
||||
when(milestoneActivityTemplateRepository.findAllActivitiesInOrder(MilestoneActivityTemplate.Type.PROJECT, projectType, dateCreated)).thenReturn(list);
|
||||
List<MilestoneActivityTemplate> serviceList = mileStoneActivityService.getActivitiesInOrder(MilestoneActivityTemplate.Type.PROJECT, project);
|
||||
|
@ -8,12 +8,13 @@ import se.su.dsv.scipro.milestones.dataobjects.MilestonePhaseTemplate;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.hasItem;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class MilestonePhaseTemplateServiceImplTest extends IntegrationTest {
|
||||
|
||||
@ -38,22 +39,22 @@ public class MilestonePhaseTemplateServiceImplTest extends IntegrationTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindAllActive() {
|
||||
public void phases_created_after_project_start_are_not_included() {
|
||||
// Have to add some amount of time or else the test will fail if it runs too fast since the new Date() here
|
||||
// will be equal to the new Date() called when saving the first phase template in #setUp
|
||||
List<MilestonePhaseTemplate> servicePhases = service.findAllActive(new Date(new Date().getTime() + 20000));
|
||||
List<MilestonePhaseTemplate> servicePhases = service.findAllActive(LocalDate.now().plusDays(1));
|
||||
|
||||
assertEquals(servicePhases.size(), 1);
|
||||
assertEquals(servicePhases.get(0), first);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSavePhase() {
|
||||
public void new_phases_are_active_from_the_next_day() {
|
||||
String title = "Title";
|
||||
String desc = "desc";
|
||||
MilestonePhaseTemplate phase = service.save(new MilestonePhaseTemplate(title, desc));
|
||||
|
||||
List<MilestonePhaseTemplate> allActive = service.findAllActive(Date.from(phase.getDateCreated().toInstant().plusSeconds(1)));
|
||||
List<MilestonePhaseTemplate> allActive = service.findAllActive(LocalDate.now().plusDays(1));
|
||||
assertThat(allActive, hasItem(phase));
|
||||
}
|
||||
|
||||
|
3
core/src/test/java/se/su/dsv/scipro/milestones/service/impl/MilestoneServiceImplIntegrationTest.java
3
core/src/test/java/se/su/dsv/scipro/milestones/service/impl/MilestoneServiceImplIntegrationTest.java
@ -15,6 +15,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
@ -130,6 +131,6 @@ public class MilestoneServiceImplIntegrationTest extends IntegrationTest {
|
||||
|
||||
private Project createProject() {
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
return save(Project.builder().title("Title").projectType(bachelor).headSupervisor(headSupervisor).build());
|
||||
return save(Project.builder().title("Title").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
}
|
||||
}
|
||||
|
3
core/src/test/java/se/su/dsv/scipro/milestones/service/impl/MilestoneStatisticsServiceImplTest.java
3
core/src/test/java/se/su/dsv/scipro/milestones/service/impl/MilestoneStatisticsServiceImplTest.java
@ -13,6 +13,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
@ -65,7 +66,7 @@ public class MilestoneStatisticsServiceImplTest extends IntegrationTest {
|
||||
|
||||
private Project createProject() {
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
return save(Project.builder().title("Title").projectType(bachelor).headSupervisor(headSupervisor).build());
|
||||
return save(Project.builder().title("Title").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
}
|
||||
|
||||
private MilestoneActivityTemplate createMilestone(final MilestonePhaseTemplate phase) {
|
||||
|
@ -16,6 +16,8 @@ import se.su.dsv.scipro.report.ReviewerGradingReportSubmittedEvent;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@ -43,7 +45,7 @@ public class GradingNotificationsTest {
|
||||
}
|
||||
|
||||
private Project newProject() {
|
||||
return Project.builder().title("Some project").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).build();
|
||||
return Project.builder().title("Some project").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).startDate(LocalDate.now()).build();
|
||||
}
|
||||
|
||||
private ReviewerGradingReport newReviewerReport(final Project project) {
|
||||
|
@ -17,6 +17,8 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.ArgumentMatchers.isA;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@ -29,7 +31,7 @@ public class GradingReportNotificationsTest {
|
||||
private Notifications gradingNotifications;
|
||||
|
||||
public static final ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
public static final Project project = Project.builder().title("My project").projectType(bachelor).build();
|
||||
public static final Project project = Project.builder().title("My project").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
public static final User author = User.builder().firstName("First").lastName("Author").emailAddress("first@example.com").build();
|
||||
public static final GradingReportTemplate gradingReportTemplate = new GradingReportTemplate(bachelor, 15);
|
||||
public static final SupervisorGradingReport supervisorGradingReport = gradingReportTemplate.createSupervisorReport(project, author);
|
||||
|
@ -14,6 +14,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@ -90,7 +91,7 @@ public class NotificationServiceImplIntegrationTest extends IntegrationTest {
|
||||
public void mark_read_for_project() {
|
||||
final User user = save(User.builder().firstName("Bob").lastName("Sponge").emailAddress("bob@example.com").build());
|
||||
final ProjectType bachelor = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
final Project project = save(Project.builder().title("Project").projectType(bachelor).headSupervisor(user).build());
|
||||
final Project project = save(Project.builder().title("Project").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(user).build());
|
||||
final ProjectEvent projectEvent = new ProjectEvent();
|
||||
projectEvent.setProject(project);
|
||||
final Notification notification = createNotification(user);
|
||||
|
@ -13,6 +13,8 @@ import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.hasItem;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
@ -82,7 +84,7 @@ public class CommentThreadServiceImplTest extends IntegrationTest {
|
||||
|
||||
private Project createProject() {
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
return save(Project.builder().title("project").projectType(projectType).headSupervisor(headSupervisor).build());
|
||||
return save(Project.builder().title("project").projectType(projectType).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
}
|
||||
|
||||
private void createDefaultProjectType() {
|
||||
|
@ -24,6 +24,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.Dates;
|
||||
import se.su.dsv.scipro.test.ObjectMother;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
|
||||
@ -253,7 +254,7 @@ public class PeerPortalImplTest {
|
||||
private Project projectWithSettings() {
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "b", "b");
|
||||
projectType.setProjectTypeSettings(new ProjectTypeSettings());
|
||||
return Project.builder().title("title").projectType(projectType).build();
|
||||
return Project.builder().title("title").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
}
|
||||
|
||||
private void addSomeAnswers(PeerReview peerReview) {
|
||||
@ -288,7 +289,7 @@ public class PeerPortalImplTest {
|
||||
ProjectTypeSettings projectTypeSettings = new ProjectTypeSettings();
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
projectType.setProjectTypeSettings(projectTypeSettings);
|
||||
return Project.builder().title("Peer project").projectType(projectType).build();
|
||||
return Project.builder().title("Peer project").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
}
|
||||
|
||||
private PeerReview submittedReview() {
|
||||
|
@ -13,6 +13,7 @@ import se.su.dsv.scipro.test.Dates;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.EnumSet;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
@ -38,7 +39,7 @@ public class PeerRequestServiceImplTest extends IntegrationTest {
|
||||
requester = save(User.builder().firstName("Bob").lastName("Sponge").emailAddress("bob@example.com").build());
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
projectType = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
project = Project.builder().title("title").projectType(projectType).headSupervisor(headSupervisor).build();
|
||||
project = Project.builder().title("title").projectType(projectType).startDate(LocalDate.now()).headSupervisor(headSupervisor).build();
|
||||
project.addProjectParticipant(requester);
|
||||
save(project);
|
||||
this.cancelled = newRequest(project, requester, RequestStatus.CANCELED);
|
||||
|
@ -13,6 +13,7 @@ import se.su.dsv.scipro.test.Dates;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
@ -110,7 +111,7 @@ public class PeerReviewServiceImplIntegrationTest extends IntegrationTest {
|
||||
|
||||
private Project createProject() {
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
return save(Project.builder().title("Peer project").projectType(projectType).headSupervisor(headSupervisor).build());
|
||||
return save(Project.builder().title("Peer project").projectType(projectType).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
}
|
||||
|
||||
private void createDefaultProjectType() {
|
||||
|
@ -13,6 +13,7 @@ import se.su.dsv.scipro.test.Dates;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.EnumSet;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
@ -28,7 +29,7 @@ public class PeerReviewServiceImplTest extends IntegrationTest {
|
||||
private PeerReviewServiceImpl peerReviewService;
|
||||
|
||||
public static final ProjectType SOME_PROJECT_TYPE = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
public static final Project SOME_PROJECT = Project.builder().title("Some title").projectType(SOME_PROJECT_TYPE).build();
|
||||
public static final Project SOME_PROJECT = Project.builder().title("Some title").projectType(SOME_PROJECT_TYPE).startDate(LocalDate.now()).build();
|
||||
private PeerRequest peerRequest;
|
||||
private User reviewer;
|
||||
private PeerReview completed;
|
||||
@ -97,7 +98,7 @@ public class PeerReviewServiceImplTest extends IntegrationTest {
|
||||
private Project newProject() {
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
ProjectType projectType = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
return save(Project.builder().title("Title").projectType(projectType).headSupervisor(headSupervisor).build());
|
||||
return save(Project.builder().title("Title").projectType(projectType).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
}
|
||||
|
||||
private PeerReview newReview(PeerReview.ReviewStatus status) {
|
||||
|
@ -7,6 +7,8 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.ProjectTypeSettings;
|
||||
import se.su.dsv.scipro.test.Dates;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class PeerReviewTest {
|
||||
@ -61,7 +63,7 @@ public class PeerReviewTest {
|
||||
ProjectTypeSettings projectTypeSettings = new ProjectTypeSettings();
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
projectType.setProjectTypeSettings(projectTypeSettings);
|
||||
return Project.builder().title("Peer project").projectType(projectType).build();
|
||||
return Project.builder().title("Peer project").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -191,6 +192,7 @@ public class TestPeerReview extends IntegrationTest {
|
||||
Project newProject = Project.builder().
|
||||
title("Project title").
|
||||
projectType(projectType).
|
||||
startDate(LocalDate.now()).
|
||||
headSupervisor(headSupervisor).
|
||||
projectStatus(status).
|
||||
build();
|
||||
|
@ -11,6 +11,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
@ -274,6 +275,7 @@ public class ProjectServiceImplIntegrationTest extends IntegrationTest {
|
||||
project.setProjectType(projectType);
|
||||
project.setProjectStatus(active);
|
||||
project.setHeadSupervisor(headSupervisor);
|
||||
project.setStartDate(LocalDate.now());
|
||||
save(project);
|
||||
return project;
|
||||
}
|
||||
|
@ -7,9 +7,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.AdditionalAnswers;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.invocation.InvocationOnMock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.mockito.stubbing.Answer;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
@ -17,10 +15,13 @@ import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import javax.inject.Provider;
|
||||
import javax.persistence.EntityManager;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.isA;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class ProjectServiceImplTest {
|
||||
@ -47,6 +48,7 @@ public class ProjectServiceImplTest {
|
||||
project = Project.builder()
|
||||
.title("Some title")
|
||||
.projectType(SOME_PROJECT_TYPE)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(headSupervisorUser)
|
||||
.stateOfMind(StateOfMind.FINE)
|
||||
.build();
|
||||
|
@ -5,6 +5,8 @@ import org.junit.jupiter.api.Test;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.hamcrest.core.IsEqual.equalTo;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
@ -16,7 +18,7 @@ public class ProjectTest {
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
project = Project.builder().title("Foo").projectType(bachelor).build();
|
||||
project = Project.builder().title("Foo").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -9,6 +9,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@ -39,13 +40,14 @@ public class TestProject extends IntegrationTest {
|
||||
project1 = Project.builder().
|
||||
title("Project 1").
|
||||
projectType(bachelor).
|
||||
startDate(LocalDate.now()).
|
||||
headSupervisor(employeeUser).
|
||||
projectStatus(ProjectStatus.ACTIVE).
|
||||
build();
|
||||
project1.addProjectParticipant(authorUser);
|
||||
project1 = save(project1);
|
||||
|
||||
project2 = Project.builder().title("Tester 2").projectType(master).headSupervisor(employeeUser).projectStatus(ProjectStatus.INACTIVE).build();
|
||||
project2 = Project.builder().title("Tester 2").projectType(master).startDate(LocalDate.now()).headSupervisor(employeeUser).projectStatus(ProjectStatus.INACTIVE).build();
|
||||
project2.addProjectParticipant(authorUser);
|
||||
project2 = save(project2);
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package se.su.dsv.scipro.report;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import se.su.dsv.scipro.finalseminar.FinalSeminar;
|
||||
@ -15,11 +14,14 @@ import se.su.dsv.scipro.test.IntegrationTest;
|
||||
import se.su.dsv.scipro.util.Either;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static se.su.dsv.scipro.report.GradingReportServiceImpl.OPPOSITION_ENGLISH;
|
||||
import static se.su.dsv.scipro.report.GradingReportServiceImpl.OPPOSITION_SWEDISH;
|
||||
|
||||
@ -298,7 +300,7 @@ public class GradingReportServiceImplIntegrationTest extends IntegrationTest {
|
||||
private Project createProject(ProjectType projectType, int credits) {
|
||||
TreeSet<User> projectParticipants = new TreeSet<>(new User.ByNameComparator());
|
||||
projectParticipants.addAll(Collections.singletonList(student));
|
||||
Project project = Project.builder().title("some title").projectType(projectType).projectParticipants(projectParticipants).headSupervisor(createSupervisor()).build();
|
||||
Project project = Project.builder().title("some title").projectType(projectType).startDate(LocalDate.now()).projectParticipants(projectParticipants).headSupervisor(createSupervisor()).build();
|
||||
project.setCredits(credits);
|
||||
return save(project);
|
||||
}
|
||||
|
@ -14,6 +14,8 @@ import se.su.dsv.scipro.system.User;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.isA;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@ -32,7 +34,7 @@ public class GradingReportServiceImplTest {
|
||||
public void setUp() throws Exception {
|
||||
final ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
final GradingReportTemplate gradingReportTemplate = new GradingReportTemplate(bachelor, 15);
|
||||
final Project project = Project.builder().title("My project").projectType(bachelor).build();
|
||||
final Project project = Project.builder().title("My project").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
final User user = User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build();
|
||||
reviewerReport = gradingReportTemplate.createReviewerReport(project);
|
||||
supervisorReport = gradingReportTemplate.createSupervisorReport(project, user);
|
||||
|
@ -10,6 +10,7 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@ -90,7 +91,7 @@ public class GradingReportTemplateTest {
|
||||
}
|
||||
|
||||
private Project createProject(ProjectType projectType) {
|
||||
return Project.builder().title("Foo").projectType(projectType).build();
|
||||
return Project.builder().title("Foo").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
}
|
||||
|
||||
private GradingReportTemplate createBachelorTemplate() {
|
||||
|
@ -7,6 +7,7 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@ -22,7 +23,7 @@ public class SupervisorGradingReportTest {
|
||||
@BeforeEach
|
||||
public void prepareTemplate() {
|
||||
ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "bachelor", "bachelor");
|
||||
project = Project.builder().title("Foo").projectType(bachelor).build();
|
||||
project = Project.builder().title("Foo").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
|
||||
gradingReportTemplate = new GradingReportTemplate(bachelor, 30);
|
||||
addCriteria(gradingReportTemplate);
|
||||
|
@ -9,6 +9,7 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
@ -28,7 +29,7 @@ public class FinalSeminarApprovalServiceImplTest extends ReviewingModuleTest {
|
||||
User reviewer = save(User.builder().firstName("Ronny").lastName("Reviewer").emailAddress("reviewer@dsv.su.se").build());
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
ProjectType bachelor = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
project = save(Project.builder().title("My project").projectType(bachelor).headSupervisor(headSupervisor).build());
|
||||
project = save(Project.builder().title("My project").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
project.addReviewer(reviewer);
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ import se.su.dsv.scipro.mail.MailEvent;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@ -71,7 +72,7 @@ public class ReviewerDecisionReminderWorkerTest {
|
||||
|
||||
private Project newProject() {
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
Project project = Project.builder().title("This is a title").projectType(projectType).build();
|
||||
Project project = Project.builder().title("This is a title").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
project.addReviewer(newUser());
|
||||
project.setHeadSupervisor(newUser());
|
||||
project.setId(555L);
|
||||
|
@ -19,6 +19,7 @@ import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
import java.util.Optional;
|
||||
|
||||
@ -79,6 +80,6 @@ public class ReviewerInteractionServiceImplTest {
|
||||
|
||||
private Project createProject() {
|
||||
final ProjectType bachelor = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
return Project.builder().title("Project").projectType(bachelor).build();
|
||||
return Project.builder().title("Project").projectType(bachelor).startDate(LocalDate.now()).build();
|
||||
}
|
||||
}
|
@ -12,6 +12,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.util.Either;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.any;
|
||||
@ -37,7 +38,7 @@ public class ReviewingServiceImplTest extends ReviewingModuleTest {
|
||||
reviewer = save(User.builder().firstName("Ronny").lastName("Reviewer").emailAddress("reviewer@dsv.su.se").build());
|
||||
User headSupervisor = save(User.builder().firstName("John").lastName("Doe").emailAddress("john@example.com").build());
|
||||
ProjectType bachelor = save(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"));
|
||||
project = save(Project.builder().title("My project").projectType(bachelor).headSupervisor(headSupervisor).build());
|
||||
project = save(Project.builder().title("My project").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(headSupervisor).build());
|
||||
project.addReviewer(reviewer);
|
||||
}
|
||||
|
||||
|
@ -1,17 +1,19 @@
|
||||
package se.su.dsv.scipro.system;
|
||||
|
||||
import org.hamcrest.CoreMatchers;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.test.IntegrationTest;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class ProjectTypeServiceImplIntegrationTest extends IntegrationTest {
|
||||
|
||||
@ -47,8 +49,8 @@ public class ProjectTypeServiceImplIntegrationTest extends IntegrationTest {
|
||||
ProjectType bachelor = createProjectType(DegreeType.BACHELOR, "bachelor");
|
||||
createProjectType(DegreeType.MASTER, "master");
|
||||
|
||||
save(Project.builder().title("bachelor").projectType(bachelor).headSupervisor(supervisor).build());
|
||||
save(Project.builder().title("another bachelor").projectType(bachelor).headSupervisor(supervisor).build());
|
||||
save(Project.builder().title("bachelor").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(supervisor).build());
|
||||
save(Project.builder().title("another bachelor").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(supervisor).build());
|
||||
|
||||
List<ProjectType> projectTypes = projectTypeService.findBySupervisorProjects(supervisor);
|
||||
|
||||
@ -62,8 +64,8 @@ public class ProjectTypeServiceImplIntegrationTest extends IntegrationTest {
|
||||
ProjectType bachelor = createProjectType(DegreeType.BACHELOR, "bachelor");
|
||||
ProjectType master = createProjectType(DegreeType.MASTER, "master");
|
||||
|
||||
save(Project.builder().title("bachelor").projectType(bachelor).headSupervisor(supervisor).build());
|
||||
Project reviewingProject = Project.builder().title("another bachelor").projectType(master).headSupervisor(save(User.builder().firstName("Bob").lastName("Sponge").emailAddress("bob@example.com").build())).build();
|
||||
save(Project.builder().title("bachelor").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(supervisor).build());
|
||||
Project reviewingProject = Project.builder().title("another bachelor").projectType(master).startDate(LocalDate.now()).headSupervisor(save(User.builder().firstName("Bob").lastName("Sponge").emailAddress("bob@example.com").build())).build();
|
||||
reviewingProject.addReviewer(supervisor);
|
||||
save(reviewingProject);
|
||||
|
||||
|
@ -7,6 +7,8 @@ import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class ForumBuilder {
|
||||
|
||||
private static long ID = 1;
|
||||
@ -26,7 +28,7 @@ public class ForumBuilder {
|
||||
|
||||
public ProjectThread createThread() {
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "Some project type", "Some description");
|
||||
Project project = Project.builder().title("Some title").projectType(projectType).build();
|
||||
Project project = Project.builder().title("Some title").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
project.setId(1L);
|
||||
ForumThread forumThread = new ForumThread();
|
||||
forumThread.setSubject("Test subject");
|
||||
|
@ -10,6 +10,7 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
public class ObjectMother {
|
||||
@ -21,10 +22,11 @@ public class ObjectMother {
|
||||
public static final Project SOME_PROJECT = Project.builder()
|
||||
.title("Some title")
|
||||
.projectType(BACHELOR)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(User.builder().firstName("Foo").lastName("Bar").emailAddress("foo@dsv.su.se").build())
|
||||
.build();
|
||||
|
||||
public static final Project SOME_MASTER_PROJECT = Project.builder().title("Some title").projectType(MASTER).build();
|
||||
public static final Project SOME_MASTER_PROJECT = Project.builder().title("Some title").projectType(MASTER).startDate(LocalDate.now()).build();
|
||||
|
||||
static {
|
||||
DomainObjects.injectId(BACHELOR, 1L);
|
||||
|
@ -7,6 +7,8 @@ import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class SeminarBuilder {
|
||||
|
||||
public FinalSeminar create() {
|
||||
@ -21,6 +23,7 @@ public class SeminarBuilder {
|
||||
Project project = Project.builder()
|
||||
.title("Some title")
|
||||
.projectType(projectType)
|
||||
.startDate(LocalDate.now())
|
||||
.build();
|
||||
seminar.setProject(project);
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ public class Daisy implements IdeaCreationJudge {
|
||||
Project project = Project.builder()
|
||||
.title(idea.getTitle())
|
||||
.projectType(idea.getProjectType())
|
||||
.startDate(idea.getCourseStartDate())
|
||||
.headSupervisor(idea.getMatch().getSupervisor())
|
||||
.projectParticipants(getAuthors(idea))
|
||||
.build();
|
||||
|
@ -173,8 +173,7 @@ public class ProjectExporter extends AbstractWorker {
|
||||
UnitWithID unit = new UnitWithID();
|
||||
unit.setId(project.getHeadSupervisor().getUnit().getIdentifier());
|
||||
|
||||
Calendar startDate = Calendar.getInstance();
|
||||
startDate.setTime(project.getDateCreated());
|
||||
Calendar startDate = SciProUtilities.toCalendar(project.getStartDate());
|
||||
|
||||
String title = finalThesis
|
||||
.map(FinalThesis::getSwedishTitle)
|
||||
|
@ -48,8 +48,7 @@ public class ExternalExporterDaisyImpl implements ExternalExporter {
|
||||
|
||||
ThesisToBeCreated exportProjectDTO = new ThesisToBeCreated();
|
||||
exportProjectDTO.setTitle(truncate(project.getTitle()));
|
||||
Calendar startDate = Calendar.getInstance();
|
||||
startDate.setTime(project.getDateCreated());
|
||||
Calendar startDate = SciProUtilities.toCalendar(project.getStartDate());
|
||||
exportProjectDTO.setStartDate(startDate);
|
||||
exportProjectDTO.setEndDate(SciProUtilities.toCalendar(project.getExpectedEndDate()));
|
||||
exportProjectDTO.setUnit(unitDTO);
|
||||
|
3
daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporterTest.java
3
daisy-integration/src/test/java/se/su/dsv/scipro/integration/daisy/workers/ProjectExporterTest.java
@ -27,6 +27,7 @@ import se.su.dsv.scipro.workerthreads.WorkerDataService;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityTransaction;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@ -83,6 +84,7 @@ public class ProjectExporterTest {
|
||||
newProject = Project.builder()
|
||||
.title("New project")
|
||||
.projectType(bachelor)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(supervisor)
|
||||
.build();
|
||||
|
||||
@ -90,6 +92,7 @@ public class ProjectExporterTest {
|
||||
exportedProject = Project.builder()
|
||||
.title("Exported project")
|
||||
.projectType(master)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(supervisor)
|
||||
.identifier(8)
|
||||
.build();
|
||||
|
@ -9,13 +9,14 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import se.su.dsv.scipro.daisyExternal.http.DaisyAPI;
|
||||
import se.su.dsv.scipro.io.dto.ThesisToBeCreated;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.reusable.SciProUtilities;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.Unit;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.net.URI;
|
||||
import java.util.*;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
@ -44,7 +45,7 @@ public class ExternalExporterDaisyImplTest {
|
||||
public void truncates_title_length_if_too_long() throws Exception {
|
||||
String title = "a".repeat(ExternalExporterDaisyImpl.MAX_TITLE_LENGTH);
|
||||
String longerTitle = title + "more title";
|
||||
Project project = Project.builder().title(longerTitle).projectType(BACHELOR).dateCreated(new Date()).build();
|
||||
Project project = Project.builder().title(longerTitle).projectType(BACHELOR).startDate(LocalDate.now()).build();
|
||||
|
||||
final Unit unit = new Unit();
|
||||
unit.setIdentifier(4);
|
||||
@ -58,8 +59,8 @@ public class ExternalExporterDaisyImplTest {
|
||||
|
||||
@Test
|
||||
public void application_period_start_date_on_project_to_be_exported() throws Exception {
|
||||
Date daisyStartDate = new Date();
|
||||
Project project = Project.builder().title("hej").projectType(BACHELOR).dateCreated(daisyStartDate).build();
|
||||
LocalDate daisyStartDate = LocalDate.now();
|
||||
Project project = Project.builder().title("hej").projectType(BACHELOR).startDate(daisyStartDate).build();
|
||||
|
||||
final Unit unit = new Unit();
|
||||
unit.setIdentifier(8);
|
||||
@ -68,6 +69,6 @@ public class ExternalExporterDaisyImplTest {
|
||||
ArgumentCaptor<ThesisToBeCreated> captor = ArgumentCaptor.forClass(ThesisToBeCreated.class);
|
||||
verify(daisyAPI).createProject(captor.capture());
|
||||
|
||||
assertEquals(captor.getValue().getStartDate().getTime(), daisyStartDate);
|
||||
assertEquals(captor.getValue().getStartDate(), SciProUtilities.toCalendar(daisyStartDate));
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,19 @@
|
||||
package se.su.dsv.scipro.admin.pages;
|
||||
|
||||
import com.google.common.eventbus.EventBus;
|
||||
import org.apache.wicket.markup.html.form.*;
|
||||
import org.apache.wicket.markup.html.form.Button;
|
||||
import org.apache.wicket.markup.html.form.DropDownChoice;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.form.FormComponent;
|
||||
import org.apache.wicket.markup.html.form.LambdaChoiceRenderer;
|
||||
import org.apache.wicket.markup.html.form.RequiredTextField;
|
||||
import org.apache.wicket.markup.html.form.TextField;
|
||||
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LambdaModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.util.SetModel;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import se.su.dsv.scipro.components.AddUsersPanel;
|
||||
import se.su.dsv.scipro.components.BootstrapDateField;
|
||||
import se.su.dsv.scipro.components.BootstrapDatePicker;
|
||||
import se.su.dsv.scipro.components.ResearchAreaChoiceRenderer;
|
||||
import se.su.dsv.scipro.components.ResearchAreasModel;
|
||||
@ -122,7 +126,8 @@ public class AdminEditProjectPage extends AbstractAdminProjectPage implements Me
|
||||
new ResearchAreaChoiceRenderer(this));
|
||||
researchArea.setNullValid(true);
|
||||
add(researchArea);
|
||||
FormComponent<Date> startDate = new BootstrapDateField("startDate", LambdaModel.of(model, Project::getDateCreated, Project::setDateCreated));
|
||||
FormComponent<LocalDate> startDate = new TextField<>("startDate", LambdaModel.of(model, Project::getStartDate, Project::setStartDate), LocalDate.class);
|
||||
startDate.add(new BootstrapDatePicker());
|
||||
startDate.setRequired(true);
|
||||
add(startDate);
|
||||
FormComponent<LocalDate> endDate = new TextField<>("endDate", LambdaModel.of(model, Project::getExpectedEndDate, Project::setExpectedEndDate), LocalDate.class);
|
||||
|
@ -0,0 +1,24 @@
|
||||
package se.su.dsv.scipro.components;
|
||||
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.LambdaColumn;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.danekja.java.util.function.serializable.SerializableFunction;
|
||||
|
||||
import java.time.temporal.Temporal;
|
||||
|
||||
public class TemporalColumn<T, S> extends LambdaColumn<T, S> {
|
||||
public TemporalColumn(IModel<String> displayModel, SerializableFunction<T, Temporal> function) {
|
||||
super(displayModel, function);
|
||||
}
|
||||
|
||||
public TemporalColumn(IModel<String> displayModel, S sortProperty, SerializableFunction<T, Temporal> function) {
|
||||
super(displayModel, sortProperty, function);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populateItem(Item<ICellPopulator<T>> item, String componentId, IModel<T> rowModel) {
|
||||
item.add(new NoBreakLabel(componentId, getDataModel(rowModel)));
|
||||
}
|
||||
}
|
@ -19,7 +19,12 @@ import org.apache.wicket.model.LambdaModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import se.su.dsv.scipro.admin.pages.AdminEditProjectPage;
|
||||
import se.su.dsv.scipro.components.*;
|
||||
import se.su.dsv.scipro.components.EmployeeAutoCompleteDivPanel;
|
||||
import se.su.dsv.scipro.components.EnumLambdaColumn;
|
||||
import se.su.dsv.scipro.components.ExportableDataPanel;
|
||||
import se.su.dsv.scipro.components.LinkWrapper;
|
||||
import se.su.dsv.scipro.components.ListAdapterModel;
|
||||
import se.su.dsv.scipro.components.TemporalColumn;
|
||||
import se.su.dsv.scipro.components.datatables.MultipleUsersColumn;
|
||||
import se.su.dsv.scipro.components.datatables.UserColumn;
|
||||
import se.su.dsv.scipro.data.DetachableServiceModel;
|
||||
@ -34,12 +39,16 @@ import se.su.dsv.scipro.project.ProjectStatus;
|
||||
import se.su.dsv.scipro.project.ReviewerAssignedEvent;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.session.SciProSession;
|
||||
import se.su.dsv.scipro.system.*;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.ProjectTypeService;
|
||||
import se.su.dsv.scipro.system.ResearchArea;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.system.UserService;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ProjectDataPanel extends Panel {
|
||||
|
||||
@ -87,7 +96,7 @@ public class ProjectDataPanel extends Panel {
|
||||
private List<IColumn<Project, String>> createColumns() {
|
||||
List<IColumn<Project, String>> columns = new ArrayList<>();
|
||||
final boolean isAdmin = SciProSession.get().authorizedForRole(Roles.ADMIN);
|
||||
columns.add(new DateColumn<>(Model.of("Started"), Project::getDateCreated, "dateCreated"));
|
||||
columns.add(new TemporalColumn<>(Model.of("Started"), "startDate", Project::getStartDate));
|
||||
if (SciProSession.get().authorizedForRole(Roles.SYSADMIN)) {
|
||||
columns.add(titleColumn());
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ public class ProjectExternalOrganisationPanel extends Panel {
|
||||
|
||||
private List<IColumn<Project, String>> createColumns() {
|
||||
List<IColumn<Project, String>> columns = new ArrayList<>();
|
||||
columns.add(new DateColumn<>(Model.of("Started"), Project::getDateCreated, "dateCreated"));
|
||||
columns.add(new TemporalColumn<>(Model.of("Started"), "startDate", Project::getStartDate));
|
||||
columns.add(titleColumn());
|
||||
columns.add(new LambdaColumn<>(Model.of("Type"), "projectType.name", Project::getProjectTypeName));
|
||||
columns.add(new EnumLambdaColumn<>(Model.of("Status"), "projectStatus", Project::getProjectStatus));
|
||||
|
@ -24,11 +24,7 @@ import se.su.dsv.scipro.util.Either;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
|
||||
abstract class AbstractExaminationsPanel extends GenericPanel<User> {
|
||||
|
||||
@ -143,7 +139,7 @@ abstract class AbstractExaminationsPanel extends GenericPanel<User> {
|
||||
reportedModel);
|
||||
reportedField.setRequired(true);
|
||||
reportedField.setEndDate(LocalDate.now());
|
||||
final LocalDate projectStarted = projectModel.getObject().getDateCreated().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
final LocalDate projectStarted = projectModel.getObject().getStartDate();
|
||||
reportedField.setStartDate(projectStarted);
|
||||
queue(reportedField);
|
||||
}
|
||||
|
@ -6,8 +6,6 @@ import org.apache.wicket.model.IModel;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
public class TemplatePanel extends Panel {
|
||||
|
||||
public static final String BACHELOR_CONTAINER = "bachelorContainer";
|
||||
@ -63,9 +61,7 @@ public class TemplatePanel extends Panel {
|
||||
}
|
||||
|
||||
private int getYear(final Project project) {
|
||||
final Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(project.getDateCreated());
|
||||
return calendar.get(Calendar.YEAR);
|
||||
return project.getStartDate().getYear();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ public class MileStoneCounterPanel extends Panel {
|
||||
public MileStoneCounterPanel(String id, IModel<Long> completed, MilestoneActivityTemplate.Type type, IModel<Project> projectIModel) {
|
||||
super(id);
|
||||
add(new Label(COMPLETED, completed));
|
||||
add(new Label(TOTAL, Model.of(activityService.countActivities(type, projectIModel.getObject().getProjectType(), projectIModel.getObject().getDateCreated()))));
|
||||
add(new Label(TOTAL, Model.of(activityService.countActivities(type, projectIModel.getObject().getProjectType(), projectIModel.getObject().getStartDate()))));
|
||||
}
|
||||
|
||||
static final String COMPLETED = "completed";
|
||||
|
@ -140,7 +140,7 @@ public class MileStoneOverviewPanel extends Panel {
|
||||
return new LoadableDetachableModel<>() {
|
||||
@Override
|
||||
protected List<MilestonePhaseTemplate> load() {
|
||||
return phaseService.findAllActive(projectModel.getObject().getDateCreated());
|
||||
return phaseService.findAllActive(projectModel.getObject().getStartDate());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ public class MileStoneProgressPanel extends Panel {
|
||||
return new LoadableDetachableModel<List<MilestoneActivityTemplate>>() {
|
||||
@Override
|
||||
protected List<MilestoneActivityTemplate> load() {
|
||||
return activityService.getActivities(type, projectIModel.getObject().getProjectType(), projectIModel.getObject().getDateCreated());
|
||||
return activityService.getActivities(type, projectIModel.getObject().getProjectType(), projectIModel.getObject().getStartDate());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ public class MilestoneSummaryPanel extends Panel {
|
||||
@Override
|
||||
protected void onConfigure() {
|
||||
super.onConfigure();
|
||||
setVisibilityAllowed(activityService.countActivities(projectModel.getObject().getProjectType(), projectModel.getObject().getDateCreated()) != 0);
|
||||
setVisibilityAllowed(activityService.countActivities(projectModel.getObject().getProjectType(), projectModel.getObject().getStartDate()) != 0);
|
||||
}
|
||||
|
||||
static final String STUDENT_LIST = "studentList";
|
||||
|
@ -5,11 +5,11 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.model.*;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LambdaModel;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import se.su.dsv.scipro.components.AutoHidingListView;
|
||||
import se.su.dsv.scipro.components.ListAdapterModel;
|
||||
import se.su.dsv.scipro.date.DateService;
|
||||
import se.su.dsv.scipro.profile.UserLinkPanel;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.project.pages.SupervisorEditProjectPage;
|
||||
@ -18,8 +18,7 @@ import se.su.dsv.scipro.system.ResearchArea;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
public class ProjectHeaderPanel extends GenericPanel<Project> {
|
||||
static final String TITLE = "title";
|
||||
@ -37,9 +36,6 @@ public class ProjectHeaderPanel extends GenericPanel<Project> {
|
||||
static final String EDIT_LINK = "editLink";
|
||||
static final String CREDITS = "credits";
|
||||
|
||||
@Inject
|
||||
private DateService dateService;
|
||||
|
||||
public ProjectHeaderPanel(String id, IModel<Project> model) {
|
||||
super(id, model);
|
||||
|
||||
@ -82,7 +78,7 @@ public class ProjectHeaderPanel extends GenericPanel<Project> {
|
||||
}
|
||||
|
||||
private void addMisc(IModel<Project> model) {
|
||||
add(new Label(START_DATE, getStartDate(model)));
|
||||
add(new Label(START_DATE, model.map(Project::getStartDate)));
|
||||
add(new Label("expected_end_date", model.map(Project::getExpectedEndDate)) {
|
||||
@Override
|
||||
protected void onConfigure() {
|
||||
@ -93,13 +89,6 @@ public class ProjectHeaderPanel extends GenericPanel<Project> {
|
||||
add(new UserLinkPanel(SUPERVISOR, LambdaModel.of(model, Project::getHeadSupervisor, Project::setHeadSupervisor)));
|
||||
}
|
||||
|
||||
private IModel<String> getStartDate(IModel<Project> model) {
|
||||
if (model.getObject().getDateCreated() == null) {
|
||||
return new StringResourceModel("noStartDate", ProjectHeaderPanel.this, null);
|
||||
}
|
||||
return new Model<>(dateService.format(model.getObject().getDateCreated()));
|
||||
}
|
||||
|
||||
private void addAuthors(IModel<Project> model) {
|
||||
add(new ListView<>(AUTHOR_LIST, new ListAdapterModel<>(LambdaModel.of(model, Project::getProjectParticipants, Project::setProjectParticipants))) {
|
||||
@Override
|
||||
|
@ -65,7 +65,7 @@ public class ProjectSubTabMenuPanel extends AbstractMenuPanel {
|
||||
final Project project = active.getObject();
|
||||
List<MenuItem> itemList = new ArrayList<>();
|
||||
itemList.add(new MenuItem(OVERVIEW, ProjectDetailsPage.class, projectParams));
|
||||
if (milestoneActivityTemplateService.countActivities(project.getProjectType(), project.getDateCreated()) != 0) {
|
||||
if (milestoneActivityTemplateService.countActivities(project.getProjectType(), project.getStartDate()) != 0) {
|
||||
itemList.add(new MenuItem(MILESTONES, ProjectMileStonePage.class, projectParams));
|
||||
}
|
||||
itemList.add(new MenuItem(ACTIVITY_PLAN, ProjectActivityPlanPage.class, MenuHighlightActivityPlan.class, projectParams));
|
||||
|
@ -2,35 +2,27 @@ package se.su.dsv.scipro.project.panels;
|
||||
|
||||
import org.apache.wicket.markup.html.form.DropDownChoice;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.form.LambdaChoiceRenderer;
|
||||
import org.apache.wicket.markup.html.form.RequiredTextField;
|
||||
import org.apache.wicket.markup.html.form.TextField;
|
||||
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LambdaModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.ResourceModel;
|
||||
import org.apache.wicket.model.util.SetModel;
|
||||
import se.su.dsv.scipro.components.AddUsersPanel;
|
||||
import se.su.dsv.scipro.components.BootstrapDateField;
|
||||
import se.su.dsv.scipro.components.BootstrapDatePicker;
|
||||
import se.su.dsv.scipro.components.InfoPanel;
|
||||
import se.su.dsv.scipro.components.ResearchAreaChoiceRenderer;
|
||||
import se.su.dsv.scipro.components.ResearchAreasModel;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.project.ProjectService;
|
||||
import se.su.dsv.scipro.system.ResearchArea;
|
||||
import se.su.dsv.scipro.system.ResearchAreaService;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
import java.util.*;
|
||||
|
||||
public class SupervisorEditProjectPanel extends GenericPanel<Project> {
|
||||
|
||||
@ -71,7 +63,8 @@ public class SupervisorEditProjectPanel extends GenericPanel<Project> {
|
||||
|
||||
private void initComponents() {
|
||||
add(new RequiredTextField<>(TITLE, LambdaModel.of(getModel(), Project::getTitle, Project::setTitle)));
|
||||
BootstrapDateField startDate = new BootstrapDateField("startDate", LambdaModel.of(getModel(), Project::getDateCreated, Project::setDateCreated));
|
||||
TextField<LocalDate> startDate = new TextField<>("startDate", LambdaModel.of(getModel(), Project::getStartDate, Project::setStartDate), LocalDate.class);
|
||||
startDate.add(new BootstrapDatePicker());
|
||||
startDate.setRequired(true);
|
||||
add(startDate);
|
||||
final TextField<LocalDate> expectedEndDate = new TextField<>(
|
||||
|
@ -168,7 +168,7 @@ public class ReviewerStartPage extends ReviewerPage {
|
||||
|
||||
private List<IColumn<Project, String>> createColumns() {
|
||||
List<IColumn<Project, String>> columns = new ArrayList<>();
|
||||
columns.add(new DateColumn<>(Model.of("Started"), Project::getDateCreated));
|
||||
columns.add(new TemporalColumn<>(Model.of("Started"), Project::getStartDate));
|
||||
columns.add(new LambdaColumn<>(Model.of("Type"), Project::getProjectTypeName));
|
||||
columns.add(new AbstractExportableColumn<>(Model.of("Title")) {
|
||||
@Override
|
||||
|
@ -104,7 +104,7 @@ public class AdminFinalSeminarStatisticsPage extends AbstractAdminStatisticsPage
|
||||
|
||||
private List<IColumn<Project, String>> createColumns() {
|
||||
List<IColumn<Project, String>> columns = new ArrayList<>();
|
||||
columns.add(new DateColumn<>(Model.of("Project started"), Project::getDateCreated, "dateCreated"));
|
||||
columns.add(new TemporalColumn<>(Model.of("Project started"), "startDate", Project::getStartDate));
|
||||
columns.add(new LambdaColumn<>(Model.of("Title"), "title", Project::getTitle));
|
||||
columns.add(new LambdaColumn<>(Model.of("Type"), "projectType.name", Project::getProjectTypeName));
|
||||
columns.add(new EnumLambdaColumn<>(Model.of("Status"), Project::getProjectStatus));
|
||||
|
@ -6,6 +6,7 @@ import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.ResourceModel;
|
||||
import se.su.dsv.scipro.components.DateColumn;
|
||||
import se.su.dsv.scipro.components.EnumLambdaColumn;
|
||||
import se.su.dsv.scipro.components.TemporalColumn;
|
||||
import se.su.dsv.scipro.components.datatables.UserColumn;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.Milestone;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate;
|
||||
@ -23,7 +24,7 @@ public class IndividualMilestoneDetailsPanel extends AbstractMilestoneDetailsPan
|
||||
@Override
|
||||
protected List<IColumn<Milestone, String>> createColumns() {
|
||||
List<IColumn<Milestone, String>> columns = new ArrayList<>();
|
||||
columns.add(new DateColumn<>(new ResourceModel("project.creation.date"), m -> m.getProject().getDateCreated(), "project.dateCreated"));
|
||||
columns.add(new TemporalColumn<>(new ResourceModel("project.creation.date"), "project.startDate", m -> m.getProject().getStartDate()));
|
||||
columns.add(new LambdaColumn<>(new ResourceModel("project.title"), "project.title", m -> m.getProject().getTitle()));
|
||||
columns.add(new LambdaColumn<>(new ResourceModel("project.type"), "project.projectType.name", m -> m.getProject().getProjectTypeName()));
|
||||
columns.add(new UserColumn<>(new ResourceModel("author"), Milestone::getUser));
|
||||
|
@ -9,10 +9,10 @@ import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import se.su.dsv.scipro.components.DateColumn;
|
||||
import se.su.dsv.scipro.components.EnumLambdaColumn;
|
||||
import se.su.dsv.scipro.components.ExportableDataPanel;
|
||||
import se.su.dsv.scipro.components.ListAdapterModel;
|
||||
import se.su.dsv.scipro.components.TemporalColumn;
|
||||
import se.su.dsv.scipro.components.datatables.MultipleUsersColumn;
|
||||
import se.su.dsv.scipro.components.datatables.UserColumn;
|
||||
import se.su.dsv.scipro.data.DetachableServiceModel;
|
||||
@ -25,9 +25,7 @@ import se.su.dsv.scipro.project.ProjectService;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
public class MilestoneStatisticsProgressPanel extends Panel {
|
||||
@Inject
|
||||
@ -56,7 +54,7 @@ public class MilestoneStatisticsProgressPanel extends Panel {
|
||||
|
||||
private List<? extends IColumn<Project, String>> columns() {
|
||||
List<IColumn<Project, String>> columns = new ArrayList<>();
|
||||
columns.add(new DateColumn<>(Model.of("Project started"), Project::getDateCreated, "dateCreated"));
|
||||
columns.add(new TemporalColumn<>(Model.of("Project started"), "startDate", Project::getStartDate));
|
||||
columns.add(new LambdaColumn<>(Model.of("Title"), "title", Project::getTitle));
|
||||
columns.add(new LambdaColumn<>(Model.of("Type"), "projectType.name", Project::getProjectTypeName));
|
||||
columns.add(new MultipleUsersColumn<>(Model.of("Authors")) {
|
||||
|
@ -7,6 +7,7 @@ import org.apache.wicket.model.Model;
|
||||
import se.su.dsv.scipro.components.DateColumn;
|
||||
import se.su.dsv.scipro.components.EnumLambdaColumn;
|
||||
import se.su.dsv.scipro.components.ListAdapterModel;
|
||||
import se.su.dsv.scipro.components.TemporalColumn;
|
||||
import se.su.dsv.scipro.components.datatables.MultipleUsersColumn;
|
||||
import se.su.dsv.scipro.components.datatables.UserColumn;
|
||||
import se.su.dsv.scipro.milestones.dataobjects.Milestone;
|
||||
@ -26,7 +27,7 @@ public class ProjectMilestoneDetailsPanel extends AbstractMilestoneDetailsPanel
|
||||
@Override
|
||||
protected List<IColumn<Milestone, String>> createColumns() {
|
||||
List<IColumn<Milestone, String>> columns = new ArrayList<>();
|
||||
columns.add(new DateColumn<>(Model.of("Project started"), m -> m.getProject().getDateCreated(), "project.dateCreated"));
|
||||
columns.add(new TemporalColumn<>(Model.of("Project started"), "project.startDate", m -> m.getProject().getStartDate()));
|
||||
columns.add(new LambdaColumn<>(Model.of("Title"), "project.title", m -> m.getProject().getTitle()));
|
||||
columns.add(new LambdaColumn<>(Model.of("Type"), "project.projectType.name", m -> m.getProject().getProjectTypeName()));
|
||||
columns.add(new MultipleUsersColumn<>(Model.of("Authors")) {
|
||||
|
@ -72,7 +72,7 @@ public class SupervisorMyProjectsPanel extends Panel {
|
||||
private List<IColumn<Project, String>> createColumns() {
|
||||
List<IColumn<Project, String>> columns = new ArrayList<>();
|
||||
columns.add(new ProjectStateColumn(Model.of("State"), "stateOfMind"));
|
||||
columns.add(new DateColumn<>(Model.of("Started"), Project::getDateCreated, "dateCreated"));
|
||||
columns.add(new TemporalColumn<>(Model.of("Started"), "startDate", Project::getStartDate));
|
||||
columns.add(new LambdaColumn<>(Model.of("Type"), "projectType.name", Project::getProjectTypeName));
|
||||
columns.add(new ProjectTitleColumn(Model.of("Title"), "title"));
|
||||
columns.add(new MultipleUsersColumn<>(Model.of("Authors")) {
|
||||
|
@ -91,7 +91,7 @@ public class SupervisorSubTabMenuPanel extends AbstractMenuPanel {
|
||||
|
||||
private boolean mileStonesAreAvailable() {
|
||||
Project project = projectModel.getObject();
|
||||
return milestoneActivityTemplateService.countActivities(project.getProjectType(), project.getDateCreated()) != 0;
|
||||
return milestoneActivityTemplateService.countActivities(project.getProjectType(), project.getStartDate()) != 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class ActivityPlanPanelTest extends SciProTest {
|
||||
@ -25,7 +26,7 @@ public class ActivityPlanPanelTest extends SciProTest {
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
project = Project.builder().title("My project").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).headSupervisor(new User()).build();
|
||||
project = Project.builder().title("My project").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).startDate(LocalDate.now()).headSupervisor(new User()).build();
|
||||
project.setId(20934L);
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.isA;
|
||||
@ -44,6 +45,7 @@ public class EditActivityPanelTest extends SciProTest {
|
||||
project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(supervisor)
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
|
@ -14,6 +14,8 @@ import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class ProjectActivityPlanPageTest extends PageTest {
|
||||
|
||||
@BeforeEach
|
||||
@ -24,6 +26,7 @@ public class ProjectActivityPlanPageTest extends PageTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(supervisor)
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
|
@ -16,6 +16,7 @@ import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.TreeSet;
|
||||
@ -42,6 +43,7 @@ public class ProjectEditActivityPageTest extends SciProTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(supervisor)
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
@ -69,6 +71,7 @@ public class ProjectEditActivityPageTest extends SciProTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.projectParticipants(projectParticipants)
|
||||
.headSupervisor(supervisor)
|
||||
.build();
|
||||
|
@ -16,6 +16,7 @@ import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
|
||||
@ -38,6 +39,7 @@ public class SupervisorEditActivityPageTest extends SciProTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
when(projectService.findOne(ArgumentMatchers.anyLong())).thenReturn(project);
|
||||
@ -64,6 +66,7 @@ public class SupervisorEditActivityPageTest extends SciProTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(user)
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
|
@ -20,6 +20,7 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
||||
@ -41,6 +42,7 @@ public class UpcomingActivitiesPanelTest extends SciProTest {
|
||||
project = Project.builder()
|
||||
.title("Some title")
|
||||
.projectType(SOME_PROJECT_TYPE)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(user)
|
||||
.build();
|
||||
project.setId(1L);
|
||||
|
@ -24,8 +24,8 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.ObjectMother;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
@ -79,7 +79,7 @@ public class AdminEditProjectPageTest extends SciProTest {
|
||||
project = new Project();
|
||||
project.addProjectParticipant(author);
|
||||
project.setId(20987234L);
|
||||
project.setDateCreated(new Date());
|
||||
project.setStartDate(LocalDate.now());
|
||||
startPage(project);
|
||||
}
|
||||
|
||||
@ -265,7 +265,7 @@ public class AdminEditProjectPageTest extends SciProTest {
|
||||
}
|
||||
|
||||
private Project mockExistingProject() {
|
||||
Project project = Project.builder().title("a nice title").projectType(ObjectMother.BACHELOR).build();
|
||||
Project project = Project.builder().title("a nice title").projectType(ObjectMother.BACHELOR).startDate(LocalDate.now()).build();
|
||||
|
||||
project.addCoSupervisor(existingCoSupervisor);
|
||||
|
||||
|
@ -9,9 +9,10 @@ import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class ChecklistOverviewPanelTest extends SciProTest {
|
||||
@ -22,7 +23,7 @@ public class ChecklistOverviewPanelTest extends SciProTest {
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
ProjectType projectType = new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor");
|
||||
project = Project.builder().title("My project").projectType(projectType).build();
|
||||
project = Project.builder().title("My project").projectType(projectType).startDate(LocalDate.now()).build();
|
||||
when(checklistService.countAnswers(any(Project.class), any(ChecklistAnswerEnum.class))).thenReturn(8L);
|
||||
startPanel();
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class ChecklistQuestionPanelTest extends SciProTest {
|
||||
|
||||
public static final ProjectType SOME_PROJECT_TYPE = new ProjectType(DegreeType.BACHELOR, "Some project type", "Some description");
|
||||
@ -38,7 +40,7 @@ public class ChecklistQuestionPanelTest extends SciProTest {
|
||||
question = new ChecklistQuestion("What?", 1);
|
||||
answer = new ChecklistAnswer(user);
|
||||
question.addAnswer(answer);
|
||||
project = Project.builder().title("Some title").projectType(SOME_PROJECT_TYPE).build();
|
||||
project = Project.builder().title("Some title").projectType(SOME_PROJECT_TYPE).startDate(LocalDate.now()).build();
|
||||
project.addProjectParticipant(user);
|
||||
checklist = Checklist.builder().name("Some name").project(project).build();
|
||||
checklist.addQuestion(question);
|
||||
|
@ -17,6 +17,8 @@ import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class ProjectViewChecklistPageTest extends PageTest {
|
||||
|
||||
private Checklist checklist;
|
||||
@ -31,6 +33,7 @@ public class ProjectViewChecklistPageTest extends PageTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(projectType)
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(supervisor)
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
|
@ -19,6 +19,7 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.ObjectMother;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@ -105,14 +106,14 @@ public class ProjectDataPanelTest extends SciProTest {
|
||||
}
|
||||
|
||||
private void mockProject() {
|
||||
Project project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "bach", "b")).projectStatus(ProjectStatus.ACTIVE).build();
|
||||
Project project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "bach", "b")).startDate(LocalDate.now()).projectStatus(ProjectStatus.ACTIVE).build();
|
||||
project.setHeadSupervisor(ObjectMother.SOME_USER);
|
||||
when(projectService.findAll(any(ProjectService.Filter.class), any(Pageable.class))).thenReturn(Collections.singletonList(project));
|
||||
when(projectService.count(any(ProjectService.Filter.class))).thenReturn(1L);
|
||||
}
|
||||
|
||||
private User mockProjectWithReviewer() {
|
||||
Project project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "bach", "b")).projectStatus(ProjectStatus.ACTIVE).build();
|
||||
Project project = Project.builder().title("title").projectType(new ProjectType(DegreeType.BACHELOR, "bach", "b")).startDate(LocalDate.now()).projectStatus(ProjectStatus.ACTIVE).build();
|
||||
project.setHeadSupervisor(ObjectMother.SOME_USER);
|
||||
User oldReviewer = User.builder().firstName("old").lastName("reviewer").emailAddress("old@reviewer.com").build();
|
||||
oldReviewer.setId(7676L);
|
||||
|
@ -14,6 +14,7 @@ import se.su.dsv.scipro.system.ProjectType;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
@ -36,7 +37,7 @@ public class AttendingPanelTest extends SciProTest {
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
project = Project.builder().title("some title").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).build();
|
||||
project = Project.builder().title("some title").projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor")).startDate(LocalDate.now()).build();
|
||||
project.setId(9L);
|
||||
|
||||
user = new UserBuilder().setFirstName("Rolf").setLastName("Rolfsson").create();
|
||||
|
@ -29,6 +29,7 @@ import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@ -52,8 +53,8 @@ public class OppositionReportPageTest extends SciProTest {
|
||||
@BeforeEach
|
||||
public void prepareOppositionReport() {
|
||||
bachelor = new ProjectType(DegreeType.BACHELOR, "bachelor", "bachelor");
|
||||
Project opponentsProject = Project.builder().title("Foo").projectType(bachelor).headSupervisor(User.builder().firstName("Bob").lastName("Kelso").emailAddress("bob@example.com").build()).build();
|
||||
Project projectToOppose = Project.builder().title("Foo").projectType(bachelor).headSupervisor(User.builder().firstName("Bob").lastName("Kelso").emailAddress("bob@example.com").build()).build();
|
||||
Project opponentsProject = Project.builder().title("Foo").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(User.builder().firstName("Bob").lastName("Kelso").emailAddress("bob@example.com").build()).build();
|
||||
Project projectToOppose = Project.builder().title("Foo").projectType(bachelor).startDate(LocalDate.now()).headSupervisor(User.builder().firstName("Bob").lastName("Kelso").emailAddress("bob@example.com").build()).build();
|
||||
DomainObjects.injectId(opponentsProject, 666L);
|
||||
DomainObjects.injectId(projectToOppose, 777L);
|
||||
user = new UserBuilder().create();
|
||||
|
@ -16,6 +16,7 @@ import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.test.DomainObjects;
|
||||
import se.su.dsv.scipro.test.UserBuilder;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@ -29,6 +30,7 @@ public class OverviewSeminarPanelTest extends SciProTest {
|
||||
Project project = Project.builder()
|
||||
.title("some title")
|
||||
.projectType(new ProjectType(DegreeType.BACHELOR, "Bachelor", "Bachelor"))
|
||||
.startDate(LocalDate.now())
|
||||
.headSupervisor(user)
|
||||
.build();
|
||||
DomainObjects.injectId(project, 1L);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user