Skip to content
Snippets Groups Projects
Commit b20fbe0b authored by hg's avatar hg
Browse files

Merge OpenOLAT default branch to OpenOLAT 10 with 72e511b71d838ae7c0f75347a7944d96c5fb51fd

parents 3e0210f0 129e7ec7
No related branches found
No related tags found
No related merge requests found
Showing
with 74 additions and 32 deletions
...@@ -70,3 +70,4 @@ cee7299c2b62edf89f6164ab81f3b785a234f95b OpenOLAT 9.3.2 ...@@ -70,3 +70,4 @@ cee7299c2b62edf89f6164ab81f3b785a234f95b OpenOLAT 9.3.2
4b1f3cb4957afcae660aa0823fa96aedf55a9382 OpenOLAT 9.3.3 4b1f3cb4957afcae660aa0823fa96aedf55a9382 OpenOLAT 9.3.3
4e992c6a31e099192c90eb5f364950bd34cc7741 OpenOLAT 9.3.4 4e992c6a31e099192c90eb5f364950bd34cc7741 OpenOLAT 9.3.4
3e4c2cc8495ac15f4af7397382655cfee1420336 OpenOLAT 9.3.5 3e4c2cc8495ac15f4af7397382655cfee1420336 OpenOLAT 9.3.5
9a5d02062c328f6ab31aae75d02e7170c81fb459 OpenOLAT 9.4.0
#Thu Sep 05 14:17:25 CEST 2013 #Thu May 15 14:40:56 CEST 2014
alert=Favor selecionar no m\u00EDnimo um objeto para sua a\u00E7\u00E3o. alert=Favor selecionar no m\u00EDnimo um objeto para sua a\u00E7\u00E3o.
back=Voltar back=Voltar
calendar.choose=Escolha uma data do mini calend\u00E1rio calendar.choose=Escolha uma data do mini calend\u00E1rio
...@@ -60,6 +60,7 @@ rating.5.4=$\:rating.4.4 ...@@ -60,6 +60,7 @@ rating.5.4=$\:rating.4.4
rating.5.5=Excelente rating.5.5=Excelente
rating.explanation=Clique aqui para fazer avalia\u00E7\u00F5es rating.explanation=Clique aqui para fazer avalia\u00E7\u00F5es
save=Salvar save=Salvar
save.close=Salvar e fechar
savesas=Salvar como savesas=Salvar como
search=Buscar search=Buscar
select=Selecionar select=Selecionar
......
#Fri Dec 17 17:13:22 CET 2010 #Thu May 15 16:45:03 CEST 2014
action.choose=Selecionar
actions.title=Modifica\u00E7\u00F5es actions.title=Modifica\u00E7\u00F5es
chelp.del=<i>$\:subs.deleted</i> chelp.del=<i>$\:subs.deleted</i>
chelp.home=<i>$org.olat.home\:menu.root</i> chelp.home=<i>$org.olat.home\:menu.root</i>
...@@ -28,16 +29,13 @@ chelp.type=Nesta coluna, o tipo de objeto subscrito \u00E9 exibido. A coluna est ...@@ -28,16 +29,13 @@ chelp.type=Nesta coluna, o tipo de objeto subscrito \u00E9 exibido. A coluna est
chelp.unsubs=<i>$\:command.unsubscribe</i> chelp.unsubs=<i>$\:command.unsubscribe</i>
command.subscribe=Inscrever command.subscribe=Inscrever
command.unsubscribe=Desinscrever command.unsubscribe=Desinscrever
help.hover.notif=Ajuda para notifica\u00E7\u00F5es
subscription.listitem.dateprefix=em {0}
user.unknown=desconhecido
action.choose=Selecionar
confirm.delete=Voc\u00EA realmente quer apagar esta notifica\u00E7\u00E3o em que voc\u00EA se inscreveu? confirm.delete=Voc\u00EA realmente quer apagar esta notifica\u00E7\u00E3o em que voc\u00EA se inscreveu?
email.nok=Not\u00EDcias n\u00E3o puderam ser enviadas via e-mail. Por favor, tente novamente mais tarde ou contacte a equipe de suporte. email.nok=Not\u00EDcias n\u00E3o puderam ser enviadas via e-mail. Por favor, tente novamente mais tarde ou contacte a equipe de suporte.
email.ok=Not\u00EDcias enviadas por e-mail. email.ok=Not\u00EDcias enviadas por e-mail.
emailLink=Enviar not\u00EDcias por e-mail emailLink=Enviar not\u00EDcias por e-mail
error.date=Formato de data errada (dd.mm.yyyy) error.date=Formato de data errada (dd.mm.yyyy)
error.publisherdeleted=O recurso foi apagado e n\u00E3o pode mais ser mostrado. error.publisherdeleted=O recurso foi apagado e n\u00E3o pode mais ser mostrado.
help.hover.notif=Ajuda para notifica\u00E7\u00F5es
info.notification.deleted=Esta notifica\u00E7\u00E3o subscrita foi exclu\u00EDda info.notification.deleted=Esta notifica\u00E7\u00E3o subscrita foi exclu\u00EDda
news.desc=A lista abaixo cont\u00E9m todas as modifica\u00E7\u00F5es dos recursos a que voc\u00EA se inscreveu. Voc\u00EA pode escolher qualquer per\u00EDodo que voc\u00EA desejar. news.desc=A lista abaixo cont\u00E9m todas as modifica\u00E7\u00F5es dos recursos a que voc\u00EA se inscreveu. Voc\u00EA pode escolher qualquer per\u00EDodo que voc\u00EA desejar.
news.in=encontrada em news.in=encontrada em
...@@ -72,7 +70,10 @@ rss.olat.title=Bem-vindo {0} ao OLAT\! ...@@ -72,7 +70,10 @@ rss.olat.title=Bem-vindo {0} ao OLAT\!
rss.title=Not\u00EDcias OLAT para {0} rss.title=Not\u00EDcias OLAT para {0}
subs.deleted=Fonte da notifica\u00E7\u00E3o apagada\! subs.deleted=Fonte da notifica\u00E7\u00E3o apagada\!
subs.ok=V\u00E1lido subs.ok=V\u00E1lido
subscription.listitem.dateprefix=em {0}
subscriptions.desc=Por favor, selecione uma assinatura na lista para chegar ao seu recurso. Exclua a sua assinatura se voc\u00EA n\u00E3o quiser mais receber not\u00EDcias. No entanto, \u00E9 poss\u00EDvel se inscrever novamente sempre que voc\u00EA quiser. subscriptions.desc=Por favor, selecione uma assinatura na lista para chegar ao seu recurso. Exclua a sua assinatura se voc\u00EA n\u00E3o quiser mais receber not\u00EDcias. No entanto, \u00E9 poss\u00EDvel se inscrever novamente sempre que voc\u00EA quiser.
subscriptions.no.subscriptions=N\u00E3o existem assinaturas neste momento. Voc\u00EA pode inscrever-se em not\u00EDcias de f\u00F3runs, wikis, pastas e v\u00E1rios outros recursos. Para inscrever, por favor, abra um recurso antes de clicar no link "Inscrever". subscriptions.no.subscriptions=N\u00E3o existem assinaturas neste momento. Voc\u00EA pode inscrever-se em not\u00EDcias de f\u00F3runs, wikis, pastas e v\u00E1rios outros recursos. Para inscrever, por favor, abra um recurso antes de clicar no link "Inscrever".
subscriptions.title=Administrar assinaturas subscriptions.title=Administrar assinaturas
user.formatted={0} {1}
user.unknown=desconhecido
warn.nolaunch=O recursos selecionado n\u00E3o pode mais ser lan\u00E7ado. warn.nolaunch=O recursos selecionado n\u00E3o pode mais ser lan\u00E7ado.
...@@ -426,6 +426,7 @@ public class MailManagerImpl extends BasicManager implements MailManager { ...@@ -426,6 +426,7 @@ public class MailManagerImpl extends BasicManager implements MailManager {
*/ */
@Override @Override
public void delete(DBMailLight mail, Identity identity, boolean deleteMetaMail) { public void delete(DBMailLight mail, Identity identity, boolean deleteMetaMail) {
if(mail == null) return;//already deleted
if(StringHelper.containsNonWhitespace(mail.getMetaId()) && deleteMetaMail) { if(StringHelper.containsNonWhitespace(mail.getMetaId()) && deleteMetaMail) {
List<DBMailLight> mails = getEmailsByMetaId(mail.getMetaId()); List<DBMailLight> mails = getEmailsByMetaId(mail.getMetaId());
for(DBMailLight childMail:mails) { for(DBMailLight childMail:mails) {
......
...@@ -55,7 +55,8 @@ public class NamedContainerImpl extends AbstractVirtualContainer { ...@@ -55,7 +55,8 @@ public class NamedContainerImpl extends AbstractVirtualContainer {
@Override @Override
public boolean exists() { public boolean exists() {
return delegate != null && delegate.exists(); VFSContainer d = getDelegate();
return d != null && d.exists();
} }
public VFSContainer getDelegate() { public VFSContainer getDelegate() {
......
#Fri Jan 24 12:09:10 CET 2014 #Thu May 15 16:45:46 CEST 2014
chelp.arch-logf.title=Avaliando arquivos de hist\u00F3rico chelp.arch-logf.title=Avaliando arquivos de hist\u00F3rico
chelp.ass=Avalia\u00E7\u00E3o chelp.ass=Avalia\u00E7\u00E3o
chelp.cont=Contexto do grupo chelp.cont=Contexto do grupo
...@@ -33,6 +33,7 @@ chelp.table1=b>Tab. 1\:</b> Poss\u00EDveis entradas nas colunas do arquivo de lo ...@@ -33,6 +33,7 @@ chelp.table1=b>Tab. 1\:</b> Poss\u00EDveis entradas nas colunas do arquivo de lo
chelp.title=T\u00EDtulo chelp.title=T\u00EDtulo
chelp.uid=Identifica\u00E7\u00E3o de usu\u00E1rio chelp.uid=Identifica\u00E7\u00E3o de usu\u00E1rio
chelp.ziel=Destino chelp.ziel=Destino
cl=Check-List
cmd.download=Baixar cmd.download=Baixar
cmd.start=Iniciar cmd.start=Iniciar
column.field.missing=- column.field.missing=-
......
...@@ -49,10 +49,10 @@ public class BulkAssessmentSettings implements Serializable { ...@@ -49,10 +49,10 @@ public class BulkAssessmentSettings implements Serializable {
if (courseNode instanceof TACourseNode) { if (courseNode instanceof TACourseNode) {
Boolean hasReturnBox = (Boolean)courseNode.getModuleConfiguration().get(TACourseNode.CONF_RETURNBOX_ENABLED); Boolean hasReturnBox = (Boolean)courseNode.getModuleConfiguration().get(TACourseNode.CONF_RETURNBOX_ENABLED);
hasReturnFiles = hasReturnBox.booleanValue(); hasReturnFiles = hasReturnBox == null ? false : hasReturnBox.booleanValue();
} else if (courseNode instanceof ProjectBrokerCourseNode) { } else if (courseNode instanceof ProjectBrokerCourseNode) {
Boolean hasReturnBox = (Boolean)courseNode.getModuleConfiguration().get(ProjectBrokerCourseNode.CONF_RETURNBOX_ENABLED); Boolean hasReturnBox = (Boolean)courseNode.getModuleConfiguration().get(ProjectBrokerCourseNode.CONF_RETURNBOX_ENABLED);
hasReturnFiles = hasReturnBox.booleanValue(); hasReturnFiles = hasReturnBox == null ? false : hasReturnBox.booleanValue();
} else { } else {
hasReturnFiles = false; hasReturnFiles = false;
} }
......
...@@ -213,14 +213,15 @@ public class EditorMainController extends MainLayoutBasicController implements G ...@@ -213,14 +213,15 @@ public class EditorMainController extends MainLayoutBasicController implements G
getUserActivityLogger().setStickyActionType(ActionType.admin); getUserActivityLogger().setStickyActionType(ActionType.admin);
addLoggingResourceable(LoggingResourceable.wrap(CourseFactory.loadCourse(ores))); addLoggingResourceable(LoggingResourceable.wrap(CourseFactory.loadCourse(ores)));
// try to acquire edit lock for this course.
lockEntry = CoordinatorManager.getInstance().getCoordinator().getLocker().acquireLock(ores, ureq.getIdentity(), CourseFactory.COURSE_EDITOR_LOCK);
if(CourseFactory.isCourseEditSessionOpen(ores.getResourceableId())) { if(CourseFactory.isCourseEditSessionOpen(ores.getResourceableId())) {
MainPanel empty = new MainPanel("empty"); MainPanel empty = new MainPanel("empty");
putInitialPanel(empty); putInitialPanel(empty);
return; return;
} }
// try to acquire edit lock for this course.
lockEntry = CoordinatorManager.getInstance().getCoordinator().getLocker().acquireLock(ores, ureq.getIdentity(), CourseFactory.COURSE_EDITOR_LOCK);
OLATResourceable lockEntryOres = OresHelper.createOLATResourceableInstance(LockEntry.class, 0l); OLATResourceable lockEntryOres = OresHelper.createOLATResourceableInstance(LockEntry.class, 0l);
CoordinatorManager.getInstance().getCoordinator().getEventBus().registerFor(this, getIdentity(), lockEntryOres); CoordinatorManager.getInstance().getCoordinator().getEventBus().registerFor(this, getIdentity(), lockEntryOres);
......
#Sat Jan 18 15:45:57 CET 2014 #Thu May 15 16:50:00 CEST 2014
access.form.label=Acesso ao curso inteiro tem access.form.label=Acesso ao curso inteiro tem
access.legend=Modificar acesso ao curso inteiro access.legend=Modificar acesso ao curso inteiro
alternative=Pesquisar por elemento de curso alternativo alternative=Pesquisar por elemento de curso alternativo
...@@ -7,6 +7,7 @@ alternative.choose=Selecione um elemento curso alternativo e converta ...@@ -7,6 +7,7 @@ alternative.choose=Selecione um elemento curso alternativo e converta
alternative.choose.description=Selecione da lista de elementos do curso alternativos, aqueles que ofere\u00E7am funcionalidade semelhante para converter este elemento de curso desativado. O t\u00EDtulo, descri\u00E7\u00E3o, regras de acesso e todo elemento subordinado ser\u00E1 copiado para o elemento convertido. alternative.choose.description=Selecione da lista de elementos do curso alternativos, aqueles que ofere\u00E7am funcionalidade semelhante para converter este elemento de curso desativado. O t\u00EDtulo, descri\u00E7\u00E3o, regras de acesso e todo elemento subordinado ser\u00E1 copiado para o elemento convertido.
apply=OK apply=OK
checkall=Selecionar tudo checkall=Selecionar tudo
checklist.wizard=Check-List
chelp.1=Voc\u00EA tem que fornecer um t\u00EDtulo curto com no m\u00E1ximo 25 caracteres. chelp.1=Voc\u00EA tem que fornecer um t\u00EDtulo curto com no m\u00E1ximo 25 caracteres.
chelp.10=Voc\u00EA pode determinar se apenas o seu conte\u00FAdo ou o seu t\u00EDtulo e descri\u00E7\u00E3o deve ser apresentado adicionalmente na \u00E1rea de conte\u00FAdo quando clicar em um elemento de curso em sua navega\u00E7\u00E3o. chelp.10=Voc\u00EA pode determinar se apenas o seu conte\u00FAdo ou o seu t\u00EDtulo e descri\u00E7\u00E3o deve ser apresentado adicionalmente na \u00E1rea de conte\u00FAdo quando clicar em um elemento de curso em sua navega\u00E7\u00E3o.
chelp.10acc=Este elemento de curso ficar\u00E1 vis\u00EDvel somente para tutores e administradores. chelp.10acc=Este elemento de curso ficar\u00E1 vis\u00EDvel somente para tutores e administradores.
...@@ -331,6 +332,7 @@ command.coursepreview=Visualiza\u00E7\u00E3o? do curso ...@@ -331,6 +332,7 @@ command.coursepreview=Visualiza\u00E7\u00E3o? do curso
command.deletenode=Apagar command.deletenode=Apagar
command.deletenode.header=A\u00E7\u00F5es command.deletenode.header=A\u00E7\u00F5es
command.movenode=Mover command.movenode=Mover
command.multi.checklist=M\u00FAltiplos Check-Lists
command.multi.sps=M\u00FAltiplas p\u00E1ginas command.multi.sps=M\u00FAltiplas p\u00E1ginas
command.publish=Publicar command.publish=Publicar
condition.noAccessExplanation.title=Informa\u00E7\u00E3o se vis\u00EDvel e acesso bloqueado condition.noAccessExplanation.title=Informa\u00E7\u00E3o se vis\u00EDvel e acesso bloqueado
...@@ -450,7 +452,9 @@ publish.notpossible.setincomplete=Os elementos selecionados a serem publicados r ...@@ -450,7 +452,9 @@ publish.notpossible.setincomplete=Os elementos selecionados a serem publicados r
publish.nowarnings=Problemas n\u00E3o encontrados publish.nowarnings=Problemas n\u00E3o encontrados
publish.step.title.confirm=Sum\u00E1rio de modifica\u00E7\u00F5es publish.step.title.confirm=Sum\u00E1rio de modifica\u00E7\u00F5es
publish.step.title.messages=Informa\u00E7\u00E3o publish.step.title.messages=Informa\u00E7\u00E3o
publish.step.update.title=Atualiza\u00E7\u00E3o em "background"
publish.title=Publicar modifica\u00E7\u00F5es em curso em andamento publish.title=Publicar modifica\u00E7\u00F5es em curso em andamento
publish.update.description=Durante a publica\u00E7\u00E3o, os seguintes processos em segundo plano devem ser executados, a fim de garantir a consist\u00EAncia dos dados. Este processo pode levar algum tempo. Por favor, aguarde com a conclus\u00E3o da publica\u00E7\u00E3o at\u00E9 que tenha recebido um retorno de acordo.
publish.withwarnings=Aviso publish.withwarnings=Aviso
publish.wizard.title=Publica\u00E7\u00E3o publish.wizard.title=Publica\u00E7\u00E3o
published.latest=Este curso foi publicado pela \u00FAltima vez em {0}. published.latest=Este curso foi publicado pela \u00FAltima vez em {0}.
......
...@@ -181,7 +181,7 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr ...@@ -181,7 +181,7 @@ public class ImportMemberOverviewIdentitiesController extends StepFormBasicContr
//search by names, must be lower case //search by names, must be lower case
List<Identity> identities = securityManager.findIdentitiesByName(identListLowercase); List<Identity> identities = securityManager.findIdentitiesByName(identListLowercase);
for(Identity identity:identities) { for(Identity identity:identities) {
identListLowercase.remove(identity.getName()); identListLowercase.remove(identity.getName().toLowerCase());
if (!PersistenceHelper.containsPersistable(oks, identity) if (!PersistenceHelper.containsPersistable(oks, identity)
&& !securityManager.isIdentityInSecurityGroup(identity, anonymousSecGroup)) { && !securityManager.isIdentityInSecurityGroup(identity, anonymousSecGroup)) {
oks.add(identity); oks.add(identity);
......
#Wed May 26 20:48:48 CEST 2010 #Thu May 15 16:50:08 CEST 2014
editor.lock.message=Este elemento de curso est\u00E1 sendo modificado e, portanto, est\u00E1 bloqueado. editor.lock.message=Este elemento de curso est\u00E1 sendo modificado e, portanto, est\u00E1 bloqueado.
editor.lock.title=Elemento de curso trancado editor.lock.title=Elemento de curso trancado
guestnoaccess.message=Esta parte do curso n\u00E3o \u00E9 acess\u00EDvel para usu\u00E1rios convidados. <p>Para acessar esta parte do curso voc\u00EA tem que estar autenticado via sua universidade ou registrado no OLAT. guestnoaccess.message=Esta parte do curso n\u00E3o \u00E9 acess\u00EDvel para usu\u00E1rios convidados. <p>Para acessar esta parte do curso voc\u00EA tem que estar autenticado via sua universidade ou registrado no OLAT.
...@@ -7,6 +7,7 @@ learningObjectives.title=Descri\u00E7\u00E3o ...@@ -7,6 +7,7 @@ learningObjectives.title=Descri\u00E7\u00E3o
preview.notavailable=Nenhuma visualiza\u00E7\u00E3o est\u00E1 dispon\u00EDvel para o elemento de curso preview.notavailable=Nenhuma visualiza\u00E7\u00E3o est\u00E1 dispon\u00EDvel para o elemento de curso
title_bc=Pasta title_bc=Pasta
title_blog=Blog title_blog=Blog
title_checklist=Check-List
title_cl=Check list title_cl=Check list
title_co=Formul\u00E1rio de contato title_co=Formul\u00E1rio de contato
title_cp=M\u00F3dulo IMS-CP title_cp=M\u00F3dulo IMS-CP
......
...@@ -559,6 +559,8 @@ public class CheckListAssessmentController extends FormBasicController implement ...@@ -559,6 +559,8 @@ public class CheckListAssessmentController extends FormBasicController implement
courseNode.updateScoreEvaluation(userCourseEnv, identity); courseNode.updateScoreEvaluation(userCourseEnv, identity);
} }
} }
reloadTable();
} }
private void doDisableEditingMode() { private void doDisableEditingMode() {
......
...@@ -278,21 +278,26 @@ public class CheckListRunController extends FormBasicController implements Contr ...@@ -278,21 +278,26 @@ public class CheckListRunController extends FormBasicController implements Contr
} else { } else {
theOne = wrapper.getDbCheckbox(); theOne = wrapper.getDbCheckbox();
} }
Float score; if(theOne == null) {
if(checked) { //only warning because this happen in course preview
score = wrapper.getCheckbox().getPoints(); logWarn("A checkbox is missing: " + courseOres + " / " + courseNode.getIdent(), null);
} else { } else {
score = 0f; Float score;
if(checked) {
score = wrapper.getCheckbox().getPoints();
} else {
score = 0f;
}
checkboxManager.check(theOne, getIdentity(), score, new Boolean(checked));
//make sure all results is on the database before calculating some scores
//manager commit already DBFactory.getInstance().commit();
courseNode.updateScoreEvaluation(userCourseEnv, getIdentity());
Checkbox checkbox = wrapper.getCheckbox();
logUpdateCheck(checkbox.getCheckboxId(), checkbox.getTitle());
} }
checkboxManager.check(theOne, getIdentity(), score, new Boolean(checked));
//make sure all results is on the database before calculating some scores
//manager commit already DBFactory.getInstance().commit();
courseNode.updateScoreEvaluation(userCourseEnv, getIdentity());
Checkbox checkbox = wrapper.getCheckbox();
logUpdateCheck(checkbox.getCheckboxId(), checkbox.getTitle());
exposeUserDataToVC(flc); exposeUserDataToVC(flc);
} }
......
#Thu May 15 17:05:25 CEST 2014
add.checkbox=Adicionar checkbox
assessment=Avalia\u00E7\u00E3o
assessment.checkbox.description=Edite por Checkbox\: Aplique o filtro de Checkbox para editar o mesmo Checkbox de todos os participantes.
award.point.on=Pontua\u00E7\u00E3o concedida ao selecionar
box.assessment=Editar por Checkbox
box.check=Check
box.points=Pontua\u00E7\u00E3o
box.points.info=({0} pontos)
checkbox.title=T\u00EDtulo
checklist=Check-Lists
checklist.point.example=Pontua\u00E7\u00E3o (min\: {0} / m\u00E1x\: {1})
checklist.update.assessment=Atualizando as informa\u00E7\u00F5es de avalia\u00E7\u00E3o de todos os participantes do curso.
checklist.update.efficiencystatements=Atualiza\u00E7\u00E3o os certificados de todos os usu\u00E1rios.
chelp.assessment.checkbox.1=Acesse os participantes do curso supervisionados por voc\u00EA filtrados por checkbox. Isto pode reduzir significativamente a taxa de erro, especialmente para grandes Check-Lists com v\u00E1rios CheckBox.
chelp.assessment.checkbox.2=Filtre a tabela de antem\u00E3o por grupo. Voc\u00EA pode, ent\u00E3o, escolher por primeiro ou \u00FAltimo nome, para facilitar a conformidade da sua lista de participantes com a lista de Check-Lists.
...@@ -24,7 +24,7 @@ command.openteststatistic=Test statistics ...@@ -24,7 +24,7 @@ command.openteststatistic=Test statistics
command.opensurveystatistic=Survey statistics command.opensurveystatistic=Survey statistics
command.openrightmngt=Rights management command.openrightmngt=Rights management
command.opensimplegroupmngt=Members management command.opensimplegroupmngt=Members management
command.openstatistic=Course Statistics command.openstatistic=Course statistics
command.personalnote=Notes command.personalnote=Notes
command.settings=Learning resource settings command.settings=Learning resource settings
course.closed=This course is closed and can therefore no longer be edited or updated. course.closed=This course is closed and can therefore no longer be edited or updated.
......
...@@ -17,7 +17,8 @@ command.openarchiver=Archiwizacja ...@@ -17,7 +17,8 @@ command.openarchiver=Archiwizacja
command.openassessment=Ocenianie command.openassessment=Ocenianie
command.openeditor=Edytor command.openeditor=Edytor
command.opengroupmngt=Grupy command.opengroupmngt=Grupy
command.openteststatistic=Statystyki QTI command.openteststatistic=Statystyki test
command.opensurveystatistic=Statystyki ankiet
command.openrightmngt=Uprawnienia command.openrightmngt=Uprawnienia
command.opensimplegroupmngt=Cz\u0142onkowie command.opensimplegroupmngt=Cz\u0142onkowie
command.openstatistic=Statystyki command.openstatistic=Statystyki
......
...@@ -20,6 +20,7 @@ command.opendb=Banco de dados do Curso ...@@ -20,6 +20,7 @@ command.opendb=Banco de dados do Curso
command.openeditor=Editor do curso command.openeditor=Editor do curso
command.opengroupmngt=Gerenciamento de grupo command.opengroupmngt=Gerenciamento de grupo
command.openteststatistic=Estat\u00EDsticas de Test command.openteststatistic=Estat\u00EDsticas de Test
command.opensurveystatistic=Estat\u00EDsticas de Pesquisa
command.openrightmngt=Gerenciamento de direitos command.openrightmngt=Gerenciamento de direitos
command.opensimplegroupmngt=Gest\u00E3o de membros command.opensimplegroupmngt=Gest\u00E3o de membros
command.openstatistic=Ajuda sobre as configura\u00E7\u00F5es das descri\u00E7\u00F5es command.openstatistic=Ajuda sobre as configura\u00E7\u00F5es das descri\u00E7\u00F5es
......
...@@ -301,7 +301,7 @@ public class QTIStatisticsManagerImpl implements QTIStatisticsManager { ...@@ -301,7 +301,7 @@ public class QTIStatisticsManagerImpl implements QTIStatisticsManager {
double averageScore = totalScore / totalResults; double averageScore = totalScore / totalResults;
//difficulty (p-value) //difficulty (p-value)
double difficulty = numOfCorrectAnswers / totalResults; double difficulty = numOfCorrectAnswers / (double)totalResults;
double averageDuration = totalDuration / totalResults; double averageDuration = totalDuration / totalResults;
StatisticsItem stats = new StatisticsItem(); StatisticsItem stats = new StatisticsItem();
......
#Fri Sep 06 13:56:30 CEST 2013 #Thu May 15 14:41:09 CEST 2014
add=+ add=+
add.to.list=Adicionar \u00E0 lista add.to.list=Adicionar \u00E0 lista
applications=Aplica\u00E7\u00F5es applications=Aplica\u00E7\u00F5es
...@@ -133,6 +133,8 @@ menu.pools.main=Cat\u00E1logo ...@@ -133,6 +133,8 @@ menu.pools.main=Cat\u00E1logo
menu.pools.main.alt=Cat\u00E1logo menu.pools.main.alt=Cat\u00E1logo
menu.share=Compartilhamentos p\u00FAblicos menu.share=Compartilhamentos p\u00FAblicos
metadatas=Metadados metadatas=Metadados
my.list=Minhas listas
my.share=Meus compartilhamentos
new.item=Criar pergunta new.item=Criar pergunta
next=Pr\u00F3ximo next=Pr\u00F3ximo
pool.key=ID pool.key=ID
......
...@@ -260,6 +260,9 @@ public class SearchServiceImpl implements SearchService { ...@@ -260,6 +260,9 @@ public class SearchServiceImpl implements SearchService {
Future<List<Long>> futureResults = searchExecutor.submit(run); Future<List<Long>> futureResults = searchExecutor.submit(run);
List<Long> results = futureResults.get(); List<Long> results = futureResults.get();
queryCount++; queryCount++;
if(results == null) {
results = new ArrayList<Long>(1);
}
return results; return results;
} catch (Exception e) { } catch (Exception e) {
log.error("", e); log.error("", e);
......
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