Skip to content
Snippets Groups Projects
Commit 1368ca1a authored by Tom Käsler's avatar Tom Käsler
Browse files

implement exportSession including motds

add constructors to transport classes to parse "main"class
parent f2d3a026
No related merge requests found
......@@ -272,7 +272,7 @@ public class SessionController extends PaginationController {
@ApiOperation(value = "export sessions", nickname = "exportSession")
@RequestMapping(value = "/export", method = RequestMethod.GET)
public List<ImportExportSession> exportSession(
@ApiParam(value = "comma seperated list of sessionkeys", required = true) @PathVariable final String sessionkeys,
@ApiParam(value = "comma seperated list of sessionkeys", required = true) @RequestParam(value ="sessionkeys", defaultValue = "") final String sessionkeys,
@ApiParam(value = "http servlet response", required = true) final HttpServletResponse response
) {
List<ImportExportSession> sessions = new ArrayList<ImportExportSession>();
......
......@@ -1623,6 +1623,12 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
return getQuestions(view, session);
}
@Override
public List<Question> getAllSkillQuestions(final Session session) {
final List<Question> questions = getQuestions(new NovaView("skill_question/by_session"), session);
return questions;
}
private List<Question> getQuestions(final NovaView view, final Session session) {
view.setStartKeyArray(session.get_id());
view.setEndKeyArray(session.get_id(), "{}");
......@@ -2189,8 +2195,27 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
}
@Override
public ImportExportQuestion exportSession(String sessionkey) {
public ImportExportSession exportSession(String sessionkey) {
ImportExportSession ies = new ImportExportSession();
Session session = getDatabaseDao().getSessionFromKeyword(sessionkey);
ies.setSessionFromSessionObject(session);
List<Question> questionList = getDatabaseDao().getAllSkillQuestions(session);
for (Question q : questionList) {
List<de.thm.arsnova.entities.transport.Answer> aL = new ArrayList<de.thm.arsnova.entities.transport.Answer>();
for (Answer a : this.getDatabaseDao().getAllAnswers(q)) {
de.thm.arsnova.entities.transport.Answer ta = new de.thm.arsnova.entities.transport.Answer(a);
aL.add(ta);
}
ies.addQuestionWithAnswers(q, aL);
}
List<de.thm.arsnova.entities.transport.InterposedQuestion> iL = new ArrayList<de.thm.arsnova.entities.transport.InterposedQuestion>();
for (InterposedQuestion i : getDatabaseDao().getInterposedQuestions(session, 0, 0)) {
de.thm.arsnova.entities.transport.InterposedQuestion ti = new de.thm.arsnova.entities.transport.InterposedQuestion(i);
iL.add(ti);
}
ies.setFeedbackQuestions(iL);
ies.setMotds(getDatabaseDao().getMotdsForSession(session.getKeyword()));
return ies;
}
@Override
......
......@@ -153,6 +153,8 @@ public interface IDatabaseDao {
List<Question> getPreparationQuestionsForTeachers(Session session);
List<Question> getAllSkillQuestions(Session session);
int getLectureQuestionCount(Session session);
int getFlashcardCount(Session session);
......
......@@ -41,6 +41,13 @@ public class Answer implements Serializable {
private boolean abstention;
public Answer(de.thm.arsnova.entities.Answer a) {
answerSubject = a.getAnswerSubject();
answerText = a.getAnswerText();
answerImage = a.getAnswerImage();
abstention = a.isAbstention();
}
@ApiModelProperty(required = true, value = "used to display text answer")
public String getAnswerText() {
return answerText;
......
......@@ -17,9 +17,11 @@
*/
package de.thm.arsnova.entities.transport;
import java.util.ArrayList;
import de.thm.arsnova.entities.Question;
import de.thm.arsnova.entities.Session;
import de.thm.arsnova.entities.User;
import de.thm.arsnova.entities.Motd;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -38,6 +40,13 @@ public class ImportExportSession {
private List<InterposedQuestion> feedbackQuestions;
private List<Motd> motds;
public ImportExportSession() {
questions = new ArrayList<ImportExportQuestion>();
feedbackQuestions = new ArrayList<InterposedQuestion>();
}
@ApiModelProperty(required = true, value = "used to display session")
public ImportExportSesssion getSession() {
return session;
......@@ -65,6 +74,30 @@ public class ImportExportSession {
this.feedbackQuestions = feedbackQuestions;
}
public List<Motd> getMotds() {
return motds;
}
public void setMotds(List<Motd> mL) {
this.motds = mL;
}
public void setSessionFromSessionObject(Session s) {
ImportExportSesssion iesession = new ImportExportSesssion();
iesession.setName(s.getName());
iesession.setShortName(s.getShortName());
iesession.setActive(s.isActive());
PublicPool p = new PublicPool();
p.setPpFromSession(s);
iesession.setPublicPool(p);
session = iesession;
}
public void addQuestionWithAnswers(Question q, List<Answer> aL) {
ImportExportQuestion ieq = new ImportExportQuestion(q);
ieq.setAnswers(aL);
}
public Session generateSessionEntity(User user) {
final Session s = new Session();
// import fields
......@@ -100,6 +133,53 @@ public class ImportExportSession {
private List<Answer> answers;
public ImportExportQuestion(Question q) {
setType(q.getType());
setQuestionType(q.getQuestionType());
setQuestionVariant(q.getQuestionVariant());
setSubject(q.getSubject());
setText(q.getText());
setActive(q.isActive());
setReleasedFor(q.getReleasedFor());
setPossibleAnswers(q.getPossibleAnswers());
setNoCorrect(q.isNoCorrect());
setSessionId(q.getSessionId());
setSessionKeyword(q.getSessionKeyword());
setTimestamp(q.getTimestamp());
setNumber(q.getNumber());
setDuration(q.getDuration());
setPiRound(q.getPiRound());
setPiRoundEndTime(q.getPiRoundEndTime());
setPiRoundStartTime(q.getPiRoundStartTime());
setPiRoundFinished(q.isPiRoundFinished());
setVotingDisabled(q.isVotingDisabled());
setShowStatistic(q.isShowStatistic());
setShowAnswer(q.isShowAnswer());
setAbstention(q.isAbstention());
setImage(q.getImage());
setFcImage(q.getFcImage());
setOffsetX(q.getOffsetX());
setOffsetY(q.getOffsetY());
setGridZoomLvl(q.getGridZoomLvl());
setGridSizeX(q.getGridSizeX());
setGridSizeY(q.getGridSizeY());
setGridIsHidden(q.getGridIsHidden());
setImgRotation(q.getImgRotation());
setToggleFieldsLeft(q.getToggleFieldsLeft());
setNumClickableFields(q.getNumClickableFields());
setThresholdCorrectAnswers(q.getThresholdCorrectAnswers());
setCvIsColored(q.getCvIsColored());
setGridLineColor(q.getGridLineColor());
setNumberOfDots(q.getNumberOfDots());
setGridType(q.getGridType());
setScaleFactor(q.getScaleFactor());
setGridScaleFactor(q.getGridScaleFactor());
setImageQuestion(q.isImageQuestion());
setTextAnswerEnabled(q.isTextAnswerEnabled());
setHint(q.getHint());
setSolution(q.getSolution());
}
@ApiModelProperty(required = true, value = " used to display answers")
public List<Answer> getAnswers() {
return answers;
......@@ -181,6 +261,20 @@ public class ImportExportSession {
private String shortName;
public void setPpFromSession(Session s) {
ppAuthorName = s.getPpAuthorName();
ppAuthorMail = s.getPpAuthorMail();
ppUniversity = s.getPpUniversity();
ppLogo = s.getPpLogo();
ppSubject = s.getPpSubject();
ppLicense = s.getPpLicense();
ppLevel = s.getPpLevel();
ppDescription = s.getPpDescription();
ppFaculty = s.getPpFaculty();
name = s.getName();
shortName = s.getShortName();
}
@ApiModelProperty(required = true, value = "used to display author name")
public String getPpAuthorName() {
return ppAuthorName;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment