Merge branch 'm3_first_meeting' into develop
This commit is contained in:
commit
47b36f75f6
src/main/java/se/su/dsv/scipro
project
pages
panels
springdata
@ -2,34 +2,22 @@ package se.su.dsv.scipro.project.pages;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.protocol.http.WebRequest;
|
||||
import org.apache.wicket.protocol.http.WebResponse;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.apache.wicket.util.time.Duration;
|
||||
import org.odlabs.wiquery.ui.dialog.Dialog;
|
||||
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.data.DomainObjectDetachableModel;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.Student;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.Idea.IdeaStatus;
|
||||
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.project.panels.AcceptIdeaDialogPanel;
|
||||
import se.su.dsv.scipro.project.panels.CompleteIdeaDialogPanel;
|
||||
import se.su.dsv.scipro.project.panels.ProjectIdeaTabMenuPanel;
|
||||
import se.su.dsv.scipro.project.panels.ProjectSubTabMenuPanel;
|
||||
import se.su.dsv.scipro.springdata.services.StudentService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
/**
|
||||
@ -121,8 +109,7 @@ public abstract class AbstractProjectIdeaPage extends ProjectPage {
|
||||
stop();
|
||||
}
|
||||
});
|
||||
} else
|
||||
System.out.println("No confirmed ideas");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,12 +18,15 @@ import se.su.dsv.scipro.project.panels.CheatSheetPanel;
|
||||
import se.su.dsv.scipro.project.panels.ProjectIdeaSubmissionPanel;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
|
||||
@Authorization(authorizedRoles={Roles.STUDENT})
|
||||
public class ProjectIdeaSubmissionPage extends AbstractProjectIdeaPage implements MenuHighlightProjectIdeas {
|
||||
|
||||
@SpringBean
|
||||
private ProjectIdeaDao projectIdeaDao;
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
|
||||
public ProjectIdeaSubmissionPage(PageParameters pp) {
|
||||
super(pp);
|
||||
@ -38,12 +41,14 @@ public class ProjectIdeaSubmissionPage extends AbstractProjectIdeaPage implement
|
||||
for(Student s: authorRoles){
|
||||
authors.add(s.getUser());
|
||||
}
|
||||
if(!authors.contains(SciProSession.get().getUser())){
|
||||
if(!authors.contains(getUser())){
|
||||
failAndRedirect();
|
||||
}
|
||||
}else
|
||||
idea = new ProjectIdea();
|
||||
add(new ProjectIdeaSubmissionPanel("projectIdeaPanel", getUser(), idea));
|
||||
|
||||
boolean alreadyParticipating = ideaService.authorParticipatingOnIdea(getUser());
|
||||
add(new ProjectIdeaSubmissionPanel("projectIdeaPanel", getUser(), idea, alreadyParticipating));
|
||||
add(new CheatSheetPanel("cheatSheetPanel"));
|
||||
|
||||
}
|
||||
|
@ -17,11 +17,13 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.data.facade.ProjectIdeaFacade;
|
||||
import se.su.dsv.scipro.icons.ImageObject;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.ApplicationPeriodDao;
|
||||
import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
|
||||
import se.su.dsv.scipro.project.pages.ProjectIdeaSubmissionPage;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
import se.su.dsv.scipro.util.DateFormatter;
|
||||
|
||||
public class ProjectIdeaPeriodPanel extends Panel {
|
||||
@ -34,6 +36,8 @@ public class ProjectIdeaPeriodPanel extends Panel {
|
||||
private ProjectClassDao projectClassDao;
|
||||
@SpringBean
|
||||
private ProjectIdeaFacade projectIdeaFacade;
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
|
||||
private WebMarkupContainer periodContainer;
|
||||
|
||||
@ -123,7 +127,9 @@ public class ProjectIdeaPeriodPanel extends Panel {
|
||||
alreadySubmittedLabel.setVisible(false);
|
||||
periodContainer.add(alreadySubmittedLabel);
|
||||
|
||||
if (projectIdeaFacade.projectIdeaAlreadySubmittedThisPeriod(SciProSession.get().getUser(), currentPeriods)){
|
||||
User currentUser = SciProSession.get().getUser();
|
||||
|
||||
if (projectIdeaFacade.projectIdeaAlreadySubmittedThisPeriod(currentUser, currentPeriods)||ideaService.authorParticipatingOnIdea(currentUser)){
|
||||
newIdeaLink.setVisible(false);
|
||||
alreadySubmittedLabel.setVisible(true);
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ import se.su.dsv.scipro.match.dao.interfaces.ApplicationPeriodDao;
|
||||
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.KeywordTypeDao;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao.TYPE;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
|
||||
import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
|
||||
import se.su.dsv.scipro.match.dataobject.Keyword;
|
||||
import se.su.dsv.scipro.match.dataobject.KeywordType;
|
||||
@ -99,10 +99,10 @@ public class ProjectIdeaSubmissionPanel extends Panel {
|
||||
* @param idea
|
||||
* The project idea, that is submitted
|
||||
*/
|
||||
public ProjectIdeaSubmissionPanel(String id, User user, ProjectIdea idea) {
|
||||
public ProjectIdeaSubmissionPanel(String id, User user, ProjectIdea idea, boolean alreadyParticipating) {
|
||||
super(id);
|
||||
add(new FeedbackPanel("feedback"));
|
||||
add(new ProjectIdeaForm("projectIdeaForm", user, new Model<ProjectIdea>(idea)));
|
||||
add(new ProjectIdeaForm("projectIdeaForm", user, new Model<ProjectIdea>(idea)).setEnabled(!alreadyParticipating));
|
||||
dialogSetup();
|
||||
}
|
||||
|
||||
|
@ -284,6 +284,12 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
return supervisorIdeaRepo.countIdeasByAuthorAndStatus(author, status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean authorParticipatingOnIdea(User user) {
|
||||
Student author = studentService.findByUser(user);
|
||||
return alreadyParticipatingOnIdea(author);
|
||||
}
|
||||
|
||||
private Predicate predicateFromParams(FilterParams params) {
|
||||
return levelFilter(params.getLevels()).and(bySupervisor(params.getSupervisor()));
|
||||
}
|
||||
@ -341,7 +347,7 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
|
||||
private BooleanExpression byStatus(IdeaStatus status){
|
||||
return QSupervisorIdea.supervisorIdea.ideaStatus.eq(status);
|
||||
}
|
||||
|
||||
|
||||
private boolean alreadyParticipatingOnIdea(Student author) {
|
||||
Long ideas = countByAuthorAndStatus(author, IdeaStatus.TAKEN);
|
||||
if(ideas==0)
|
||||
|
@ -38,6 +38,7 @@ public interface SupervisorIdeaService extends GenericService<SupervisorIdea, Lo
|
||||
|
||||
boolean hasTakenIdeas(User authorUser, boolean confirmed);
|
||||
boolean isIdeaEditable(SupervisorIdea idea, User currentUser);
|
||||
boolean authorParticipatingOnIdea(User user);
|
||||
|
||||
Pair<Boolean, String> validateIdeaAcceptance(SupervisorIdea idea, User loggedInUser, SortedSet<Student> students);
|
||||
Pair<Boolean, String> validatePartnerAcceptance(User loggedInUser);
|
||||
|
Loading…
x
Reference in New Issue
Block a user