Skip to content
Snippets Groups Projects
Commit 57fdbf8f authored by User expired's avatar User expired
Browse files

Merge remote-tracking branch 'upstream/OpenOLAT_15.0' into OpenOLAT_15.0.uibk

parents eb5d012e 6ce2e869
No related branches found
No related tags found
No related merge requests found
Showing
with 49 additions and 46 deletions
......@@ -4,7 +4,7 @@ error.addinfo=Zus\u00E4tzliche Informationen\:
error.back=Zur\u00FCck
error.businesspath=Business Pfad\:
error.businesspath.unkown=Unbekannt
error.businesspath.previous=Vorherige Business Pfad\:
error.businesspath.previous=Vorheriger Business Pfad\:
error.databaseexception=Unerwarteter Datenbankfehler.
error.errnum=Fehlernummer\:
error.header=Ups, da ging was schief!
......@@ -13,8 +13,8 @@ error.login=Login
error.message1=Es ist ein Fehler aufgetreten, welcher vom System nicht automatisch behoben werden konnte. Wenn Sie den Support
error.message2=kontaktieren m\u00F6chten, notieren Sie sich bitte folgende zus\u00E4tzliche Informationen.
error.report=Fehlerinformation
error.report.tell=Bitte teilen Sie uns mit, welche Aktion zu diesem Fehler gef\u00FChrt hat. Im untenstehenden Formular k\u00f6nnen Sie beschreiben was Sie gemacht haben bevor der Fehler aufgetreten ist oder welche Aktion zu dem Fehler gef\u00fchrt hat. Sie helfen uns damit den Fehler zu finden und zu beheben, besten Dank\!<p /> Antwort erhalten Sie auf Ihre Mailadresse, die Sie in OLAT in Ihrem Profil angegeben haben.
error.securityexception=Unerwarteter Sicherheitsfehler\: Sie haben nicht gen\u00FCgend Berechtigung f\u00FCr diese Aktion.
error.report.tell=Bitte teilen Sie uns mit, welche Aktion zu diesem Fehler gef\u00FChrt hat. Im untenstehenden Formular k\u00F6nnen Sie beschreiben, was Sie gemacht haben, bevor der Fehler aufgetreten ist oder welche Aktion zu dem Fehler gef\u00FChrt hat. Sie helfen uns damit, den Fehler zu finden und zu beheben, besten Dank\!<p /> Antwort erhalten Sie auf Ihre Mailadresse, die Sie in OpenOlat in Ihrem Profil angegeben haben.
error.securityexception=Unerwarteter Sicherheitsfehler\: Sie haben nicht gen\u00FCgend Berechtigungen f\u00FCr diese Aktion.
error.staleobjectexception=Das von Ihnen gew\u00E4hlte Objekt wurde in der Zwischenzeit von einem anderen Benutzer gel\u00F6scht oder von Ihnen ver\u00E4ndert.
error.technical=Technische Informationen anzeigen
error.time=Datum und Zeit\:
......
......@@ -92,21 +92,30 @@ public class AssessmentModeEditController extends FormBasicController {
private static final String[] onValues = new String[]{ "" };
private static final String[] startModeKeys = new String[] { "automatic", "manual" };
private SingleSelection targetEl, startModeEl;
private IntegerElement leadTimeEl, followupTimeEl;
private DateChooser beginEl, endEl;
private SingleSelection targetEl;
private SingleSelection startModeEl;
private IntegerElement leadTimeEl;
private IntegerElement followupTimeEl;
private DateChooser beginEl;
private DateChooser endEl;
private StaticTextElement startElementEl;
private FormLink chooseGroupsButton;
private FormLink chooseAreasButton;
private FormLink chooseStartElementButton;
private FormLink chooseElementsButton;
private FormLink chooseCurriculumElementsButton;
private TextElement nameEl, ipListEl, safeExamBrowserKeyEl;
private RichTextElement descriptionEl, safeExamBrowserHintEl;
private FormLayoutContainer chooseGroupsCont, chooseElementsCont;
private MultipleSelectionElement ipsEl, safeExamBrowserEl, forCoachEl, courseElementsRestrictionEl;
private TextElement nameEl;
private TextElement ipListEl;
private TextElement safeExamBrowserKeyEl;
private RichTextElement descriptionEl;
private RichTextElement safeExamBrowserHintEl;
private FormLayoutContainer chooseGroupsCont;
private FormLayoutContainer chooseElementsCont;
private MultipleSelectionElement ipsEl;
private MultipleSelectionElement ipsMultiselect;
private HashMap<String, String[]> ipOptionsMap;
private MultipleSelectionElement forCoachEl;
private MultipleSelectionElement safeExamBrowserEl;
private MultipleSelectionElement courseElementsRestrictionEl;
private CloseableModalController cmc;
private DialogBoxController confirmCtrl;
......@@ -124,6 +133,7 @@ public class AssessmentModeEditController extends FormBasicController {
private List<String> curriculumElementNames;
private List<String> elementKeys;
private List<String> elementNames;
private HashMap<String, String[]> ipOptionsMap;
private String startElementKey;
private AssessmentMode assessmentMode;
......@@ -248,13 +258,13 @@ public class AssessmentModeEditController extends FormBasicController {
KeyValues targetKeyValues = new KeyValues();
boolean curriculumEnabled = curriculumModule.isEnabled();
String allLabel = curriculumEnabled ? translate("target.courseGroupsAndCurriculums") : translate("target.courseAndGroups");
targetKeyValues.add(KeyValues.entry(AssessmentMode.Target.courseAndGroups.name(), allLabel));
targetKeyValues.add(KeyValues.entry(AssessmentMode.Target.course.name(), translate("target.course")));
targetKeyValues.add(KeyValues.entry(AssessmentMode.Target.groups.name(), translate("target.groups")));
if(curriculumEnabled) {
targetKeyValues.add(KeyValues.entry(AssessmentMode.Target.curriculumEls.name(), translate("target.curriculumElements")));
}
String allLabel = curriculumEnabled ? translate("target.courseGroupsAndCurriculums") : translate("target.courseAndGroups");
targetKeyValues.add(KeyValues.entry(AssessmentMode.Target.courseAndGroups.name(), allLabel));
targetEl = uifactory.addRadiosVertical("audience", "mode.target", formLayout, targetKeyValues.keys(), targetKeyValues.values());
targetEl.setElementCssClass("o_sel_assessment_mode_audience");
targetEl.setEnabled(status != Status.end);
......@@ -518,20 +528,17 @@ public class AssessmentModeEditController extends FormBasicController {
endEl.setErrorKey("form.legende.mandatory", null);
allOk &= false;
}
if(beginEl.getDate() != null && endEl.getDate() != null) {
if(beginEl.getDate().compareTo(endEl.getDate()) >= 0) {
beginEl.setErrorKey("error.begin.after.end", null);
endEl.setErrorKey("error.begin.after.end", null);
allOk &= false;
}
if(beginEl.getDate() != null && endEl.getDate() != null
&& beginEl.getDate().compareTo(endEl.getDate()) >= 0) {
beginEl.setErrorKey("error.begin.after.end", null);
endEl.setErrorKey("error.begin.after.end", null);
allOk &= false;
}
courseElementsRestrictionEl.clearError();
if(courseElementsRestrictionEl.isAtLeastSelected(1)) {
if(elementKeys.isEmpty()) {
courseElementsRestrictionEl.setErrorKey("error.course.element.mandatory", null);
allOk &= false;
}
if(courseElementsRestrictionEl.isAtLeastSelected(1) && elementKeys.isEmpty()) {
courseElementsRestrictionEl.setErrorKey("error.course.element.mandatory", null);
allOk &= false;
}
targetEl.clearError();
......
......@@ -112,8 +112,8 @@ table.header.externalId=$org.olat.repository\:table.header.externalid
table.header.externalRef=$org.olat.repository\:table.header.externalref
table.header.status=Status
table.header.target=F\u00FCr
target.courseAndGroups=Teilnehmer aus Kurs, Gruppen
target.courseGroupsAndCurriculums=Teilnehmer aus Kurs, Gruppen und Curriculum
target.courseAndGroups=Teilnehmer aus Kurs und ausgew\u00E4hlte Gruppen
target.courseGroupsAndCurriculums=Teilnehmer aus Kurs und ausgew\u00E4hlte Gruppen oder Curriculum
target.curriculumElements=Nur Curriculumteilnehmer
target.groups=Nur Gruppenteilnehmer
target.course=Nur Kursteilnehmer
......
......@@ -113,8 +113,8 @@ table.header.name=Exam
table.header.status=Status
table.header.target=For
target.course=Course participants only
target.courseAndGroups=Participants of courses, groups
target.courseGroupsAndCurriculums=Participants from course, groups and curriculums
target.courseAndGroups=Participants of courses and selected groups
target.courseGroupsAndCurriculums=Participants from course and selected groups or curriculums
target.curriculumElements=Curriculum participants only
target.groups=Group participants only
time.formatted={0}m
......
......@@ -111,8 +111,8 @@ table.header.name=Evaluation
table.header.status=Statut
table.header.target=Pour
target.course=Seulement les participants du cours
target.courseAndGroups=Participants du cours et des groupes
target.courseGroupsAndCurriculums=Participants du cours et des groupes et curriculums
target.courseAndGroups=Participants du cours et des groupes s\u00E9lectionn\u00E9s
target.courseGroupsAndCurriculums=Participants du cours et des groupes ou curriculums s\u00E9lectionn\u00E9s
target.curriculumElements=Participants de curriculum seulement
target.groups=Participants des groupes uniquement
time.formatted={0}m
......
......@@ -111,8 +111,6 @@ table.header.name=Teste
table.header.status=Status
table.header.target=Para
target.course=Apenas participantes do curso
target.courseAndGroups=Participantes do curso e grupos
target.courseGroupsAndCurriculums=Participantes do curso, grupos e curr\u00EDculos
target.curriculumElements=Somente participantes do curr\u00EDculo
target.groups=Apenas participantes do grupo
time.formatted={0}m
......
......@@ -224,7 +224,7 @@ class EvaluationFormSessionDAO {
sessionImpl.setFirstSubmissionDate(sessionImpl.getSubmissionDate());
}
}
dbInstance.getCurrentEntityManager().merge(sessionImpl);
session = dbInstance.getCurrentEntityManager().merge(sessionImpl);
}
return session;
}
......
......@@ -173,7 +173,11 @@ public class LoginPage {
}
//wait until the content appears
OOGraphene.waitElement(landingPointBy, 30, browser);
try {
OOGraphene.waitElement(landingPointBy, 30, browser);
} catch(Exception e) {
OOGraphene.takeScreenshot("Login", browser);
}
return this;
}
......
......@@ -52,16 +52,14 @@ public class MyCoursesPage {
public MyCoursesPage openSearch() {
By searchBy = By.className("o_sel_mycourses_search");
WebElement searchLink = browser.findElement(searchBy);
searchLink.click();
browser.findElement(searchBy).click();
OOGraphene.waitBusy(browser);
return this;
}
public MyCoursesPage openCatalog() {
By catalogBy = By.className("o_sel_mycourses_catlog");
WebElement catalogLink = browser.findElement(catalogBy);
catalogLink.click();
browser.findElement(catalogBy).click();
OOGraphene.waitBusy(browser);
return this;
}
......@@ -95,9 +93,8 @@ public class MyCoursesPage {
*/
public MyCoursesPage select(String title) {
By titleBy = By.xpath("//h4[contains(@class,'o_title')]/a[span[text()[contains(.,'" + title + "')]]]");
List<WebElement> titleLinks = browser.findElements(titleBy);
Assert.assertEquals(1, titleLinks.size());
titleLinks.get(0).click();
OOGraphene.waitElement(titleBy, browser);
browser.findElement(titleBy).click();
OOGraphene.waitBusy(browser);
return this;
}
......@@ -128,17 +125,14 @@ public class MyCoursesPage {
public MyCoursesPage selectCatalogEntry(String shortTitle) {
By titleBy = By.xpath("//div[contains(@class,'o_sublevel')]/div[contains(@class,'o_meta')]/h4/a[span[contains(.,'" + shortTitle + "')]]");
OOGraphene.waitElement(titleBy, browser);
List<WebElement> titleLinks = browser.findElements(titleBy);
Assert.assertEquals(1, titleLinks.size());
titleLinks.get(0).click();
browser.findElement(titleBy).click();
OOGraphene.waitBusy(browser);
return this;
}
public void start() {
By startBy = By.className("o_start");
WebElement startLink = browser.findElement(startBy);
startLink.click();
browser.findElement(startBy).click();
OOGraphene.waitBusy(browser);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment