Merge branch 'export' into develop

This commit is contained in:
fred-fri 2012-08-03 11:38:23 +09:00
commit 68d74dddd2
7 changed files with 39 additions and 27 deletions

@ -32,25 +32,12 @@
<td><input name="7" type="checkbox" wicket:id="mailNotifications" /> <td><input name="7" type="checkbox" wicket:id="mailNotifications" />
</td> </td>
</tr> </tr>
<!--<tr>--> <tr>
<!--<td><label for="7">Enable remote exports:</label>--> <td><label for="7">Enable remote exports:</label>
<!--</td>--> </td>
<!--<td><input name="7" type="checkbox" wicket:id="remoteExport" />--> <td><input name="7" type="checkbox" wicket:id="remoteExport" />
<!--</td>--> </td>
<!--</tr>--> </tr>
<!--<tr>-->
<!--<td><label for="7">Supervisors can accept and decline project ideas:</label>-->
<!--</td>-->
<!--<td><input name="7" type="checkbox" wicket:id="supervisorsCanAcceptDeclinePIs" />-->
<!--</td>-->
<!--</tr>-->
<!--<tr>-->
<!--<td><label for="7">Matching algorithm matches are force accepted:</label>-->
<!--</td>-->
<!--<td><input name="7" type="checkbox" wicket:id="matchAlgorithmMatchesAreForceAccepted" />-->
<!--</td>-->
<!--</tr>-->
</table> </table>

@ -44,7 +44,7 @@ public class AdminGeneralSettingsPage extends AbstractAdminSettingsPage {
add(systemFromMail); add(systemFromMail);
add(smtpServer); add(smtpServer);
add(mailNotifications); add(mailNotifications);
// add(remoteExport); add(remoteExport);
} }

@ -1,6 +1,7 @@
package se.su.dsv.scipro.io.facade; package se.su.dsv.scipro.io.facade;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import se.su.dsv.scipro.data.dataobjects.Project; import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.dataobjects.ProjectFollower; import se.su.dsv.scipro.data.dataobjects.ProjectFollower;
@ -15,6 +16,7 @@ import se.su.dsv.scipro.io.exceptions.ExternalExportException;
@Service @Service
public class ExporterFacade { public class ExporterFacade {
@Qualifier("externalExporter")
@Autowired @Autowired
ExternalExporter externalExporter; ExternalExporter externalExporter;
@ -31,7 +33,7 @@ public class ExporterFacade {
}catch(ExternalExportException eee){ }catch(ExternalExportException eee){
externalExporter.deleteProject(""+p.getIdentifier()); externalExporter.deleteProject(""+p.getIdentifier());
System.out.println(eee.getMessage()); System.out.println(eee.getMessage());
//error(eee.getMessage()); throw eee;
} }
} }

@ -202,7 +202,7 @@ public class ApiClient {
Client client = getClient(); Client client = getClient();
WebResource resource = client.resource(url); WebResource resource = client.resource(url);
ClientResponse clientResponse = resource.accept(MediaType.APPLICATION_JSON_TYPE).delete(ClientResponse.class); ClientResponse clientResponse = resource.accept(MediaType.APPLICATION_JSON_TYPE).delete(ClientResponse.class);
if(clientResponse.getStatus() != 200){ if(clientResponse.getStatus() != 204){
throw new ExternalExportException("Could not delete project"); throw new ExternalExportException("Could not delete project");
} }
return ""+clientResponse.getStatus(); return ""+clientResponse.getStatus();

@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
import se.su.dsv.scipro.data.dataobjects.*; import se.su.dsv.scipro.data.dataobjects.*;
import se.su.dsv.scipro.data.enums.ProjectStatus; import se.su.dsv.scipro.data.enums.ProjectStatus;
import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles; import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles;
import se.su.dsv.scipro.io.exceptions.ExternalExportException;
import se.su.dsv.scipro.io.facade.ExporterFacade; import se.su.dsv.scipro.io.facade.ExporterFacade;
import se.su.dsv.scipro.match.dataobject.ProjectIdea; import se.su.dsv.scipro.match.dataobject.ProjectIdea;
import se.su.dsv.scipro.springdata.repos.*; import se.su.dsv.scipro.springdata.repos.*;
@ -185,8 +186,12 @@ public class ProjectServiceImpl extends AbstractQueryService<Project, Long> impl
p = projectRepo.save(p); p = projectRepo.save(p);
} }
exporterFacade.exportProject(p, p.getHeadSupervisor().getUnit()); try {
return p; exporterFacade.exportProject(p, p.getHeadSupervisor().getUnit());
return p;
} catch (ExternalExportException eee){
throw eee;
}
} }
else return null; else return null;
} }

@ -6,7 +6,7 @@
</head> </head>
<body> <body>
<wicket:panel> <wicket:panel>
<div wicket:id="feedbackPanel"></div>
<div><button wicket:id="export">Create project and export to Daisy</button></div> <div><button wicket:id="export">Create project and export to Daisy</button></div>
<br> <br>

@ -8,6 +8,7 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model; import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean; import org.apache.wicket.spring.injection.annot.SpringBean;
@ -15,6 +16,7 @@ import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.data.dataobjects.Employee; import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings; import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings;
import se.su.dsv.scipro.data.dataobjects.Student; import se.su.dsv.scipro.data.dataobjects.Student;
import se.su.dsv.scipro.io.exceptions.ExternalExportException;
import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao; import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
import se.su.dsv.scipro.match.dataobject.*; import se.su.dsv.scipro.match.dataobject.*;
import se.su.dsv.scipro.security.auth.roles.Roles; import se.su.dsv.scipro.security.auth.roles.Roles;
@ -39,9 +41,15 @@ public class WatsonInfoPanel extends Panel {
@SpringBean @SpringBean
private GeneralSystemSettingsService generalSystemSettingsService; private GeneralSystemSettingsService generalSystemSettingsService;
private FeedbackPanel feedbackPanel;
public WatsonInfoPanel(String id, final ProjectIdea projectIdea) { public WatsonInfoPanel(String id, final ProjectIdea projectIdea) {
super(id); super(id);
feedbackPanel = new FeedbackPanel("feedbackPanel");
feedbackPanel.setOutputMarkupId(true);
add(feedbackPanel);
add(new Label("level", projectIdea.getProjectClass().getName())); add(new Label("level", projectIdea.getProjectClass().getName()));
// add(new Label("authors", getAuthors(projectIdea.getAuthors()))); // add(new Label("authors", getAuthors(projectIdea.getAuthors())));
@ -62,10 +70,20 @@ public class WatsonInfoPanel extends Panel {
projectIdea.getMatch().getSupervisor().getUnit() != null && projectIdea.getMatch().getSupervisor().getUnit() != null &&
projectIdea.getProject() == null && projectIdea.getProject() == null &&
generalSystemSettings.isRemoteExport(); generalSystemSettings.isRemoteExport();
add(new AjaxLink("export") { add(new AjaxLink("export") {
@Override @Override
public void onClick(AjaxRequestTarget target) { public void onClick(AjaxRequestTarget target) {
projectService.createAndExportProjectFromProjectIdea(projectIdea);
try {
projectService.createAndExportProjectFromProjectIdea(projectIdea);
target.addComponent(feedbackPanel);
info("Project created and exported as a Thesis into Daisy.");
} catch (ExternalExportException eee){
target.addComponent(feedbackPanel);
error("This project idea could not exported to Daisy. Try creating a thesis in Daisy manually.");
}
target.addComponent(this); target.addComponent(this);
this.setEnabled(false); this.setEnabled(false);
this.setVisible(false); this.setVisible(false);