Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Tom Vahlman 2012-02-13 10:45:37 +01:00
commit 3b0ab5b1ae
9 changed files with 37 additions and 21 deletions

@ -1,12 +0,0 @@
CREATE TABLE IF NOT EXISTS `Employee_countActiveFromDates` (
`Employee_id` bigint(20) NOT NULL,
`countActiveFromDates` datetime DEFAULT NULL,
`countActiveFromDates_KEY` bigint(20) NOT NULL,
PRIMARY KEY (`Employee_id`,`countActiveFromDates_KEY`),
KEY `FK5183E457A4585B4A` (`countActiveFromDates_KEY`),
KEY `FK5183E4575FCBC05F` (`Employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `Employee_countActiveFromDates`
ADD CONSTRAINT `FK5183E4575FCBC05F` FOREIGN KEY (`Employee_id`) REFERENCES `role` (`id`),
ADD CONSTRAINT `FK5183E457A4585B4A` FOREIGN KEY (`countActiveFromDates_KEY`) REFERENCES `project_class` (`id`);

@ -0,0 +1,12 @@
CREATE TABLE IF NOT EXISTS `Employee_countActiveFromDates` (
`Employee_id` bigint(20) NOT NULL,
`countActiveFromDates` datetime DEFAULT NULL,
`countActiveFromDates_KEY` bigint(20) NOT NULL,
PRIMARY KEY (`Employee_id`,`countActiveFromDates_KEY`),
KEY `FK5183E457A4585B4A` (`countActiveFromDates_KEY`),
KEY `FK5183E4575FCBC05F` (`Employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `Employee_countActiveFromDates`
ADD CONSTRAINT `FK5183E4575FCBC05F` FOREIGN KEY (`Employee_id`) REFERENCES `role` (`id`),
ADD CONSTRAINT `FK5183E457A4585B4A` FOREIGN KEY (`countActiveFromDates_KEY`) REFERENCES `project_class` (`id`);

@ -10,8 +10,8 @@
<table class="rounded-corner">
<thead>
<tr>
<th class="rounded-left-top">Start date</th>
<th>End date</th>
<th class="rounded-left-top">Start</th>
<th>End</th>
<th>Project types</th>
<th>Name</th>
<th>Edit</th>

@ -87,8 +87,8 @@ public class AdminMatchPeriodsPanel extends Panel {
@Override
protected void populateItem(final Item<ApplicationPeriod> item) {
final ApplicationPeriod appPeriod = item.getModelObject();
item.add(new DateFormatter(DateFormatter.FORMAT.DEFAULT).createFormattedDateLabel("startDate", appPeriod.getStartDate()));
item.add(new DateFormatter(DateFormatter.FORMAT.DEFAULT).createFormattedDateLabel("endDate", appPeriod.getEndDate()));
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 Label("type",appPeriod.getProjectClass().toString()));
item.add(new Label("name",appPeriod.getName()));
final AjaxLink<Void> editLink = new AjaxLink<Void>("editLink"){

@ -11,6 +11,7 @@ import org.springframework.stereotype.Component;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.Language;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.Student;
import se.su.dsv.scipro.match.Matcher.Result;
import se.su.dsv.scipro.match.dataobject.Availability;
import se.su.dsv.scipro.match.dataobject.Keyword;
@ -162,13 +163,20 @@ public class GreedyMatchingAlgorithm implements MatchingAlgorithm {
/**
* Returns if it is possible for the supervisor to work with this project idea based on
* language and if the idea has previously been rejected by the supervisor
* language and if the idea has previously been rejected by the supervisor and if the
* supervisor is the same as any of the authors
* @param projectIdea the project idea
* @param supervisor the supervisor
* @return boolean
*/
private boolean isPossibleSupervisor(ProjectIdea projectIdea, Employee supervisor) {
return isCompatibleLanguage(projectIdea, supervisor) && isNotRejectedBySupervisor(projectIdea, supervisor);
boolean notSame = true;
for (Student s : projectIdea.getAuthors()){
if (s.getUser().equals(supervisor.getUser())){
notSame = false;
}
}
return isCompatibleLanguage(projectIdea, supervisor) && isNotRejectedBySupervisor(projectIdea, supervisor) && notSame;
}
/**

@ -47,6 +47,7 @@ import se.su.dsv.scipro.match.dao.interfaces.AuthorDao;
import se.su.dsv.scipro.match.dao.interfaces.ExemptionDao;
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
import se.su.dsv.scipro.match.dataobject.Keywords;
import se.su.dsv.scipro.match.dataobject.Match;
import se.su.dsv.scipro.match.dataobject.ProjectIdea;
import se.su.dsv.scipro.match.facade.ApplicationPeriodFacade;
import se.su.dsv.scipro.match.facade.KeywordProvidingProxy;
@ -496,12 +497,12 @@ public class ProjectIdeaSubmissionPanel extends Panel {
}
/**
* A project idea is editable if an open application period exists AND the idea creator is the logged in user.
* A project idea is editable if the following conditions are met.
* @return boolean
*/
private boolean isEditable() {
return ((ideaModel.getObject() != null && ideaModel.getObject().getId() == null) ||
facade.openApplicationPeriodsExists(ideaModel.getObject().getProjectClass()) && isCreator());
// return ((ideaModel.getObject() != null && ideaModel.getObject().getId() == null) || facade.openApplicationPeriodsExists(ideaModel.getObject().getProjectClass()) && isCreator());
return ((ideaModel.getObject() != null && ideaModel.getObject().getId() == null) || ideaModel.getObject().getMatch().getStatus().equals(Match.Status.REFUSED) && isCreator());
}
/**

@ -15,6 +15,7 @@ import se.su.dsv.scipro.data.enums.StateOfMind;
import se.su.dsv.scipro.data.facade.ProjectFacade;
import se.su.dsv.scipro.icons.ImageIcon;
import se.su.dsv.scipro.supervisor.pages.SupervisorProjectDetailsPage;
import se.su.dsv.scipro.util.DateFormatter;
/**
*
* @author Martin Peters - mpeters@dsv.su.se
@ -64,6 +65,8 @@ public abstract class AbstractSupervisorDataView extends DataView<Project>{
item.add(new Label("class", project.getProjectClass().getName() ));
item.add(new DateFormatter(DateFormatter.FORMAT.DEFAULT).createFormattedDateLabel("startDate", project.getDateCreated()));
Label title = new Label("title", getProjectTitleString(project));
PageParameters pp = new PageParameters(Project.PP_PROJECT_ID + "=" +project.getId());

@ -20,6 +20,7 @@
<th class="rounded-left-top"><a href="#" wicket:id="stateOfMindSort"><span wicket:id="stateOfMindLabel">Project state</span></a></th>
<th><a href="#" wicket:id="projectClassSort"><span wicket:id="projectClassLabel">Level</span></a></th>
<th><a href="#" wicket:id="titleSort"><span wicket:id="titleLabel">Title</span></a></th>
<th><a href="#" wicket:id="dateCreatedSort"><span wicket:id="dateCreatedLabel">Title</span></a></th>
<th>Author(s)</th>
<th class="rounded-right-top">Role</th>
</tr>
@ -37,6 +38,7 @@
<td wicket:id="class"></td>
<td><a href=# wicket:id="projectDetailsLink"><span
wicket:id="title">[Project link]</span></a></td>
<td wicket:id="startDate"></td>
<td wicket:id="authors"></td>
<td wicket:id="role">Other role</td>
</tr>

@ -91,10 +91,12 @@ public class SupervisorProjectsOverviewPanel extends Panel {
sortFields.add("stateOfMind");
sortFields.add("projectClass");
sortFields.add("title");
sortFields.add("dateCreated");
final HashMap<String, String> headerMap = new HashMap<String,String>();
headerMap.put("stateOfMind","Project state");
headerMap.put("projectClass", "Level");
headerMap.put("title", "Title");
headerMap.put("dateCreated", "Date created");
for(final SortSpecifier spec : dataProvider.getAvailableSortSpecifiers(sortFields)){
final String fieldBaseName = spec.getFieldName();
final Link<Void> link = new Link<Void>(fieldBaseName+"Sort"){