2562 Update Daisy API XSD

This commit is contained in:
Andreas Svanberg 2022-05-19 12:35:38 +02:00
parent 0554d18a4d
commit 942070a147
4 changed files with 59 additions and 30 deletions
core/src/main/xsd
daisy-integration/src/main/java/se/su/dsv/scipro
view/src/main/java/se/su/dsv/scipro/grading

@ -3,6 +3,7 @@
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="addThesisAuthor" type="addThesisAuthor"/>
<xs:element name="courseRegistrationForCourse" type="courseRegistrationGet"/>
<xs:element name="courseRegistrationsForCourse" type="courseRegistrationsGet"/>
<xs:element name="courseSegmentInstance" type="courseSegmentInstance"/>
@ -11,7 +12,8 @@
<xs:element name="examOccasion" type="examOccasion"/>
<xs:element name="examOccasionParticipant" type="examOccasionParticipant"/>
<xs:element name="program" type="program"/>
<xs:element name="ResearchArea2" type="ResearchArea2"/>
<xs:element name="researchAreaWithID" type="ResearchAreaWithID"/>
<xs:element name="researchAreas" type="researchAreas"/>
<xs:element name="unitWithID" type="serializableUnit"/>
<xs:element name="studentParticipation" type="studentParticipation"/>
<xs:element name="studentProgram" type="studentProgram"/>
@ -57,6 +59,31 @@
<xs:element name="degree" type="degree"/>
<xs:element name="programAdmission" type="programAdmission"/>
<xs:element name="student" type="student"/>
<xs:complexType name="addThesisAuthor">
<xs:sequence>
<xs:element name="student" type="AddThesisAuthorStudent" minOccurs="1">
</xs:element>
<xs:element name="course" type="AddThesisAuthorCourse" minOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AddThesisAuthorCourse">
<xs:sequence>
<xs:element name="level" type="educationalLevel" minOccurs="1">
</xs:element>
<xs:element name="department" type="serializableUnit" minOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AddThesisAuthorStudent">
<xs:sequence>
<xs:element name="id" type="xs:int" minOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="courseRegistrationGet">
<xs:sequence>
<xs:element name="courseID" type="xs:int" minOccurs="0">
@ -241,13 +268,20 @@
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ResearchArea2">
<xs:complexType name="ResearchAreaWithID">
<xs:sequence>
<xs:element name="id" type="xs:long" minOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="researchAreas">
<xs:sequence>
<xs:element name="researchArea" type="ResearchAreaWithID" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serializableUnit">
<xs:sequence>
<xs:element name="id" type="xs:int" minOccurs="1">
@ -321,13 +355,7 @@
</xs:element>
<xs:element name="unit" type="serializableUnit" minOccurs="0">
</xs:element>
<xs:element name="researchAreas" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="researchArea" type="ResearchArea2" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="researchAreas" type="researchAreas" minOccurs="0">
</xs:element>
</xs:sequence>
</xs:complexType>
@ -350,7 +378,7 @@
</xs:element>
<xs:element name="file" type="fil" minOccurs="0">
</xs:element>
<xs:element name="researchAreas" type="ResearchArea2" minOccurs="0" maxOccurs="unbounded">
<xs:element name="researchAreas" type="ResearchAreaWithID" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
@ -369,13 +397,7 @@
</xs:element>
<xs:element name="unit" type="serializableUnit" minOccurs="0">
</xs:element>
<xs:element name="researchAreas" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="researchArea" type="ResearchArea2" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="researchAreas" type="researchAreas" minOccurs="0">
</xs:element>
</xs:sequence>
</xs:complexType>

@ -192,9 +192,9 @@ public class ProjectExporter extends AbstractWorker {
thesis.setAborted(project.getProjectStatus() == ProjectStatus.INACTIVE);
thesis.setStartDate(startDate);
thesis.setEndDate(SciProUtilities.toCalendar(project.getExpectedEndDate()));
final ThesisToBeUpdated.ResearchAreas researchAreas = new ThesisToBeUpdated.ResearchAreas();
final ResearchAreas researchAreas = new ResearchAreas();
if (project.getResearchArea() != null && project.getResearchArea().getIdentifier() != null) {
final ResearchArea2 researchArea2 = new ResearchArea2();
final ResearchAreaWithID researchArea2 = new ResearchAreaWithID();
researchArea2.setId(project.getResearchArea().getIdentifier());
researchAreas.getResearchAreas().add(researchArea2);
}

@ -52,9 +52,9 @@ public class ExternalExporterDaisyImpl implements ExternalExporter {
exportProjectDTO.setStartDate(startDate);
exportProjectDTO.setEndDate(SciProUtilities.toCalendar(project.getExpectedEndDate()));
exportProjectDTO.setUnit(unitDTO);
final ThesisToBeCreated.ResearchAreas researchAreas = new ThesisToBeCreated.ResearchAreas();
final ResearchAreas researchAreas = new ResearchAreas();
if (project.getResearchArea() != null && project.getResearchArea().getIdentifier() != null) {
final ResearchArea2 researchArea2 = new ResearchArea2();
final ResearchAreaWithID researchArea2 = new ResearchAreaWithID();
researchArea2.setId(project.getResearchArea().getIdentifier());
researchAreas.getResearchAreas().add(researchArea2);
}

@ -9,7 +9,11 @@ import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.*;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LambdaModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.flow.RedirectToUrlException;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.lang.Classes;
@ -21,7 +25,8 @@ import se.su.dsv.scipro.file.FileDescription;
import se.su.dsv.scipro.file.FileDescriptionService;
import se.su.dsv.scipro.finalthesis.FinalThesis;
import se.su.dsv.scipro.finalthesis.FinalThesisService;
import se.su.dsv.scipro.io.dto.ResearchArea2;
import se.su.dsv.scipro.io.dto.ResearchAreaWithID;
import se.su.dsv.scipro.io.dto.ResearchAreas;
import se.su.dsv.scipro.io.dto.ThesisPublication;
import se.su.dsv.scipro.io.dto.ThesisToBeUpdated;
import se.su.dsv.scipro.io.dto.UnitWithID;
@ -29,7 +34,11 @@ import se.su.dsv.scipro.oauth.OAuth;
import se.su.dsv.scipro.oauth.OAuthService;
import se.su.dsv.scipro.profile.UserLabel;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.report.*;
import se.su.dsv.scipro.report.GradeCalculator;
import se.su.dsv.scipro.report.GradeCalculatorService;
import se.su.dsv.scipro.report.GradingReport;
import se.su.dsv.scipro.report.GradingReportService;
import se.su.dsv.scipro.report.SupervisorGradingReport;
import se.su.dsv.scipro.supervisor.pages.AbstractSupervisorProjectDetailsPage;
import se.su.dsv.scipro.system.Language;
import se.su.dsv.scipro.system.ResearchArea;
@ -39,9 +48,7 @@ import se.su.dsv.scipro.util.Either;
import javax.inject.Inject;
import java.io.IOException;
import java.time.Instant;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
public class SupervisorGradingPage extends AbstractSupervisorProjectDetailsPage {
@ -261,9 +268,9 @@ public class SupervisorGradingPage extends AbstractSupervisorProjectDetailsPage
unitWithID.setId(thesis.getUnit().getId());
thesisToBeUpdated.setUnit(unitWithID);
final ThesisToBeUpdated.ResearchAreas researchAreas = new ThesisToBeUpdated.ResearchAreas();
final ResearchAreas researchAreas = new ResearchAreas();
thesis.getResearchAreas().getResearchAreas().forEach(researchArea -> {
final ResearchArea2 researchArea2 = new ResearchArea2();
final ResearchAreaWithID researchArea2 = new ResearchAreaWithID();
researchArea2.setId(researchArea.getId());
researchAreas.getResearchAreas().add(researchArea2);
});
@ -319,7 +326,7 @@ public class SupervisorGradingPage extends AbstractSupervisorProjectDetailsPage
thesisPublication.setLanguage(projectModel.getObject().getLanguage() == Language.SWEDISH ? "sv" : "en");
ResearchArea researchArea = finalThesis.getProject().getResearchArea();
if (researchArea != null) {
ResearchArea2 researchArea2 = new ResearchArea2();
ResearchAreaWithID researchArea2 = new ResearchAreaWithID();
researchArea2.setId(researchArea.getIdentifier());
thesisPublication.getResearchAreas().add(researchArea2);
}