added correct structure to student - project ideas as well

This commit is contained in:
Emil Siverhall 2012-07-11 13:56:37 +02:00
parent dee09e6559
commit c75de26f64
12 changed files with 118 additions and 12 deletions

@ -180,7 +180,7 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
mountBookmarkablePage("noproject", NoActiveProjectPage.class);
mountBookmarkablePage("project/checklist", ProjectChecklistPage.class);
mountBookmarkablePage("project/checklist/viewchecklist", ProjectViewCheckListPage.class);
mountBookmarkablePage("projectideas", ProjectIdeaPage.class);
mountBookmarkablePage("projectideas", MyProjectIdeasPage.class);
mountBookmarkablePage("projectideas/submit", ProjectIdeaSubmissionPage.class);
/*
* Supervisor pages

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<div class="span-24 last append-bottom">
<div wicket:id="ideaSub"></div>
</div>
<wicket:child/>
</wicket:extend>
</body>
</html>

@ -0,0 +1,38 @@
package se.su.dsv.scipro.project.pages;
import javax.servlet.http.Cookie;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.model.IModel;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.spring.injection.annot.SpringBean;
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.project.panels.ProjectIdeaTabMenuPanel;
import se.su.dsv.scipro.project.panels.ProjectSubTabMenuPanel;
/**
*
* @author Martin Peters - mpeters@dsv.su.se
*
*/
public abstract class AbstractProjectIdeaPage extends ProjectPage {
public static final String COOKIE_KEY = "authorLastVisitedPID";
public AbstractProjectIdeaPage(PageParameters pp) {
super(pp);
/**
* This is the submenu
*/
add(new ProjectIdeaTabMenuPanel("ideaSub", this.getClass()));
}
}

@ -3,15 +3,15 @@ package se.su.dsv.scipro.project.pages;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightProjectIdeas;
import se.su.dsv.scipro.project.panels.MyProjectIdeasPanel;
import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles;
//@Authorization(authorizedRoles={Roles.SYSADMIN})
@Authorization(authorizedRoles={Roles.STUDENT})
public class ProjectIdeaPage extends ProjectPage {
public class MyProjectIdeasPage extends AbstractProjectIdeaPage implements MenuHighlightProjectIdeas{
public ProjectIdeaPage(PageParameters pp) {
public MyProjectIdeasPage(PageParameters pp) {
super(pp);
add(new FeedbackPanel("feedback"));
add(new MyProjectIdeasPanel("myIdeasPanel", getUser()));

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<div class="prepend-top span-24 last">
</div>
</wicket:extend>
</body>
</html>

@ -0,0 +1,13 @@
package se.su.dsv.scipro.project.pages;
import org.apache.wicket.PageParameters;
public class ProjectIdeaStartPage extends AbstractProjectIdeaPage {
public ProjectIdeaStartPage(PageParameters pp) {
super(pp);
// TODO Auto-generated constructor stub
}
}

@ -9,7 +9,6 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.SciProApplication;
import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.basepages.MenuPage;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightProjectIdeas;
import se.su.dsv.scipro.data.dataobjects.Student;
import se.su.dsv.scipro.data.dataobjects.User;
@ -21,7 +20,7 @@ import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles;
@Authorization(authorizedRoles={Roles.STUDENT})
public class ProjectIdeaSubmissionPage extends ProjectPage implements MenuHighlightProjectIdeas {
public class ProjectIdeaSubmissionPage extends AbstractProjectIdeaPage implements MenuHighlightProjectIdeas {
@SpringBean
private ProjectIdeaDao projectIdeaDao;

@ -60,7 +60,7 @@ 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.LanguageProvidingProxy;
import se.su.dsv.scipro.project.pages.ProjectIdeaPage;
import se.su.dsv.scipro.project.pages.MyProjectIdeasPage;
import se.su.dsv.scipro.util.AutoCompleteStringFormatter;
/**
@ -315,7 +315,7 @@ public class ProjectIdeaSubmissionPanel extends Panel {
idea.setLanguages(languageSelectionPanel.getSelectedLanguages());
projectIdeaFacade.saveIdea(idea, loggedInUser, agreedSupervisorSelector.getModelObject());
setResponsePage(ProjectIdeaPage.class);
setResponsePage(MyProjectIdeasPage.class);
getSession().info("Project idea successfully submitted");
}
}

@ -0,0 +1,36 @@
package se.su.dsv.scipro.project.panels;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.Page;
import se.su.dsv.scipro.components.AbstractMenuPanel;
import se.su.dsv.scipro.project.pages.AbstractProjectIdeaPage;
import se.su.dsv.scipro.project.pages.MyProjectIdeasPage;
import se.su.dsv.scipro.project.pages.ProjectIdeaStartPage;
import se.su.dsv.scipro.project.pages.ProjectIdeaSubmissionPage;
public class ProjectIdeaTabMenuPanel extends AbstractMenuPanel{
private static final long serialVersionUID = 1L;
public ProjectIdeaTabMenuPanel(String id, Class<? extends Page> containerClass) {
super(id, AbstractProjectIdeaPage.class, containerClass);
}
@Override
protected List<MenuItem> getItemList() {
List<MenuItem> items = new ArrayList<MenuItem>();
items.add(new MenuItem("Supervisor provided project ideas", ProjectIdeaStartPage.class));
items.add(new MenuItem("Submit own project idea", ProjectIdeaSubmissionPage.class));
items.add(new MenuItem("My project idea history", MyProjectIdeasPage.class));
return items;
}
@Override
protected MenuType getMenuType() {
return MenuType.TAB_MULTIPLE_ROWS;
}
}

@ -9,7 +9,7 @@ import se.su.dsv.scipro.components.AbstractMenuPanel;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightAuthorMyProjects;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightProjectIdeas;
import se.su.dsv.scipro.project.pages.FinalSeminarProjectListPage;
import se.su.dsv.scipro.project.pages.ProjectIdeaPage;
import se.su.dsv.scipro.project.pages.ProjectIdeaStartPage;
import se.su.dsv.scipro.project.pages.ProjectPage;
import se.su.dsv.scipro.project.pages.ProjectPartnerPage;
import se.su.dsv.scipro.project.pages.ProjectStartPage;
@ -32,7 +32,7 @@ public class ProjectTabMenuPanel extends AbstractMenuPanel {
List<MenuItem> itemList = new ArrayList<MenuItem>();
itemList.add(new MenuItem("My project(s)", ProjectStartPage.class, MenuHighlightAuthorMyProjects.class));
itemList.add(new MenuItem("My project idea(s)", ProjectIdeaPage.class, MenuHighlightProjectIdeas.class));
itemList.add(new MenuItem("Project ideas", ProjectIdeaStartPage.class, MenuHighlightProjectIdeas.class));
itemList.add(new MenuItem("Project Partner", ProjectPartnerPage.class));
itemList.add(new MenuItem("All Final Seminars", FinalSeminarProjectListPage.class));

@ -20,7 +20,7 @@ import se.su.dsv.scipro.data.enums.ProjectStatus;
import se.su.dsv.scipro.data.enums.StateOfMind;
import se.su.dsv.scipro.icons.ImageIcon;
import se.su.dsv.scipro.project.pages.ProjectDetailsPage;
import se.su.dsv.scipro.project.pages.ProjectIdeaPage;
import se.su.dsv.scipro.project.pages.MyProjectIdeasPage;
import se.su.dsv.scipro.springdata.services.ProjectService;
public class ProjectsOverviewPanel extends Panel {
@ -53,7 +53,7 @@ public class ProjectsOverviewPanel extends Panel {
setResponsePage(ProjectDetailsPage.class, pp);
}
if(projects.size()==0){
setResponsePage(ProjectIdeaPage.class);
setResponsePage(MyProjectIdeasPage.class);
}
}