connecting ideas to currently open application period when being selected by an author
This commit is contained in:
parent
ae2edb6f9c
commit
c98549a0f7
src/main/java/se/su/dsv/scipro/springdata
@ -8,18 +8,17 @@ import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.mysema.query.types.expr.BooleanExpression;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
|
||||
import se.su.dsv.scipro.match.dataobject.QApplicationPeriod;
|
||||
import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
|
||||
import se.su.dsv.scipro.springdata.repos.ApplicationPeriodRepo;
|
||||
import se.su.dsv.scipro.springdata.services.ApplicationPeriodService;
|
||||
|
||||
import com.mysema.query.types.expr.BooleanExpression;
|
||||
|
||||
@Service ( "applicationPeriodService" )
|
||||
@Transactional ( readOnly = true )
|
||||
public class ApplicationPeriodServiceImpl extends AbstractQueryService<ApplicationPeriod, Long> implements ApplicationPeriodService {
|
||||
@ -41,6 +40,16 @@ public class ApplicationPeriodServiceImpl extends AbstractQueryService<Applicati
|
||||
return constructList(periods);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplicationPeriod getCurrentPeriod(Date currentDate, ProjectClass pc) {
|
||||
ApplicationPeriod ap = applicationPeriodRepo.findOne(startedBefore(currentDate).and(endedAfter(currentDate)).and(haveProjectClass(pc)));
|
||||
return ap;
|
||||
}
|
||||
|
||||
private BooleanExpression haveProjectClass(ProjectClass pc) {
|
||||
return QApplicationPeriod.applicationPeriod.projectClass.contains(pc);
|
||||
}
|
||||
|
||||
private BooleanExpression startedBefore(Date currentDate){
|
||||
return QApplicationPeriod.applicationPeriod.startDate.before(currentDate);
|
||||
}
|
||||
@ -56,4 +65,5 @@ public class ApplicationPeriodServiceImpl extends AbstractQueryService<Applicati
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package se.su.dsv.scipro.springdata.serviceimpls;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.SortedSet;
|
||||
|
||||
@ -24,6 +25,7 @@ import se.su.dsv.scipro.match.dataobject.QSupervisorIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.Watson;
|
||||
import se.su.dsv.scipro.springdata.repos.SupervisorIdeaRepo;
|
||||
import se.su.dsv.scipro.springdata.services.ApplicationPeriodService;
|
||||
import se.su.dsv.scipro.springdata.services.StudentService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorService;
|
||||
@ -42,6 +44,8 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
private StudentService studentService;
|
||||
@Resource
|
||||
private SupervisorService supervisorService;
|
||||
@Resource
|
||||
private ApplicationPeriodService applicationPeriodService;
|
||||
|
||||
private int MAX_PARTNERS = 1;
|
||||
|
||||
@ -117,6 +121,7 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
s.addIdeaParticipation(ip);
|
||||
}
|
||||
idea.setIdeaStatus(IdeaStatus.TAKEN);
|
||||
idea.setApplicationPeriod(applicationPeriodService.getCurrentPeriod(new Date(), idea.getProjectClass()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -142,6 +147,8 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
}
|
||||
//Erase watson boxes
|
||||
idea.setWatson(new Watson());
|
||||
//Remove application period association
|
||||
idea.setApplicationPeriod(null);
|
||||
//Change status back to waiting
|
||||
idea.setIdeaStatus(IdeaStatus.WAITING);
|
||||
|
||||
|
@ -3,10 +3,11 @@ package se.su.dsv.scipro.springdata.services;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
|
||||
|
||||
public interface ApplicationPeriodService extends GenericService<ApplicationPeriod, Long>, QueryService<ApplicationPeriod, Long> {
|
||||
|
||||
List<ApplicationPeriod> getCurrentPeriods(final Date currentDate);
|
||||
|
||||
ApplicationPeriod getCurrentPeriod(final Date currentDate, final ProjectClass pc);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user