added course start date to application period domain object and made appropriate changes to facade and test classes
This commit is contained in:
parent
c75de26f64
commit
ec7673d64c
src
main/java/se/su/dsv/scipro
admin/pages/match
match
test/java/se/su/dsv/scipro/match/dao
@ -13,6 +13,7 @@
|
||||
<tr>
|
||||
<th class="rounded-left-top">Start</th>
|
||||
<th>End</th>
|
||||
<th>Course start</th>
|
||||
<th>Project types</th>
|
||||
<th>Name</th>
|
||||
<th>Edit</th>
|
||||
@ -21,13 +22,14 @@
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="6" class="rounded-foot"> </td>
|
||||
<td colspan="7" class="rounded-foot"> </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<tr wicket:id="repeatingView">
|
||||
<td><span wicket:id="startDate"></span></td>
|
||||
<td><span wicket:id="endDate"></span></td>
|
||||
<td><span wicket:id="courseStartDate"></span></td>
|
||||
<td><span wicket:id="type"></span></td>
|
||||
<td><span wicket:id="name"></span></td>
|
||||
<td><a href=# wicket:id="editLink"><img wicket:id="editIcon" alt="" /></a></td>
|
||||
|
@ -89,6 +89,7 @@ public class AdminMatchPeriodsPanel extends Panel {
|
||||
final ApplicationPeriod appPeriod = item.getModelObject();
|
||||
item.add(new DateFormatter(DateFormatter.FORMAT.EXTENDED).createFormattedDateLabel("startDate", appPeriod.getStartDate()));
|
||||
item.add(new DateFormatter(DateFormatter.FORMAT.EXTENDED).createFormattedDateLabel("endDate", appPeriod.getEndDate()));
|
||||
item.add(new DateFormatter(DateFormatter.FORMAT.EXTENDED).createFormattedDateLabel("courseStartDate", appPeriod.getCourseStartDate()));
|
||||
item.add(new Label("type",appPeriod.getProjectClass().toString()));
|
||||
item.add(new Label("name",appPeriod.getName()));
|
||||
final boolean linksAreEnabled = !applicationPeriodFacade.projectIdeasExists(appPeriod);
|
||||
|
@ -38,6 +38,9 @@ public class ApplicationPeriod extends DomainObject {
|
||||
@NotNull
|
||||
private Date endDate;
|
||||
|
||||
@NotNull
|
||||
private Date courseStartDate;
|
||||
|
||||
public ApplicationPeriod() {
|
||||
|
||||
}
|
||||
@ -85,4 +88,12 @@ public class ApplicationPeriod extends DomainObject {
|
||||
public void setProjectClass(Set<ProjectClass> projectClass) {
|
||||
this.projectClass = projectClass;
|
||||
}
|
||||
|
||||
public void setCourseStartDate(Date courseStartDate) {
|
||||
this.courseStartDate = courseStartDate;
|
||||
}
|
||||
|
||||
public Date getCourseStartDate() {
|
||||
return courseStartDate;
|
||||
}
|
||||
}
|
@ -133,6 +133,7 @@ public class ApplicationPeriodFacade {
|
||||
.append("'").append(appPeriod.getName()).append("'")
|
||||
.append(" Start date : '").append(new DateFormatter(DateFormatter.FORMAT.DEFAULT).createFormattedString(appPeriod.getStartDate())).append("'")
|
||||
.append(" End date : '").append(new DateFormatter(DateFormatter.FORMAT.DEFAULT).createFormattedString(appPeriod.getEndDate())).append("'")
|
||||
.append(" Course start date : '").append(new DateFormatter(DateFormatter.FORMAT.DEFAULT).createFormattedString(appPeriod.getCourseStartDate())).append("'")
|
||||
.append(" Levels: '").append(projectClasses.toString()).append("'").toString();
|
||||
}
|
||||
|
||||
@ -146,6 +147,8 @@ public class ApplicationPeriodFacade {
|
||||
appPeriod.setStartDate(cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
appPeriod.setEndDate(cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
appPeriod.setCourseStartDate(cal.getTime());
|
||||
appPeriod.setName(name);
|
||||
return appPeriod;
|
||||
}
|
||||
@ -157,18 +160,21 @@ public class ApplicationPeriodFacade {
|
||||
appPeriod.setStartDate(cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
appPeriod.setEndDate(cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
appPeriod.setCourseStartDate(cal.getTime());
|
||||
appPeriod.setProjectClass(projectClassSet);
|
||||
appPeriod.setName(name);
|
||||
return applicationPeriodDao.save(appPeriod);
|
||||
}
|
||||
|
||||
// @Transactional
|
||||
public ApplicationPeriod createApplicationPeriodDates(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate, final String name) {
|
||||
public ApplicationPeriod createApplicationPeriodDates(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate, final Date courseStartDate, final String name) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
ApplicationPeriod appPeriod = new ApplicationPeriod();
|
||||
appPeriod.setStartDate(startDate);
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
appPeriod.setEndDate(endDate);
|
||||
appPeriod.setCourseStartDate(courseStartDate);
|
||||
appPeriod.setProjectClass(projectClassSet);
|
||||
appPeriod.setName(name);
|
||||
return applicationPeriodDao.save(appPeriod);
|
||||
|
@ -20,6 +20,9 @@
|
||||
<tr>
|
||||
<td>End date: <div wicket:id="endDate"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Course start date: <div wicket:id="courseStartDate"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Name: <input type="text" wicket:id="name"></td>
|
||||
</tr>
|
||||
|
@ -84,6 +84,7 @@ public class MatchPeriodEditPanel extends Panel {
|
||||
|
||||
add(new CustomDateTimeField("startDate", new PropertyModel<Date>(model.getObject(),"startDate")).setEnabled(isEditable()));
|
||||
add(new CustomDateTimeField("endDate", new PropertyModel<Date>(model.getObject(),"endDate")).setEnabled(isEditable()));
|
||||
add(new CustomDateTimeField("courseStartDate", new PropertyModel<Date>(model.getObject(),"courseStartDate")).setEnabled(isEditable()));
|
||||
final TextField<String> nameField = new TextField<String>("name", new PropertyModel<String>(model.getObject(),"name"));
|
||||
nameField.setRequired(true);
|
||||
nameField.setEnabled(isEditable());
|
||||
@ -106,6 +107,12 @@ public class MatchPeriodEditPanel extends Panel {
|
||||
target.addComponent(feedbackPanel);
|
||||
return;
|
||||
}
|
||||
|
||||
if(appPeriod.getCourseStartDate().before(appPeriod.getEndDate())) {
|
||||
error("The course start date cannot be before the application period ends.");
|
||||
target.addComponent(feedbackPanel);
|
||||
return;
|
||||
}
|
||||
|
||||
appPeriod.setProjectClass(pClassesToSet);
|
||||
boolean isEditing = appPeriod.getId() != null;
|
||||
|
@ -116,8 +116,8 @@ public class TestApplicationPeriodDao {
|
||||
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelor);
|
||||
applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(projectClassSet, date("2011-06-14"), date("2011-07-01"), "name1");
|
||||
applicationPeriod2 =applicationPeriodFacade.createApplicationPeriodDates(projectClassSet, date("2011-07-15"), date("2011-08-01"), "name2");
|
||||
applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(projectClassSet, date("2011-06-14"), date("2011-07-01"), date("2011-07-12"), "name1");
|
||||
applicationPeriod2 =applicationPeriodFacade.createApplicationPeriodDates(projectClassSet, date("2011-07-15"), date("2011-08-01"), date("2011-08-10"), "name2");
|
||||
projectIdea1 = createProjectIdea(applicationPeriod, bachelor);
|
||||
projectIdea2 = createProjectIdea(applicationPeriod, bachelor);
|
||||
projectIdea3 = createProjectIdea(applicationPeriod, bachelor);
|
||||
@ -202,7 +202,9 @@ public class TestApplicationPeriodDao {
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONDAY, 3);
|
||||
final Date endDate1 = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
|
||||
cal.add(Calendar.DAY_OF_WEEK, 5);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, courseStartDate, "name1");
|
||||
ProjectIdea projectIdea = createProjectIdea(applicationPeriod, bachelor);
|
||||
boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
|
||||
assertFalse(periodRemoved); // should be false
|
||||
@ -224,7 +226,9 @@ public class TestApplicationPeriodDao {
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate1 = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, courseStartDate, "name1");
|
||||
boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
|
||||
assertTrue(periodRemoved); // should be true
|
||||
applicationPeriod = applicationPeriodDao.reLoad(applicationPeriod);
|
||||
@ -245,7 +249,9 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, courseStartDate,"name1");
|
||||
boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
|
||||
assertTrue(exists); // should exist
|
||||
}
|
||||
@ -263,7 +269,9 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myMasterSet, startDate1, endDate1, "name1");
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myMasterSet, startDate1, endDate1, courseStartDate,"name1");
|
||||
boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
|
||||
assertFalse(exists); // should NOT exist
|
||||
}
|
||||
@ -282,13 +290,18 @@ there should exist an OPEN "bachelor"application period */
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
cal.set(Calendar.HOUR_OF_DAY, 13); // HOUR_OF_DAY is used for the 24 hour clock
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
|
||||
cal.set(2012, Calendar.MAY, 1);
|
||||
final Date courseStartDate1 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, courseStartDate1, "name1");
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
cal.set(Calendar.HOUR_OF_DAY, 14);
|
||||
final Date startDate2 = cal.getTime();
|
||||
cal.set(2012, Calendar.MAY, 2);
|
||||
final Date endDate2 = cal.getTime();
|
||||
cal.set(2012, Calendar.MAY, 20);
|
||||
final Date courseStartDate2 = cal.getTime();
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.
|
||||
createApplicationPeriodDates(myBachelorSet, startDate2, endDate2, "name2"));
|
||||
createApplicationPeriodDates(myBachelorSet, startDate2, endDate2, courseStartDate2, "name2"));
|
||||
assertFalse(periodOverlap); // should NOT overlap
|
||||
}
|
||||
|
||||
@ -307,7 +320,9 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
final Date endDate1 = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod1 = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
|
||||
cal.set(2012, Calendar.APRIL, 20);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod1 = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, courseStartDate, "name1");
|
||||
// edit the period
|
||||
applicationPeriod1.getProjectClass().add(master);
|
||||
cal.set(2012, Calendar.MAY, 2);
|
||||
@ -335,10 +350,12 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date endDate = cal.getTime();
|
||||
cal.set(Calendar.HOUR_OF_DAY, 14);
|
||||
final Date endDate2 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate, "name1");
|
||||
cal.set(Calendar.APRIL, 20);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate, courseStartDate, "name1");
|
||||
Set<ProjectClass> myMasterSet = new HashSet<ProjectClass>();
|
||||
myMasterSet.add(master);
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myMasterSet, startDate, endDate2, "name1"));
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myMasterSet, startDate, endDate2, courseStartDate, "name1"));
|
||||
assertFalse(periodOverlap); // should NOT overlap
|
||||
}
|
||||
|
||||
@ -356,12 +373,16 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.set(2012, Calendar.DECEMBER, 2);
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
|
||||
cal.set(2012, Calendar.DECEMBER, 20);
|
||||
final Date courseStartDate1 = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, courseStartDate1, "name1");
|
||||
cal.set(2012, Calendar.MAY, 2);
|
||||
final Date startDate2 = cal.getTime();
|
||||
cal.set(2012, Calendar.JUNE, 2);
|
||||
final Date endDate2 = cal.getTime();
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate2, endDate2, "name1"));
|
||||
cal.set(2012, Calendar.JUNE, 25);
|
||||
final Date courseStartDate2 = cal.getTime();
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate2, endDate2, courseStartDate2, "name1"));
|
||||
assertTrue(periodOverlap); // should overlap
|
||||
}
|
||||
|
||||
@ -379,13 +400,16 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate = cal.getTime();
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
final Date endDate = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate, "name1");
|
||||
cal.set(2012, Calendar.APRIL, 5);
|
||||
final Date courseStartDate = cal.getTime();
|
||||
applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate, courseStartDate, "name1");
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
cal.set(Calendar.HOUR_OF_DAY, 13);
|
||||
final Date endDate2 = cal.getTime();
|
||||
Set<ProjectClass> multipleProjectClasses = new HashSet<ProjectClass>();
|
||||
multipleProjectClasses.add(bachelor);
|
||||
multipleProjectClasses.add(master);
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate2, "name1"));
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate2, courseStartDate, "name1"));
|
||||
assertTrue(periodOverlap); // should overlap
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user