Vradi-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 198 discussions
r18 - in trunk: vradi-services/src/main/java/org/chorem/vradi/services/managers vradi-swing/src/main/java/org/chorem/vradi/ui/models vradi-swing/src/main/resources/i18n
by sletellier@users.chorem.org 05 May '11
by sletellier@users.chorem.org 05 May '11
05 May '11
Author: sletellier
Date: 2011-05-05 16:17:39 +0200 (Thu, 05 May 2011)
New Revision: 18
Url: http://chorem.org/repositories/revision/vradi/18
Log:
#323 Make a search on everything that determines a form
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/models/RequestFieldMenu.java
trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-05-03 17:57:05 UTC (rev 17)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-05-05 14:17:39 UTC (rev 18)
@@ -27,15 +27,19 @@
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.vradi.VradiServiceAction;
import org.chorem.vradi.beans.FormPagedResult;
import org.chorem.vradi.beans.QueryBean;
import org.chorem.vradi.beans.QueryParameters;
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Infogene;
import org.chorem.vradi.entities.ModificationTag;
import org.chorem.vradi.entities.QueryMaker;
import org.chorem.vradi.entities.RootThesaurus;
+import org.chorem.vradi.entities.Status;
import org.chorem.vradi.entities.Thesaurus;
+import org.chorem.vradi.entities.XmlStream;
import org.chorem.vradi.services.VradiException;
import org.chorem.vradi.services.search.CompareFilter;
import org.chorem.vradi.services.search.Filter;
@@ -46,6 +50,7 @@
import org.nuiton.util.DateUtil;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.entities.WikittyTreeNode;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
@@ -119,6 +124,7 @@
/** Alias pour {@link ModificationTag#FIELD_MODIFICATIONTAG_LASTSTATUSMODIFIER}. */
public static final String ALIAS_LAST_STATUS_MODIFIER = "modificateur.status";
+ public static final String FORM_TYPE_SEARCH = "formType";
/**
* Search manager constructor.
@@ -514,8 +520,29 @@
name = ModificationTag.FIELD_MODIFICATIONTAG_LASTSTATUSMODIFIER;
}
+ // sletellier 15/12/10 : [#323] Requête sur tout ce qui caractérise un formulaire
+ // If formType found on search, add restriction on ext and not do fulltext search
+ if (FORM_TYPE_SEARCH.equals(name)) {
+ search.eq(Element.ELT_EXTENSION, value);
+ return;
+ }
+
Search subSearch = search.or();
+ // Replace status by id
+ if (Infogene.FQ_FIELD_INFOGENE_STATUS.equals(name)) {
+ value = findWikittyId(Status.EXT_STATUS, Status.FQ_FIELD_STATUS_NAME, value);
+ subSearch.eq(name, value);
+ return;
+ }
+
+ // Replace xmlStram by id
+ if (Form.FQ_FIELD_FORM_XMLSTREAM.equals(name)) {
+ value = findWikittyId(XmlStream.EXT_XMLSTREAM, XmlStream.FQ_FIELD_XMLSTREAM_NAME, value);
+ subSearch.eq(name, value);
+ return;
+ }
+
// To allow find field with synthax like ext.field=""
if (name.indexOf(".") == -1) {
name = Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR + name;
@@ -592,6 +619,13 @@
}
}
+ public String findWikittyId(String ext, String fiedName, String value) {
+ Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, ext)
+ .like(fiedName, value, Like.SearchAs.AsText).criteria();
+ Wikitty wikitty = wikittyProxy.findByCriteria(criteria);
+ return wikitty == null ? null : wikitty.getId();
+ }
+
/**
* Cherche tous les thesaurus en base qui correspondent à {@code value}
* et ajoute un critère {@link Form#FQ_FIELD_THESAURUS} a la Search query
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/models/RequestFieldMenu.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/models/RequestFieldMenu.java 2011-05-03 17:57:05 UTC (rev 17)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/models/RequestFieldMenu.java 2011-05-05 14:17:39 UTC (rev 18)
@@ -33,8 +33,12 @@
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Infogene;
import org.chorem.vradi.entities.ModificationTag;
+import org.chorem.vradi.entities.Status;
+import org.chorem.vradi.entities.XmlStream;
import org.chorem.vradi.services.VradiException;
import org.chorem.vradi.services.VradiService;
+import org.chorem.vradi.services.managers.SearchManager;
+import org.chorem.vradi.ui.helpers.UIHelper;
import org.chorem.vradi.ui.helpers.VradiComparators;
import org.chorem.vradi.ui.search.SearchUI;
import org.nuiton.wikitty.WikittyUtil;
@@ -43,6 +47,7 @@
import javax.swing.JMenu;
import javax.swing.JMenuItem;
+import javax.swing.JSeparator;
import javax.swing.JTextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -116,44 +121,27 @@
infogeneMenu.add(new FieldMenuItem(fieldName));
}
- // TODO sletellier 15/12/10 : [#2557] Requête sur tout ce qui caractérise un formulaire
-// // Fill formType menu
-// FormMenuItem formTypeMenu = new FormMenuItem("formType");
-// infogeneMenu.add(formTypeMenu);
-//
-// // Get all formTypes
-// List<WikittyExtension> formTypes;
-// try {
-// formTypes = VradiService.getVradiDataService().getAllFormTypes();
-// } catch (VradiException eee) {
-// log.error("Failled to get all form types", eee);
-// ErrorDialogUI.showError(eee);
-// return;
-// }
-// for (WikittyExtension formType : formTypes) {
-// formTypeMenu.add(new JMenuItem(formType.getName()));
-// }
-//
-// // Fill status menu
-// InfogeneMenuItem statusMenu = new InfogeneMenuItem(Infogene.FIELD_INFOGENE_STATUS);
-// infogeneMenu.add(statusMenu);
-//
-// // Get all status
-// List<Status> statuses = VradiService.getVradiDataService().findAllStatus();
-// for (Status status : statuses) {
-// formTypeMenu.add(new JMenuItem(_(status.getName())));
-// }
-//
-// // Fill xmlStream menu
-// FormMenuItem xmlStreamMenu = new FormMenuItem(Form.FIELD_FORM_XMLSTREAM);
-// infogeneMenu.add(xmlStreamMenu);
-//
-// // Get all status
-// List<XmlStream> streams = VradiService.getVradiDataService().findAllXmlStreams();
-// for (XmlStream stream : streams) {
-// formTypeMenu.add(new JMenuItem(stream.getName()));
-// }
+ // TODO sletellier 15/12/10 : [#323] Requête sur tout ce qui caractérise un formulaire
+ // Fill status menu
+ JMenu statusMenu = new JMenu(UIHelper.getInfogeneTraduction(Infogene.FIELD_INFOGENE_STATUS));
+ infogeneMenu.add(statusMenu);
+ // Get all status
+ List<Status> statuses = VradiService.getVradiDataService().findAllStatus();
+ for (Status status : statuses) {
+ statusMenu.add(new FieldValueMenuItem(Infogene.FQ_FIELD_INFOGENE_STATUS, status.getName()));
+ }
+
+ // Fill xmlStream menu
+ JMenu xmlStreamMenu = new JMenu(UIHelper.getFormTraduction(Form.FIELD_FORM_XMLSTREAM));
+ infogeneMenu.add(xmlStreamMenu);
+
+ // Get all status
+ List<XmlStream> streams = VradiService.getVradiDataService().findAllXmlStreams();
+ for (XmlStream stream : streams) {
+ xmlStreamMenu.add(new FieldValueMenuItem(Form.FQ_FIELD_FORM_XMLSTREAM, stream.getName()));
+ }
+
add(infogeneMenu);
}
@@ -161,9 +149,12 @@
String formTypeName = formType.getName();
JMenu formTypeMenu = new JMenu(formTypeName);
+ formTypeMenu.add(new FormTypeMenuItem(formTypeName));
+ formTypeMenu.add(new JSeparator());
+
for (String fieldName : formType.getFieldNames()) {
- FieldMenuItem fieldMenu = new FieldMenuItem(formType, fieldName);
+ FieldMenuItem fieldMenu = new FieldMenuItem(formType, formTypeName + WikittyUtil.FQ_FIELD_NAME_SEPARATOR + fieldName);
formTypeMenu.add(fieldMenu);
formTypesFieldMenu.put(fieldName, fieldMenu);
@@ -183,7 +174,6 @@
fieldNames.add(Infogene.FQ_FIELD_INFOGENE_SOURCEURL);
fieldNames.add(Infogene.FQ_FIELD_INFOGENE_COUNTRY);
fieldNames.add(Infogene.FQ_FIELD_INFOGENE_DEPARTMENT);
- fieldNames.add(Infogene.FQ_FIELD_INFOGENE_STATUS);
return fieldNames;
}
@@ -197,9 +187,66 @@
return fieldNames;
}
+ protected class FormTypeMenuItem extends JMenuItem implements ActionListener {
+
+ protected String formTypeName;
+
+ public FormTypeMenuItem(String formTypeName) {
+ this.formTypeName = formTypeName;
+
+ addActionListener(this);
+ }
+
+ @Override
+ public String getText() {
+ return _("vradi.request.searchOnExt");
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ JTextArea requestArea = searchUI.getRequestArea();
+
+ int position = requestArea.getCaretPosition();
+ String toDisplay = SearchManager.FORM_TYPE_SEARCH + ":\"" + formTypeName + "\"";
+ requestArea.insert(toDisplay, position);
+
+ // Put carret under cotes
+ requestArea.setCaretPosition(position + toDisplay.length());
+
+ searchUI.setRequest(requestArea.getText());
+ }
+ }
+
+ protected class FieldValueMenuItem extends FieldMenuItem {
+
+ protected String value;
+
+ public FieldValueMenuItem(String fqFieldName, String value) {
+ super(fqFieldName);
+ this.value = value;
+ }
+
+ @Override
+ public String getText() {
+ return _(value);
+ }
+
+ @Override
+ public String getDisplayedText() {
+ return fqFieldName + ":\"" + value + "\"";
+ }
+
+ @Override
+ public int getFinalCarret() {
+ return 0;
+ }
+ }
+
protected class FieldMenuItem extends JMenuItem implements ActionListener {
protected String fieldName;
+ protected String fqFieldName;
protected FieldType fieldType;
@@ -212,13 +259,8 @@
}
public FieldMenuItem(WikittyExtension extension, String fqFieldName) {
- fieldName = fqFieldName;
- int i = fqFieldName.indexOf('.');
- if (i != -1) {
- fieldName = WikittyUtil.getFieldNameFromFQFieldName(fqFieldName);
- } else {
- fieldName = fqFieldName;
- }
+ this.fqFieldName = fqFieldName;
+ this.fieldName = WikittyUtil.getFieldNameFromFQFieldName(fqFieldName);
if (extension != null) {
fieldType = extension.getFieldType(fqFieldName);
description = VradiHelper.getFieldTypeDescription(fieldType);
@@ -236,16 +278,25 @@
return fieldName;
}
+ public String getDisplayedText() {
+ return fqFieldName + FIELD_NAME_SUFFIX;
+ }
+
+ public int getFinalCarret() {
+ return -1;
+ }
+
@Override
public void actionPerformed(ActionEvent e) {
JTextArea requestArea = searchUI.getRequestArea();
int position = requestArea.getCaretPosition();
- requestArea.insert(fieldName + FIELD_NAME_SUFFIX, position);
+ String displayedText = getDisplayedText();
+ requestArea.insert(displayedText, position);
// Put carret under cotes
- requestArea.setCaretPosition(position + fieldName.length() + 2);
+ requestArea.setCaretPosition(position + displayedText.length() + getFinalCarret());
searchUI.setRequest(requestArea.getText());
}
Modified: trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties
===================================================================
--- trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties 2011-05-03 17:57:05 UTC (rev 17)
+++ trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties 2011-05-05 14:17:39 UTC (rev 18)
@@ -1,11 +1,11 @@
-Can't\ create\ new\ session=Impossible de cr\u00E9er une nouvelle session
-Can't\ create\ new\ session\ for\ reason\ \:\ %s=Impossible de cr\u00E9er une nouvelle session \:\n%s
+Can't\ create\ new\ session=Impossible de cr\u00e9er une nouvelle session
+Can't\ create\ new\ session\ for\ reason\ \:\ %s=Impossible de cr\u00e9er une nouvelle session \:\n%s
Can't\ download\ file=
-Can't\ found\ any\ opened\ mail\ session,\ please\ create\ a\ new\ session\ in\ mail\ management=Aucune session de mail trouv\u00E9e. Merci de cr\u00E9er une nouvelle session dans la gestion des mails.
+Can't\ found\ any\ opened\ mail\ session,\ please\ create\ a\ new\ session\ in\ mail\ management=Aucune session de mail trouv\u00e9e. Merci de cr\u00e9er une nouvelle session dans la gestion des mails.
Can't\ upload\ file=
Confirm\ thesaurus\ deletion=Confirmation de suppression du thesaurus
Error=Erreur
-Warning\ all\ your\ thesaurus\ will\ be\ deleted\ before\ new\ import.\ Do\ you\ want\ to\ continue\ ?=Attention, tous les thesaurus seront entierrement supprim\u00E9s avant le nouvel import.\n\u00CAtes-vous s\u00FBr de vouloir continuer ?
+Warning\ all\ your\ thesaurus\ will\ be\ deleted\ before\ new\ import.\ Do\ you\ want\ to\ continue\ ?=Attention, tous les thesaurus seront entierrement supprim\u00e9s avant le nouvel import.\n\u00cates-vous s\u00fbr de vouloir continuer ?
vradi.action.about=A propos
vradi.action.about.tip=A propos de l'application Vradi...
vradi.action.cancel=Annuler
@@ -18,24 +18,24 @@
vradi.action.configuration.tip=Modifier la configuration
vradi.action.exit=Quitter
vradi.action.exit.tip=Quitter vradi
-vradi.action.fullscreen=Plein \u00E9cran
-vradi.action.fullscreen.tip=Passer en mode plein \u00E9cran
+vradi.action.fullscreen=Plein \u00e9cran
+vradi.action.fullscreen.tip=Passer en mode plein \u00e9cran
vradi.action.help=Aide
vradi.action.help.tip=Afficher l'aide
vradi.action.locale.=
-vradi.action.locale.fr=Fran\u00E7ais
-vradi.action.locale.fr.tip=Changer la langue en fran\u00E7ais
+vradi.action.locale.fr=Fran\u00e7ais
+vradi.action.locale.fr.tip=Changer la langue en fran\u00e7ais
vradi.action.locale.uk=Anglais
vradi.action.locale.uk.tip=Changer la langue en anglais
vradi.action.normalscreen=Ecran normal
vradi.action.normalscreen.tip=Revenir en mode normal
vradi.action.select=Selectionnez
vradi.action.site=Site
-vradi.action.site.tip=Acc\u00E9der au site de Vradi
+vradi.action.site.tip=Acc\u00e9der au site de Vradi
vradi.action.stat=
vradi.action.test=
vradi.action.valid=Valider
-vradi.admin.cancel.message=\u00CAtes-vous s\u00FBr de vouloir annuler les changements ?
+vradi.admin.cancel.message=\u00cates-vous s\u00fbr de vouloir annuler les changements ?
vradi.admin.cancel.title=Annuler les changements ?
vradi.admin.client=Gestion des clients
vradi.admin.confirmDelete=Voulez vous supprimer \: %1$s ?
@@ -44,35 +44,35 @@
vradi.admin.exportCSV=Export
vradi.admin.exportTitle=Export des clients, utilisateurs et groupes
vradi.admin.form=Gestion des formulaires
-vradi.admin.formsCreated.message=R\u00E9sultat de la cr\u00E9ation \:\n
-vradi.admin.formsCreated.message.allWarning=- %1$s formulaires cr\u00E9\u00E9s\n- %2$d formulaires existants\n- %3$s erreurs de date\n- %4$s erreurs de nombre
-vradi.admin.formsCreated.missingFormType=Aucun Type de formulaire associ\u00E9.
-vradi.admin.formsCreated.title=R\u00E9sultat de la cr\u00E9ation
+vradi.admin.formsCreated.message=R\u00e9sultat de la cr\u00e9ation \:\n
+vradi.admin.formsCreated.message.allWarning=- %1$s formulaires cr\u00e9\u00e9s\n- %2$d formulaires existants\n- %3$s erreurs de date\n- %4$s erreurs de nombre
+vradi.admin.formsCreated.missingFormType=Aucun Type de formulaire associ\u00e9.
+vradi.admin.formsCreated.title=R\u00e9sultat de la cr\u00e9ation
vradi.admin.group=Gestion des groupes
vradi.admin.importButtonText=Importer
vradi.admin.importCSV=Import
vradi.admin.importTitle=Import des clients, utilisateurs et groupes
-vradi.admin.isInUse=Le status %1$s est encore utilis\u00E9, la suppression est impossible.
+vradi.admin.isInUse=Le status %1$s est encore utilis\u00e9, la suppression est impossible.
vradi.admin.isInUse.title=Impossible de supprimer le status
-vradi.admin.noSelection=Veuillez s\u00E9lectionner un noeud de l'arbre.
+vradi.admin.noSelection=Veuillez s\u00e9lectionner un noeud de l'arbre.
vradi.admin.saveAnswer=Modification en cours, voulez vous sauvegarder \:
vradi.admin.saveTitle=Sauvegarder ?
vradi.admin.status=Gestion des statuts
-vradi.admin.thesaurus=Gestion des th\u00E9saurus
+vradi.admin.thesaurus=Gestion des th\u00e9saurus
vradi.admin.title=Administration
vradi.admin.userEnable=Actif
vradi.admin.warnTitle=
vradi.admin.xmlStream=Gestion des flux XML
vradi.adminClient.adresse=Adresse
vradi.adminClient.contact=Contact
-vradi.adminClient.createClient=Cr\u00E9er un client
-vradi.adminClient.createUser=Cr\u00E9er un utilisateur
+vradi.adminClient.createClient=Cr\u00e9er un client
+vradi.adminClient.createUser=Cr\u00e9er un utilisateur
vradi.adminClient.deleteClient=Supprimer
vradi.adminClient.deleteGroup=Supprimer le groupe
vradi.adminClient.listGroup=Groupes
vradi.adminClient.name=Nom
vradi.adminClient.newClientName=Nouveau client
-vradi.adminClient.tel=T\u00E9l\u00E9phone
+vradi.adminClient.tel=T\u00e9l\u00e9phone
vradi.adminClient.title=Client \: %1$s
vradi.adminField.desc=Description
vradi.adminField.lbl=Label
@@ -80,26 +80,26 @@
vradi.adminField.new=Ajouter
vradi.adminField.title=Champs du formulaire
vradi.adminField.type=Type
-vradi.adminForm.createForm=Cr\u00E9er un type de formulaire
+vradi.adminForm.createForm=Cr\u00e9er un type de formulaire
vradi.adminForm.deleteFormType=Supprimer un type de formulaire
vradi.adminForm.title=Type de formulaire \: %1$s
vradi.adminFormType.askName=Nom du type de formulaire \:
-vradi.adminFormType.askNameInvalid=Le nom du type de formulaire contient des caracteres non alphanum\u00E9rique \!
+vradi.adminFormType.askNameInvalid=Le nom du type de formulaire contient des caracteres non alphanum\u00e9rique \!
vradi.adminFormType.askNameTitle=Nouveau type de formulaire
vradi.adminFormType.deleteFormType=Supprimer le type de formulaire
vradi.adminFormType.hideInfogene=Cacher l'infogene
vradi.adminFormType.showInfogene=Afficher l'infogene
-vradi.adminFormType.template.download=T\u00E9l\u00E9charger
+vradi.adminFormType.template.download=T\u00e9l\u00e9charger
vradi.adminFormType.template.fieldBinding=Associez les champs
vradi.adminFormType.template.fieldBinding.label=Associez les champs du document OpenOffice aux champs du formulaire \:
vradi.adminFormType.template.fieldBinding.title=Associez les champs du document OpenOffice aux champs du formulaire
-vradi.adminFormType.template.label=Mod\u00E8le de g\u00E9n\u00E9ration PDF \:
+vradi.adminFormType.template.label=Mod\u00e8le de g\u00e9n\u00e9ration PDF \:
vradi.adminFormType.template.new=Ajouter
vradi.adminFormType.template.showExample=Voir un exemple
-vradi.adminFormType.template.showExample.error.message=Aucun formulaire de ce type n'a \u00E9t\u00E9 enregistr\u00E9.\nAucun aper\u00E7u n'est donc disponible.
+vradi.adminFormType.template.showExample.error.message=Aucun formulaire de ce type n'a \u00e9t\u00e9 enregistr\u00e9.\nAucun aper\u00e7u n'est donc disponible.
vradi.adminFormType.template.showExample.error.title=Aucun formulaire de ce type
-vradi.adminGroup.addUser=Ajout l'utilisateur s\u00E9lectionn\u00E9 dans le groupe
-vradi.adminGroup.createGroup=Cr\u00E9er un groupe
+vradi.adminGroup.addUser=Ajout l'utilisateur s\u00e9lectionn\u00e9 dans le groupe
+vradi.adminGroup.createGroup=Cr\u00e9er un groupe
vradi.adminGroup.listUsers=Utilisateurs
vradi.adminGroup.name=Groupes
vradi.adminGroup.newGroupName=Nouveau groupe
@@ -107,47 +107,47 @@
vradi.adminGroup.title=Groupe \: %1$s
vradi.adminRequest.cancel=Annuler
vradi.adminRequest.edit=Editer
-vradi.adminRequest.history.show=Voir l'historique des requ\u00EAtes
-vradi.adminRequest.new=Nouvelle requ\u00EAte
+vradi.adminRequest.history.show=Voir l'historique des requ\u00eates
+vradi.adminRequest.new=Nouvelle requ\u00eate
vradi.adminRequest.remove=Supprimer
-vradi.adminRequest.title=Requ\u00EAtes \:
+vradi.adminRequest.title=Requ\u00eates \:
vradi.adminRequest.valid=Valider
-vradi.adminStatus.createStatus=Cr\u00E9er un nouveau statut
+vradi.adminStatus.createStatus=Cr\u00e9er un nouveau statut
vradi.adminStatus.desc=Description
vradi.adminStatus.name=Nom
vradi.adminStatus.newStatusName=Nouveau statut
vradi.adminStatus.title=Gestion des statuts
-vradi.adminThesaurus.askCreateRootThesaurus=\u00CAtes-vous s\u00FBr de vouloir cr\u00E9ez le nouveau th\u00E9saurus %1$s ?
-vradi.adminThesaurus.askDeleteRootThesaurus=\u00CAtes-vous s\u00FBr de vouloir supprimer le th\u00E9saurus %1$s ainsi que tout ses descripteurs ?
-vradi.adminThesaurus.askDeleteThesaurus=\u00CAtes-vous s\u00FBr de vouloir supprimer le descripteur %1$s ainsi que tout ses fils (%2$s formulaires seront impact\u00E9) ?
-vradi.adminThesaurus.askEditRootThesaurus=\u00CAtes-vous s\u00FBr de vouloir renommer le th\u00E9saurus %1$s en %2$s ?
-vradi.adminThesaurus.askEditThesaurus=Voulez-vous sauvegarder les modifications pour le descripteur %1$s (%2$s formulaires seront impact\u00E9) ?
-vradi.adminThesaurus.askMoveThesaurus=\u00CAtes-vous s\u00FBr de vouloir d\u00E9placer le descripteur %1$s ?
-vradi.adminThesaurus.askRootThesaurusEditName=Choisisez un nouveau nom pour le th\u00E9saurus %1$s
-vradi.adminThesaurus.askRootThesaurusName=Choisisez un nom pour le th\u00E9saurus
-vradi.adminThesaurus.askRootThesaurusTitle=Nouveau th\u00E9saurus
+vradi.adminThesaurus.askCreateRootThesaurus=\u00cates-vous s\u00fbr de vouloir cr\u00e9ez le nouveau th\u00e9saurus %1$s ?
+vradi.adminThesaurus.askDeleteRootThesaurus=\u00cates-vous s\u00fbr de vouloir supprimer le th\u00e9saurus %1$s ainsi que tout ses descripteurs ?
+vradi.adminThesaurus.askDeleteThesaurus=\u00cates-vous s\u00fbr de vouloir supprimer le descripteur %1$s ainsi que tout ses fils (%2$s formulaires seront impact\u00e9) ?
+vradi.adminThesaurus.askEditRootThesaurus=\u00cates-vous s\u00fbr de vouloir renommer le th\u00e9saurus %1$s en %2$s ?
+vradi.adminThesaurus.askEditThesaurus=Voulez-vous sauvegarder les modifications pour le descripteur %1$s (%2$s formulaires seront impact\u00e9) ?
+vradi.adminThesaurus.askMoveThesaurus=\u00cates-vous s\u00fbr de vouloir d\u00e9placer le descripteur %1$s ?
+vradi.adminThesaurus.askRootThesaurusEditName=Choisisez un nouveau nom pour le th\u00e9saurus %1$s
+vradi.adminThesaurus.askRootThesaurusName=Choisisez un nom pour le th\u00e9saurus
+vradi.adminThesaurus.askRootThesaurusTitle=Nouveau th\u00e9saurus
vradi.adminThesaurus.comment=Commentaire
-vradi.adminThesaurus.creationTitle=Cr\u00E9ation d'un descripteur
+vradi.adminThesaurus.creationTitle=Cr\u00e9ation d'un descripteur
vradi.adminThesaurus.editTitle=Edition du descripteur \: %1$s
vradi.adminThesaurus.exportButtonText=Exporter
vradi.adminThesaurus.exportThesaurusCSV=Export
-vradi.adminThesaurus.exportThesaurusTitle=Exporter le th\u00E9saurus
+vradi.adminThesaurus.exportThesaurusTitle=Exporter le th\u00e9saurus
vradi.adminThesaurus.importButtonText=Importer
vradi.adminThesaurus.importThesaurusCSV=Import
-vradi.adminThesaurus.importTitle=Importer le th\u00E9saurus
-vradi.adminThesaurus.move=D\u00E9placer
+vradi.adminThesaurus.importTitle=Importer le th\u00e9saurus
+vradi.adminThesaurus.move=D\u00e9placer
vradi.adminThesaurus.moveTitle=Sauvegarder ?
vradi.adminThesaurus.orderName=Ordre - Nom
vradi.adminThesaurus.path=Chemin \:
-vradi.adminThesaurus.rootThesaurusInvalidName=Le nom du th\u00E9saurus est utilis\u00E9 pour cr\u00E9er des requ\u00EAtes,\nil ne doit contenir que des carat\u00E8res alphanum\u00E9rique.
-vradi.adminThesaurus.select=S\u00E9lectionnez le descripteur de destination
-vradi.adminThesaurus.selectAsk=D\u00E9placer le descripteur vers...
+vradi.adminThesaurus.rootThesaurusInvalidName=Le nom du th\u00e9saurus est utilis\u00e9 pour cr\u00e9er des requ\u00eates,\nil ne doit contenir que des carat\u00e8res alphanum\u00e9rique.
+vradi.adminThesaurus.select=S\u00e9lectionnez le descripteur de destination
+vradi.adminThesaurus.selectAsk=D\u00e9placer le descripteur vers...
vradi.adminThesaurus.tags=Tags
-vradi.adminThesaurus.warnNameIsExisting=Le descripteur "%s" existe d\u00E9j\u00E0 dans ce thesaurus
+vradi.adminThesaurus.warnNameIsExisting=Le descripteur "%s" existe d\u00e9j\u00e0 dans ce thesaurus
vradi.adminThesaurus.warnTitle=Descripteur existant
vradi.adminUi.invalid.email=Adresse email non valide
vradi.adminUi.invalid.url=URL non valide
-vradi.adminUi.regex.fieldselect.nameValue=Les caract\u00E8res sp\u00E9ciaux ne sont pas autoris\u00E9s
+vradi.adminUi.regex.fieldselect.nameValue=Les caract\u00e8res sp\u00e9ciaux ne sont pas autoris\u00e9s
vradi.adminUi.required.client.name=Ce champ est obligatoire
vradi.adminUi.required.fieldselect.nameValue=Ce champ est obligatoire
vradi.adminUi.required.fieldselect.type=Ce champ est obligatoire
@@ -156,47 +156,47 @@
vradi.adminUi.required.xmlStream.formTypeName=Ce champ est obligatoire
vradi.adminUi.required.xmlStream.name=Ce champ est obligatoire
vradi.adminUi.required.xmlStream.url=Ce champ est obligatoire
-vradi.adminUser.addGroup=Ajouter l'utilisateur au groupe s\u00E9lectionn\u00E9
+vradi.adminUser.addGroup=Ajouter l'utilisateur au groupe s\u00e9lectionn\u00e9
vradi.adminUser.adresse=Adresse
-vradi.adminUser.beginSearchDate=Date de d\u00E9but de recherche
-vradi.adminUser.createUser=Cr\u00E9er un utilisateur
+vradi.adminUser.beginSearchDate=Date de d\u00e9but de recherche
+vradi.adminUser.createUser=Cr\u00e9er un utilisateur
vradi.adminUser.deleteUser=Supprimer
vradi.adminUser.mail=Email
vradi.adminUser.name=Nom
vradi.adminUser.newUserName=Nouvel utilisateur
-vradi.adminUser.phone=T\u00E9l\u00E9phone
-vradi.adminUser.removeGroup=Retirer l'utilisateur du groupe s\u00E9lectionn\u00E9
+vradi.adminUser.phone=T\u00e9l\u00e9phone
+vradi.adminUser.removeGroup=Retirer l'utilisateur du groupe s\u00e9lectionn\u00e9
vradi.adminUser.service=Service
vradi.adminUser.title=Utilisateur \: %1$s
-vradi.adminXmlStream.assignAuto=S\u00E9lection automatique des formulaires
+vradi.adminXmlStream.assignAuto=S\u00e9lection automatique des formulaires
vradi.adminXmlStream.config=Configurer les flux XML
-vradi.adminXmlStream.config.label.hours=\u00E0 la minute
-vradi.adminXmlStream.config.load=Charger les nouveaux formulaires \u00E0
+vradi.adminXmlStream.config.label.hours=\u00e0 la minute
+vradi.adminXmlStream.config.load=Charger les nouveaux formulaires \u00e0
vradi.adminXmlStream.config.title=Configuration des flux XML
vradi.adminXmlStream.createForms=Forcer l'import du flux
vradi.adminXmlStream.createNewWebHarvest.toolTip=Ouvrir l'editeur de script web harvest
-vradi.adminXmlStream.createWebHarvestStream=Cr\u00E9er un flux Web Harvest
-vradi.adminXmlStream.createXmlStream=Cr\u00E9er un flux
+vradi.adminXmlStream.createWebHarvestStream=Cr\u00e9er un flux Web Harvest
+vradi.adminXmlStream.createXmlStream=Cr\u00e9er un flux
vradi.adminXmlStream.deleteXmlStream=Supprimer le flux XML
-vradi.adminXmlStream.formType=Type de formulaire associ\u00E9
-vradi.adminXmlStream.hideForm=Cacher les d\u00E9tails du flux XML
+vradi.adminXmlStream.formType=Type de formulaire associ\u00e9
+vradi.adminXmlStream.hideForm=Cacher les d\u00e9tails du flux XML
vradi.adminXmlStream.name=Nom
vradi.adminXmlStream.newFormTypeName=Nouveau type de formulaire
vradi.adminXmlStream.newStreamName=Nouveau flux
vradi.adminXmlStream.newWebHarvestStreamName=Nouveau flux web harvest
-vradi.adminXmlStream.showForm=Voir les d\u00E9tails du flux XML
-vradi.adminXmlStream.startUrl=URL d'entr\u00E9 du script
-vradi.adminXmlStream.table.field.defaultValue=Valeur par d\u00E9faut
-vradi.adminXmlStream.table.field.defaultValue.tip=Valeur par d\u00E9faut
+vradi.adminXmlStream.showForm=Voir les d\u00e9tails du flux XML
+vradi.adminXmlStream.startUrl=URL d'entr\u00e9 du script
+vradi.adminXmlStream.table.field.defaultValue=Valeur par d\u00e9faut
+vradi.adminXmlStream.table.field.defaultValue.tip=Valeur par d\u00e9faut
vradi.adminXmlStream.table.field.name=Champs du type de formulaire
-vradi.adminXmlStream.table.field.name.tip=Champs du type de formulaire \u00E0 associer
+vradi.adminXmlStream.table.field.name.tip=Champs du type de formulaire \u00e0 associer
vradi.adminXmlStream.table.field.values=Valeur du flux
-vradi.adminXmlStream.table.field.values.tip=Valeur du flux xml \u00E0 associer au type de formulaire
+vradi.adminXmlStream.table.field.values.tip=Valeur du flux xml \u00e0 associer au type de formulaire
vradi.adminXmlStream.title=Flux XML \: %1$s
vradi.adminXmlStream.url=URL du flux XML
vradi.adminXmlStream.validateUrl=Valider
-vradi.adminXmlStream.webHarvestScript=Script \u00E0 executer
-vradi.binding.forms.concurrence.message=Une erreur de concurrence est apparue.\nV\u00E9rifiez que personne n'effectue la m\u00EAme op\u00E9ration et recommencez.
+vradi.adminXmlStream.webHarvestScript=Script \u00e0 executer
+vradi.binding.forms.concurrence.message=Une erreur de concurrence est apparue.\nV\u00e9rifiez que personne n'effectue la m\u00eame op\u00e9ration et recommencez.
vradi.changelog.title=Changelog
vradi.client.category=Clients
vradi.common.alls=Tous
@@ -209,11 +209,11 @@
vradi.common.ok=Valider
vradi.common.paste=Coller
vradi.common.save=Sauvegarder
-vradi.common.select=S\u00E9lectionner
+vradi.common.select=S\u00e9lectionner
vradi.common.timeseparator=\:
vradi.common.validate=Valider
-vradi.config.category.directories=R\u00E9pertoires
-vradi.config.category.directories.description=R\u00E9pertoires de l'application
+vradi.config.category.directories=R\u00e9pertoires
+vradi.config.category.directories.description=R\u00e9pertoires de l'application
vradi.config.category.other=Autre
vradi.config.category.other.description=Autres options
vradi.config.category.remote=Serveur
@@ -235,34 +235,34 @@
vradi.config.thesaurus.color.description=
vradi.config.thesaurus.description=
vradi.config.thesaurus.expanded.description=
-vradi.config.ui.fullscreen=Pour afficher l'aplication en mode plein \u00E9cran
-vradi.config.ui.locale=Langue utilis\u00E9e par l'application (fr_FR, en_GB)
+vradi.config.ui.fullscreen=Pour afficher l'aplication en mode plein \u00e9cran
+vradi.config.ui.locale=Langue utilis\u00e9e par l'application (fr_FR, en_GB)
vradi.config.version.description=
-vradi.config.wikitty.notifier.transporter.class.description=Class utilis\u00E9 pour transporter les \u00E9venements
+vradi.config.wikitty.notifier.transporter.class.description=Class utilis\u00e9 pour transporter les \u00e9venements
vradi.config.wikitty.propagate.propagateEvent.description=Definie si l'instance est en mode serveur ou non
-vradi.config.wikitty.xmpp.room.description=Adresse du salon XMPP auquel ce connecter pour recevoir les \u00E9venements
+vradi.config.wikitty.xmpp.room.description=Adresse du salon XMPP auquel ce connecter pour recevoir les \u00e9venements
vradi.config.wikitty.xmpp.server.description=Adresse du serveur XMPP
vradi.config.xmlStreams.description=
vradi.createForm.askName=Nom du nouveau formulaire
vradi.createForm.askType=Type du nouveau formulaire
vradi.criteria.cartography=Cartographie / Thesaurus
vradi.criteria.clear=Effacer
-vradi.criteria.collapse=Avanc\u00E9e -
+vradi.criteria.collapse=Avanc\u00e9e -
vradi.criteria.empty=Aucun
vradi.criteria.formType=Type de formulaire
vradi.criteria.from=De
-vradi.criteria.notCollapse=Avanc\u00E9e +
+vradi.criteria.notCollapse=Avanc\u00e9e +
vradi.criteria.search=Rechercher
vradi.criteria.searchLast30days=30 derniers jours
vradi.criteria.searchLastDay=Hier
vradi.criteria.searchThisMonth=Mois courant
vradi.criteria.searchToDay=Aujourd'hui
vradi.criteria.status=Statut \:
-vradi.criteria.to=\u00E0
-vradi.criteria.typeDate=Date concern\u00E9e
-vradi.criteria.typeDate.Form.datePeremption=Date de p\u00E9remption
+vradi.criteria.to=\u00e0
+vradi.criteria.typeDate=Date concern\u00e9e
+vradi.criteria.typeDate.Form.datePeremption=Date de p\u00e9remption
vradi.criteria.typeDate.Form.datePub=Date de publication
-vradi.criteria.typeDate.Infogene.creationDate=Date de cr\u00E9ation
+vradi.criteria.typeDate.Infogene.creationDate=Date de cr\u00e9ation
vradi.criteria.xmlStream=Flux XML \:
vradi.date.required.value=Ce champ est obligatoire
vradi.edit.proposition=Propositions
@@ -275,24 +275,24 @@
vradi.editor.removeXML=<...>
vradi.editor.removeXMLToolTip=Supprimer les balises XML
vradi.editor.unescapeXML=XML
-vradi.editor.unescapeXMLToolTip=Suppression des caract\u00E8res sp\u00E9ciaux XML
-vradi.email.addGroup=Envoyer \u00E0 un groupe
-vradi.email.addUser=Envoyer \u00E0 un utilisateur
+vradi.editor.unescapeXMLToolTip=Suppression des caract\u00e8res sp\u00e9ciaux XML
+vradi.email.addGroup=Envoyer \u00e0 un groupe
+vradi.email.addUser=Envoyer \u00e0 un utilisateur
vradi.email.askAbordSendingTitle=Continuer l'envoi ?
-vradi.email.askModelEmpty=Le type de formulaire %1$s n'a pas de template associ\u00E9.\n\u00EAtes-vous s\u00FBr de vouloir continuer l'envoi ?
-vradi.email.askUserEmailEmpty=L'utilisateur %1$s (du client %2$s) n'a pas d'email.\n\u00EAtes-vous s\u00FBr de vouloir continuer l'envoi ?
+vradi.email.askModelEmpty=Le type de formulaire %1$s n'a pas de template associ\u00e9.\n\u00eates-vous s\u00fbr de vouloir continuer l'envoi ?
+vradi.email.askUserEmailEmpty=L'utilisateur %1$s (du client %2$s) n'a pas d'email.\n\u00eates-vous s\u00fbr de vouloir continuer l'envoi ?
vradi.email.bindSession=Associer les formulaires aux utilisateurs
vradi.email.clientFilter=par clients
-vradi.email.confimCloseSession=\u00CAtes-vous s\u00FBr de vouloir supprimer la session active ?\n\nATTENTION \: La session ne pourra pas \u00EAtre r\u00E9ouverte \!
+vradi.email.confimCloseSession=\u00cates-vous s\u00fbr de vouloir supprimer la session active ?\n\nATTENTION \: La session ne pourra pas \u00eatre r\u00e9ouverte \!
vradi.email.confimCloseSession.titles=Supprimer la session active ?
-vradi.email.confirmAddGroup=\u00CAtes-vous s\u00FBr de vouloir ajouter l'envoi des formulaires \: \n%1$s \n\naux groupes suivants \: \n%2$s
-vradi.email.confirmAddTitle=Ajout des formulaires \u00E0 la session d'envoie
-vradi.email.confirmAddUser=\u00CAtes-vous s\u00FBr de vouloir ajouter l'envoi des formulaires \: \n%1$s \n\naux utilisateurs suivants \: \n%2$s
-vradi.email.confirmDelete=\u00CAtes-vous s\u00FBr de vouloir supprimer l'envoi de ce formulaire \: %1$s
+vradi.email.confirmAddGroup=\u00cates-vous s\u00fbr de vouloir ajouter l'envoi des formulaires \: \n%1$s \n\naux groupes suivants \: \n%2$s
+vradi.email.confirmAddTitle=Ajout des formulaires \u00e0 la session d'envoie
+vradi.email.confirmAddUser=\u00cates-vous s\u00fbr de vouloir ajouter l'envoi des formulaires \: \n%1$s \n\naux utilisateurs suivants \: \n%2$s
+vradi.email.confirmDelete=\u00cates-vous s\u00fbr de vouloir supprimer l'envoi de ce formulaire \: %1$s
vradi.email.confirmDeleteTitle=Suppression d'un formulaire ?
-vradi.email.confirmRemoveForms=\u00CAtes-vous s\u00FBr de vouloir supprimer les formulaires suivantes de la session pour tout les utilisateurs \:\n%1$s
+vradi.email.confirmRemoveForms=\u00cates-vous s\u00fbr de vouloir supprimer les formulaires suivantes de la session pour tout les utilisateurs \:\n%1$s
vradi.email.confirmRemoveFormsTitle=Suppression de formulaires
-vradi.email.confirmRemoveUserForms=\u00CAtes-vous s\u00FBr de vouloir supprimer les formulaires suivantes de la session pour l'utilisateurs %1$s \:\n%1$s
+vradi.email.confirmRemoveUserForms=\u00cates-vous s\u00fbr de vouloir supprimer les formulaires suivantes de la session pour l'utilisateurs %1$s \:\n%1$s
vradi.email.confirmRemoveUserFormsTitle=Suppression de formulaires
vradi.email.confirmRevertFormDeletion=Etes-vous sur le vouloir annuler la suppression des formulaires suivants \: \n%1$s
vradi.email.confirmRevertFormDeletionTitle=Annuler la suppression des formulaires ?
@@ -300,68 +300,68 @@
vradi.email.confirmRevertGroupFormDeletionTitle=Annuler la suppression des formulaires ?
vradi.email.confirmRevertUserFormDeletion=Etes-vous sur le vouloir annuler pour les utilisateurs \n\n'%2$s'\n\nla suppression des formulaires suivants \: \n%1$s
vradi.email.confirmRevertUserFormDeletionTitle=Annuler la suppression des formulaires ?
-vradi.email.confirmSelectionForm=Le formulaire '%1$s' doit \u00EAtre s\u00E9lectionn\u00E9 pour l'envoi,\n\u00EAtes-vous sur de vouloir s\u00E9lectionner ce formulaire ?
+vradi.email.confirmSelectionForm=Le formulaire '%1$s' doit \u00eatre s\u00e9lectionn\u00e9 pour l'envoi,\n\u00eates-vous sur de vouloir s\u00e9lectionner ce formulaire ?
vradi.email.confirmSelectionForm.title=Changer le status du formulaire
-vradi.email.confirmSendSending=\u00CAtes-vous s\u00FBr de vouloir r\u00E9envoyer les emails \u00E0 %1$s ?
+vradi.email.confirmSendSending=\u00cates-vous s\u00fbr de vouloir r\u00e9envoyer les emails \u00e0 %1$s ?
vradi.email.confirmSendSending.askMail=Veuillez saisir l'adresse mail \:
-vradi.email.confirmSendSending.askMailTitle=Destinataire personnalis\u00E9
+vradi.email.confirmSendSending.askMailTitle=Destinataire personnalis\u00e9
vradi.email.confirmSendSending.optionNo=Non
vradi.email.confirmSendSending.optionOtherMail=Saisir l'email du destinataire
vradi.email.confirmSendSending.optionYes=Oui
-vradi.email.confirmSendSendingTitle=R\u00E9envoy\u00E9 ?
-vradi.email.confirmSendSession=\u00CAtes-vous s\u00FBr de vouloir traiter la session en cours ?
+vradi.email.confirmSendSendingTitle=R\u00e9envoy\u00e9 ?
+vradi.email.confirmSendSession=\u00cates-vous s\u00fbr de vouloir traiter la session en cours ?
vradi.email.confirmSendSessionTitle=Confirmation d'envoi
-vradi.email.deleteSession=D\u00E9truire la session
+vradi.email.deleteSession=D\u00e9truire la session
vradi.email.filter=Filtrer
vradi.email.formFilter=par formulaires
vradi.email.formGroupTitle=Groupes
vradi.email.formUserTitle=Utilisateurs
vradi.email.forms.revertDeletion=Annuler les suppressions
-vradi.email.generation=G\u00E9n\u00E9ration des pdf
-vradi.email.generation.msg=G\u00E9n\u00E9ration des pdf
-vradi.email.generation.title=Les PDF sont en cours de g\u00E9n\u00E9ration
+vradi.email.generation=G\u00e9n\u00e9ration des pdf
+vradi.email.generation.msg=G\u00e9n\u00e9ration des pdf
+vradi.email.generation.title=Les PDF sont en cours de g\u00e9n\u00e9ration
vradi.email.groupFilter=par groupes
vradi.email.hideForm=
vradi.email.hideSessionParagraph=Cacher le paragraphe de la session
vradi.email.invalid.value=
-vradi.email.newSession=Cr\u00E9er une nouvelle session
-vradi.email.noSelection=Veuillez s\u00E9lectionner un utilisateur ou une s\u00E9ssion dans l'arbre.
+vradi.email.newSession=Cr\u00e9er une nouvelle session
+vradi.email.noSelection=Veuillez s\u00e9lectionner un utilisateur ou une s\u00e9ssion dans l'arbre.
vradi.email.paragraph=Paragraphe
-vradi.email.receptionProof=Accus\u00E9 de r\u00E9ception
-vradi.email.removeFormFromSession=Supprimer les formulaires selectionn\u00E9 de la session
-vradi.email.removeFormFromSessionForUser=Supprimer les formulaires selectionn\u00E9 de la session pour l'utilisateur
+vradi.email.receptionProof=Accus\u00e9 de r\u00e9ception
+vradi.email.removeFormFromSession=Supprimer les formulaires selectionn\u00e9 de la session
+vradi.email.removeFormFromSessionForUser=Supprimer les formulaires selectionn\u00e9 de la session pour l'utilisateur
vradi.email.required.value=Email requis
-vradi.email.sendSending=R\u00E9envoyer les formulaires
-vradi.email.sendSending.sendError=L'envoi de l'email a \u00E9chou\u00E9 \: %1$s
+vradi.email.sendSending=R\u00e9envoyer les formulaires
+vradi.email.sendSending.sendError=L'envoi de l'email a \u00e9chou\u00e9 \: %1$s
vradi.email.sendSession=Envoyer les formulaires de la session
-vradi.email.sendSession.error=L'envoi des emails a \u00E9chou\u00E9
+vradi.email.sendSession.error=L'envoi des emails a \u00e9chou\u00e9
vradi.email.sendSession.msg=Envoi des messages
vradi.email.sendSession.title=Les messages sont en cours d'envoi
vradi.email.session=Date d'envoi
-vradi.email.sessionAttachedfile=Fichiers attach\u00E9s
+vradi.email.sessionAttachedfile=Fichiers attach\u00e9s
vradi.email.sessionParagraph=Paragraphe pour cette session
vradi.email.showForm=
vradi.email.showSessionParagraph=Afficher le paragraphe de la session
vradi.email.status=Statuts \:
-vradi.email.thesaurusToolTipTitle=Descripteurs associ\u00E9s \:
+vradi.email.thesaurusToolTipTitle=Descripteurs associ\u00e9s \:
vradi.email.title=Envoi des emails
vradi.email.titleGroup=Session d'envoi pour le groupe %1$s
vradi.email.titleUser=Session d'envoi pour l'utilisateur %1$s
vradi.email.userFilter=par utilisateurs
-vradi.entity.creation.date=cr\u00E9\u00E9 le %1$td/%1$tm/%1$ty \u00E0 %1$tk\:%1$tM\:%1$tS
-vradi.entity.lastModified.date.user=derni\u00E8re modification le %1$td/%1$tm/%1$ty \u00E0 %1$tk\:%1$tM\:%1$tS par %2$s
+vradi.entity.creation.date=cr\u00e9\u00e9 le %1$td/%1$tm/%1$ty \u00e0 %1$tk\:%1$tM\:%1$tS
+vradi.entity.lastModified.date.user=derni\u00e8re modification le %1$td/%1$tm/%1$ty \u00e0 %1$tk\:%1$tM\:%1$tS par %2$s
vradi.error.cantOpenHistory=Impossible d'ouvrir l'historique des requettes.
vradi.error.cantOpenHistory.title=Impossible d'ouvrir l'historique des requettes
-vradi.error.executeTask=La t\u00E2che est en erreur \:
-vradi.error.fieldsBinding.errors=[Erreur] Voici la liste des champs du mod\u00E8le qui ne sont pas associ\u00E9 \:\n%1$s\n\n
-vradi.error.fieldsBinding.msg=Tous les champs ne sont pas associ\u00E9, \u00EAtes vous s\u00FBr de vouloir sauvegarder ?\n\n
-vradi.error.fieldsBinding.title=Etes vous s\u00FBr de vouloir sauvegarder ?
-vradi.error.fieldsBinding.warns=[Attention] Voici la liste des champs du type de formulaire qui ne sont pas associ\u00E9 \:\n%1$s\n\n
-vradi.error.fileNotFound=Le fichier '%1$s' n'a pas \u00E9t\u00E9 trouv\u00E9 sur le serveur, \nassurez-vous de bien avoir sauvegard\u00E9 le formulaire avant de t\u00E9lecharger un fichier joint.
-vradi.error.fileNotFound.title=Fichier non pr\u00E9sent sur le serveur
-vradi.error.formTypeDeletionUsed=Le type de formulaire '%1$s' est encore utilis\u00E9, la suppression est impossible.
+vradi.error.executeTask=La t\u00e2che est en erreur \:
+vradi.error.fieldsBinding.errors=[Erreur] Voici la liste des champs du mod\u00e8le qui ne sont pas associ\u00e9 \:\n%1$s\n\n
+vradi.error.fieldsBinding.msg=Tous les champs ne sont pas associ\u00e9, \u00eates vous s\u00fbr de vouloir sauvegarder ?\n\n
+vradi.error.fieldsBinding.title=Etes vous s\u00fbr de vouloir sauvegarder ?
+vradi.error.fieldsBinding.warns=[Attention] Voici la liste des champs du type de formulaire qui ne sont pas associ\u00e9 \:\n%1$s\n\n
+vradi.error.fileNotFound=Le fichier '%1$s' n'a pas \u00e9t\u00e9 trouv\u00e9 sur le serveur, \nassurez-vous de bien avoir sauvegard\u00e9 le formulaire avant de t\u00e9lecharger un fichier joint.
+vradi.error.fileNotFound.title=Fichier non pr\u00e9sent sur le serveur
+vradi.error.formTypeDeletionUsed=Le type de formulaire '%1$s' est encore utilis\u00e9, la suppression est impossible.
vradi.error.formTypeDeletionUsed.title=Suppression impossible
-vradi.error.formWikittyObselete=Le formulaire '%1$s' \u00E0 \u00E9t\u00E9 modifi\u00E9 pendant que vous l'\u00E9ditiez, \nles modifications serons perdus.
+vradi.error.formWikittyObselete=Le formulaire '%1$s' \u00e0 \u00e9t\u00e9 modifi\u00e9 pendant que vous l'\u00e9ditiez, \nles modifications serons perdus.
vradi.error.formWikittyObselete.title=Sauvegarde impossible
vradi.error.sending.sendDialogError=Voici l'erreur survenus pendant l'envoie de l'email \:\n%1$s
vradi.error.sending.sendDialogError.title=Erreur lors de l'envoie de l'email
@@ -373,42 +373,43 @@
vradi.export.filter.csv=Fichier csv
vradi.export.validate.label=Exporter
vradi.file.template.description=Fichier OpenOffice (*.odt, *.ott)
-vradi.file.template.wrongFileNamePattern=Le nom de fichier %s n'est pas valide \!\nIl ne doit \u00EAtre compos\u00E9 que \u00DE caract\u00E8res alphanum\u00E9riques.
+vradi.file.template.wrongFileNamePattern=Le nom de fichier %s n'est pas valide \!\nIl ne doit \u00eatre compos\u00e9 que \u00de caract\u00e8res alphanum\u00e9riques.
vradi.form.datePeremption=Date de peremption
vradi.form.datePub=Date de publication
+vradi.form.xmlStream=Flux
vradi.formType.category=Type de formulaires
-vradi.forms.returned=formulaires trouv\u00E9s
-vradi.forms.shown=Nombre de formulaires \u00E0 afficher
+vradi.forms.returned=formulaires trouv\u00e9s
+vradi.forms.shown=Nombre de formulaires \u00e0 afficher
vradi.group.category=Groupes
vradi.help.top.title=
vradi.infogene.country=Pays
-vradi.infogene.creationDate=Date de cr\u00E9ation
-vradi.infogene.department=D\u00E9partement
+vradi.infogene.creationDate=Date de cr\u00e9ation
+vradi.infogene.department=D\u00e9partement
vradi.infogene.description=Description
-vradi.infogene.entity=Entit\u00E9
+vradi.infogene.entity=Entit\u00e9
vradi.infogene.id=Identifiant
vradi.infogene.objet=Objet
vradi.infogene.sourceText=Source
vradi.infogene.sourceURL=URL source
vradi.infogene.status=Status
-vradi.init.closed=Vradi a \u00E9t\u00E9 ferm\u00E9 \u00E0 %1$s
-vradi.init.context.done=Initialisation du contexte termin\u00E9e en %1$s.
-vradi.init.ui.done=Initialisation de l'interface graphique termin\u00E9e en %1$s.
-vradi.list.requests=Requ\u00EAtes
+vradi.init.closed=Vradi a \u00e9t\u00e9 ferm\u00e9 \u00e0 %1$s
+vradi.init.context.done=Initialisation du contexte termin\u00e9e en %1$s.
+vradi.init.ui.done=Initialisation de l'interface graphique termin\u00e9e en %1$s.
+vradi.list.requests=Requ\u00eates
vradi.login.cancel=Annuler
vradi.login.email=Email
vradi.login.error=Erreur d'authentification
-vradi.login.error.message=Vous avez entr\u00E9 un mauvais mot de passe ou le nom d'utilisateur n'existe pas.
+vradi.login.error.message=Vous avez entr\u00e9 un mauvais mot de passe ou le nom d'utilisateur n'existe pas.
vradi.login.login=Login
vradi.login.password=Mot de passe
vradi.login.register=Enregistrement
-vradi.login.repeatPassword=V\u00E9rification du mot de passe
+vradi.login.repeatPassword=V\u00e9rification du mot de passe
vradi.login.title=Authentification
vradi.login.validate=Valider
vradi.menu.addChildThesaurus=Ajouter un descripteur
vradi.menu.addColumns=Ajouter une colonne
-vradi.menu.addCriteria=Ajouter ce noeud comme crit\u00E8re de recherche
-vradi.menu.addRootChildThesaurus=Ajouter un th\u00E9saurus
+vradi.menu.addCriteria=Ajouter ce noeud comme crit\u00e8re de recherche
+vradi.menu.addRootChildThesaurus=Ajouter un th\u00e9saurus
vradi.menu.addThesaurus=Afficher le descripteur en colonne
vradi.menu.admin=Administration
vradi.menu.client=Gestion des clients
@@ -419,35 +420,35 @@
vradi.menu.email.admin=Administration des Emails
vradi.menu.file=Fichier
vradi.menu.file.locale=Langues
-vradi.menu.file.offerList=Nouvelle fen\u00EAtre de recherche
+vradi.menu.file.offerList=Nouvelle fen\u00eatre de recherche
vradi.menu.form=Formulaires
-vradi.menu.form.new=Cr\u00E9er un nouveau %1$s
+vradi.menu.form.new=Cr\u00e9er un nouveau %1$s
vradi.menu.formType=Gestion des types de formulaires
vradi.menu.group=Gestion des groupes
vradi.menu.help=Aide
vradi.menu.menuChangeColorSeleted=Changer la couleur pour cette profondeur
-vradi.menu.moveThesaurusSelected=D\u00E9placer le descripteur
-vradi.menu.removeCriteria=Supprimer ce crit\u00E8re de recherche
+vradi.menu.moveThesaurusSelected=D\u00e9placer le descripteur
+vradi.menu.removeCriteria=Supprimer ce crit\u00e8re de recherche
vradi.menu.status=Gestion des statuts
-vradi.menu.thesaurus=Gestion des th\u00E9saurus
+vradi.menu.thesaurus=Gestion des th\u00e9saurus
vradi.menu.xmlStream=Gestion des flux XML
vradi.message.cannot.display.address=Une erreur est apparue en essayant d'afficher l'adresse.
vradi.message.cannot.display.history=Aucun historique disponible pour ce groupe.
vradi.message.cannot.display.stream=Une erreur est apparue en essayant d'afficher le flux.
vradi.message.cannot.display.url=Une erreur est apparue en essayant d'afficher l'URL.
-vradi.message.config.loaded=Configuration de Vradi v. %1$s charg\u00E9e.
-vradi.message.goto.site=Acc\u00E9der au site de Vradi (%1$s)
+vradi.message.config.loaded=Configuration de Vradi v. %1$s charg\u00e9e.
+vradi.message.goto.site=Acc\u00e9der au site de Vradi (%1$s)
vradi.message.help.usage=Aide de Vradi v %1$s
-vradi.modificationTag.lastModifier=Auteur de la derni\u00E8re modification
+vradi.modificationTag.lastModifier=Auteur de la derni\u00e8re modification
vradi.num.required.value=Ce champ est obligatoire
-vradi.offer.Form.datePeremption=Date p\u00E9remption
+vradi.offer.Form.datePeremption=Date p\u00e9remption
vradi.offer.Form.datePub=Date publication
vradi.offer.Form.xmlStream=Flux XML
vradi.offer.Infogene.country=Pays
-vradi.offer.Infogene.creationDate=Date cr\u00E9ation
-vradi.offer.Infogene.department=D\u00E9partement
+vradi.offer.Infogene.creationDate=Date cr\u00e9ation
+vradi.offer.Infogene.department=D\u00e9partement
vradi.offer.Infogene.description=Description
-vradi.offer.Infogene.entity=Entit\u00E9
+vradi.offer.Infogene.entity=Entit\u00e9
vradi.offer.Infogene.id=Id
vradi.offer.Infogene.objet=Objet
vradi.offer.Infogene.sourceText=Source
@@ -458,72 +459,73 @@
vradi.offer.email.removeForm=Supprimer les formulaires de la session courante
vradi.offer.email.removeForm.msg=Voulez-vous supprimer %1$s formulaires de la session courante ?
vradi.offer.email.removeForm.title=Suppression des formulaires de la session courante
-vradi.offer.status.change=Changer le status \u00E0
-vradi.offerEdit.affectedQueries=Requ\u00EAte ?
-vradi.offerEdit.askRelatedFormName=Quel nom voulez-vous donner au formulaire li\u00E9 ?
+vradi.offer.status.change=Changer le status \u00e0
+vradi.offerEdit.affectedQueries=Requ\u00eate ?
+vradi.offerEdit.askRelatedFormName=Quel nom voulez-vous donner au formulaire li\u00e9 ?
vradi.offerEdit.askReplaceFormName=Quel nom voulez-vous donner au formulaire de remplacement ?
-vradi.offerEdit.attachedfile=Fichiers attach\u00E9s \:
-vradi.offerEdit.attachmentfile=Pi\u00E8ces jointes \:
-vradi.offerEdit.cantGeneratePDF=Le type de formulaire n'a pas de model de g\u00E9n\u00E9ration PDF associ\u00E9.
-vradi.offerEdit.cantGeneratePDFTitle=Impossible de g\u00E9n\u00E9rer le PDF
-vradi.offerEdit.embeddedfile=Fichiers encapsul\u00E9s \:
+vradi.offerEdit.attachedfile=Fichiers attach\u00e9s \:
+vradi.offerEdit.attachmentfile=Pi\u00e8ces jointes \:
+vradi.offerEdit.cantGeneratePDF=Le type de formulaire n'a pas de model de g\u00e9n\u00e9ration PDF associ\u00e9.
+vradi.offerEdit.cantGeneratePDFTitle=Impossible de g\u00e9n\u00e9rer le PDF
+vradi.offerEdit.embeddedfile=Fichiers encapsul\u00e9s \:
vradi.offerEdit.otherIndexationTitle=Autre indexation du formulaire \: '%1$s'
-vradi.offerEdit.relatedForm=Formulaires li\u00E9es
+vradi.offerEdit.relatedForm=Formulaires li\u00e9es
vradi.offerEdit.replaceForm=Autres indexations
vradi.offerEdit.view.pdf=Voir en PDF
-vradi.offerList.status.change.confirmation.message=\u00CAtes-vous s\u00FBr de vouloir changer le statut des formulaires \u00E0 '%1$s' ?
+vradi.offerList.status.change.confirmation.message=\u00cates-vous s\u00fbr de vouloir changer le statut des formulaires \u00e0 '%1$s' ?
vradi.offerList.status.change.confirmation.title=Modification des statuts
vradi.progressBar.title=Patientez SVP
-vradi.register.ok=Enregistrement r\u00E9ussi
-vradi.register.ok.message=Votre compte utilisateur a bien \u00E9t\u00E9 cr\u00E9\u00E9.
+vradi.register.ok=Enregistrement r\u00e9ussi
+vradi.register.ok.message=Votre compte utilisateur a bien \u00e9t\u00e9 cr\u00e9\u00e9.
vradi.register.password.error=Erreur de mot de passe
-vradi.register.password.error.message=Vous n'avez pas entr\u00E9 deux mots de passe identiques.
+vradi.register.password.error.message=Vous n'avez pas entr\u00e9 deux mots de passe identiques.
vradi.register.title=Enregistrement
vradi.register.user.error=Nom incorrect
-vradi.register.user.error.message=Le nom d'utilisateur est d\u00E9j\u00E0 utilis\u00E9.
-vradi.reindex.message=\u00CAtes-vous s\u00FBr de vouloir r\u00E9indexer les donn\u00E9es ?
+vradi.register.user.error.message=Le nom d'utilisateur est d\u00e9j\u00e0 utilis\u00e9.
+vradi.reindex.message=\u00cates-vous s\u00fbr de vouloir r\u00e9indexer les donn\u00e9es ?
vradi.reindex.title=Reindexation
vradi.request.form=Champs du formulaires
-vradi.request.infogene=Champs de l'infog\u00E8ne
+vradi.request.infogene=Champs de l'infog\u00e8ne
vradi.request.keywords=Champs
+vradi.request.searchOnExt=Recherche sur le type de formulaire
vradi.requestFormView.resultTable.description=Description
vradi.requestFormView.resultTable.name=Nom
-vradi.requestFormView.resultTable.newQuery=Nouvelle requ\u00EAte
-vradi.requestFormView.resultTable.oldQuery=Ancienne requ\u00EAte
-vradi.requestFormView.resultTable.query=Requ\u00EAte
-vradi.requestFormView.tab.table=Liste des requ\u00EAtes
-vradi.requestFormView.tab.treetable=R\u00E9partition des requ\u00EAtes
-vradi.requestFormView.title=Liste des requ\u00EAtes
+vradi.requestFormView.resultTable.newQuery=Nouvelle requ\u00eate
+vradi.requestFormView.resultTable.oldQuery=Ancienne requ\u00eate
+vradi.requestFormView.resultTable.query=Requ\u00eate
+vradi.requestFormView.tab.table=Liste des requ\u00eates
+vradi.requestFormView.tab.treetable=R\u00e9partition des requ\u00eates
+vradi.requestFormView.title=Liste des requ\u00eates
vradi.requestSelectUI.description=Description
vradi.requestSelectUI.name=Nom
-vradi.selectForm.title=Selection d'un formulaire li\u00E9
+vradi.selectForm.title=Selection d'un formulaire li\u00e9
vradi.status.category=Status
vradi.status.required.name=Ce champ est obligatoire
vradi.status.validate=Choisir le statut pour valider \:
vradi.stream.category=Flux xml
vradi.string.required.value=Ce champ est obligatoire
vradi.table.field.name=Champ
-vradi.table.field.name.tip=Champ du mod\u00E8le OpenOffice \u00E0 remplacer
+vradi.table.field.name.tip=Champ du mod\u00e8le OpenOffice \u00e0 remplacer
vradi.table.field.values=Valeur
-vradi.table.field.values.tip=Valeur par laquelle le champ va \u00EAtre remplac\u00E9
+vradi.table.field.values.tip=Valeur par laquelle le champ va \u00eatre remplac\u00e9
vradi.text.required.value=Ce champ est obligatoire
vradi.thesaurus.colomns.name=Nom
-vradi.thesaurus.colomns.nbForm=Nombres de formulaires associ\u00E9s au descripteur
+vradi.thesaurus.colomns.nbForm=Nombres de formulaires associ\u00e9s au descripteur
vradi.thesaurus.colomns.tags=Tags
-vradi.thesaurus.colorTitle=Choisir une couleur pour la profondeur s\u00E9lectionn\u00E9e
+vradi.thesaurus.colorTitle=Choisir une couleur pour la profondeur s\u00e9lectionn\u00e9e
vradi.thesaurus.commentToolTip=Commentaire \:
vradi.thesaurus.confirm.save=Sauvegarder
-vradi.thesaurus.createNewRoot=Cr\u00E9er un th\u00E9saurus
-vradi.thesaurus.expendByDefault=D\u00E9plier les descripteurs lors de la s\u00E9lection
+vradi.thesaurus.createNewRoot=Cr\u00e9er un th\u00e9saurus
+vradi.thesaurus.expendByDefault=D\u00e9plier les descripteurs lors de la s\u00e9lection
vradi.thesaurus.name=Nom
vradi.thesaurus.nameToolTip=Chemin \:
-vradi.thesaurus.nbforms=Nombre de formulaires attach\u00E9s
+vradi.thesaurus.nbforms=Nombre de formulaires attach\u00e9s
vradi.thesaurus.showApply=Montrer les implications
vradi.thesaurus.tags=Tags
vradi.thesaurus.tagsToolTip=Tags \:
vradi.thesaurus.toolTipTitle=Thesaurus \: %1$s
-vradi.thesaurusCartographyUI.title=Cartographie des r\u00E9sultats de recherche
-vradi.thesaurusQueryChangesUI.confirm.cancel=Vous allez annuler la modification des requ\u00EAtes.\nLes modifications des th\u00E9saurus sont d\u00E9j\u00E0 enregistr\u00E9es.\n\u00CAtes-vous s\u00FBr de vouloir continuer ?
+vradi.thesaurusCartographyUI.title=Cartographie des r\u00e9sultats de recherche
+vradi.thesaurusQueryChangesUI.confirm.cancel=Vous allez annuler la modification des requ\u00eates.\nLes modifications des th\u00e9saurus sont d\u00e9j\u00e0 enregistr\u00e9es.\n\u00cates-vous s\u00fbr de vouloir continuer ?
vradi.title.about=A propos de Vradi...
vradi.title.welcome=Vradi
vradi.url.invalid.value=
@@ -531,5 +533,5 @@
vradi.user.category=Utilisateurs
vradi.vradiUser.regex.login=Ce champ n'est pas valide
vradi.vradiUser.required.login=Ce champ est obligatoire
-vradi.warning.nimbus.landf=Le look and Feel Nimbus n'a pas \u00E9t\u00E9 trouv\u00E9, il faut au moins la version 1.6u10 de java.
-vradi.warning.no.ui=Aucun environnement graphique d\u00E9tect\u00E9
+vradi.warning.nimbus.landf=Le look and Feel Nimbus n'a pas \u00e9t\u00e9 trouv\u00e9, il faut au moins la version 1.6u10 de java.
+vradi.warning.no.ui=Aucun environnement graphique d\u00e9tect\u00e9
1
0
r17 - in trunk: . vradi-services/src/main/java/org/chorem/vradi/services/managers
by sletellier@users.chorem.org 03 May '11
by sletellier@users.chorem.org 03 May '11
03 May '11
Author: sletellier
Date: 2011-05-03 19:57:05 +0200 (Tue, 03 May 2011)
New Revision: 17
Url: http://chorem.org/repositories/revision/vradi/17
Log:
- Up to wikitty 2.1.1
- Fix search like ext.field=""
Modified:
trunk/pom.xml
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-03 14:03:22 UTC (rev 16)
+++ trunk/pom.xml 2011-05-03 17:57:05 UTC (rev 17)
@@ -115,7 +115,7 @@
<nuitonI18nVersion>2.3.2</nuitonI18nVersion>
<nuitonWidgetVersion>1.1.1</nuitonWidgetVersion>
<generatorPluginVersion>2.3.3</generatorPluginVersion>
- <wikittyVersion>3.1</wikittyVersion>
+ <wikittyVersion>3.1.1-SNAPSHOT</wikittyVersion>
<oooVersion>3.2.1</oooVersion>
<javamailVersion>1.4.3</javamailVersion>
<slf4jVersion>1.6.1</slf4jVersion>
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-05-03 14:03:22 UTC (rev 16)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-05-03 17:57:05 UTC (rev 17)
@@ -110,6 +110,10 @@
private static final Pattern formIdPattern =
Pattern.compile("^[0-9]{4}-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})$");
+ /** Match ext.field. */
+ private static final Pattern extFieldPattern =
+ Pattern.compile("^(.+)//.(.+)$");
+
/** Alias pour {@link ModificationTag#FIELD_MODIFICATIONTAG_LASTMODIFIER}. */
public static final String ALIAS_LAST_MODIFIER = "modificateur";
@@ -160,6 +164,8 @@
}
criteria.addSortAscending(Form.FQ_FIELD_INFOGENE_ID);
+ log.info(criteria);
+
//finds the forms
PagedResult<Form> queryResult = wikittyProxy.findAllByCriteria(Form.class, criteria);
if (log.isDebugEnabled()) {
@@ -510,6 +516,11 @@
Search subSearch = search.or();
+ // To allow find field with synthax like ext.field=""
+ if (name.indexOf(".") == -1) {
+ name = Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR + name;
+ }
+
// a confirmer, mais l'explication doit être :
// - si c'est not, ca doit ne pas être la date en question
// - sinon, ca doit être compris entre le début et la fin du jour
@@ -521,8 +532,7 @@
Date time = frenchDateFormat.parse(value);
String timeString = WikittyUtil.formatDate(time);
- subSearch.eq(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.eq(name + Criteria.SEPARATOR
+ Element.ElementType.DATE, timeString);
} catch (ParseException e) {
@@ -544,8 +554,7 @@
String beginString = WikittyUtil.formatDate(beginDate);
String endString = WikittyUtil.formatDate(endDate);
- subSearch.bw(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.bw(name + Criteria.SEPARATOR
+ Element.ElementType.DATE, beginString, endString);
} catch (ParseException e) {
@@ -557,33 +566,29 @@
}
// text search
- subSearch.like(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.like(name + Criteria.SEPARATOR
+ Element.ElementType.STRING, value, Like.SearchAs.AsText);
// boolean search
if (compareFilter.isBoolean()) {
- subSearch.eq(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.eq(name + Criteria.SEPARATOR
+ Element.ElementType.BOOLEAN, value);
// number search
} else if (compareFilter.isNumber()) {
- subSearch.eq(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.eq(name + Criteria.SEPARATOR
+ Element.ElementType.NUMERIC, value);
// extension id search (eq)
} else if (compareFilter.match(formIdPattern)) {
- subSearch.eq(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.eq(name + Criteria.SEPARATOR
+ Element.ElementType.STRING, value);
// extension id search (ew)
} else if (compareFilter.match(uuidPattern)) {
- subSearch.ew(Criteria.ALL_EXTENSIONS + Criteria.SEPARATOR
- + name + Criteria.SEPARATOR
+ subSearch.ew(name + Criteria.SEPARATOR
+ Element.ElementType.STRING, value);
+
}
}
1
0
r16 - trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers
by sletellier@users.chorem.org 03 May '11
by sletellier@users.chorem.org 03 May '11
03 May '11
Author: sletellier
Date: 2011-05-03 16:03:22 +0200 (Tue, 03 May 2011)
New Revision: 16
Url: http://chorem.org/repositories/revision/vradi/16
Log:
Use constant
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java 2011-05-03 13:49:28 UTC (rev 15)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java 2011-05-03 14:03:22 UTC (rev 16)
@@ -81,6 +81,8 @@
/** Log. */
private static final Log log = LogFactory.getLog(TemplateManager.class);
+ public static final String TEMPLATE_DATE_FORMAT = "EEEE, d MMMM yyyy HH:mm:ss";
+
protected ApplicationConfig config;
protected XComponentContext context = null;
@@ -301,7 +303,7 @@
if (value instanceof Date) {
ApplicationConfig config = VradiServiceConfiguration.getConfig();
Locale locale = VradiServiceConfigurationHelper.getLocale(config);
- DateFormat dateFormat = new SimpleDateFormat("EEEE, d MMMM yyyy HH:mm:ss", locale);
+ DateFormat dateFormat = new SimpleDateFormat(TEMPLATE_DATE_FORMAT, locale);
value = dateFormat.format((Date) value);
}
1
0
r15 - trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers
by sletellier@users.chorem.org 03 May '11
by sletellier@users.chorem.org 03 May '11
03 May '11
Author: sletellier
Date: 2011-05-03 15:49:28 +0200 (Tue, 03 May 2011)
New Revision: 15
Url: http://chorem.org/repositories/revision/vradi/15
Log:
- #337 Make date humain readable
- Fix javadocs
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java 2011-05-03 13:05:25 UTC (rev 14)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java 2011-05-03 13:49:28 UTC (rev 15)
@@ -787,8 +787,7 @@
for (Map.Entry<String, String[]> binding : fieldBindings.entrySet()) {
String[] fqField = binding.getValue();
Object value = form.getField(fqField[0], fqField[1]);
- fieldValues.put(binding.getKey(),
- value != null ? value.toString() : null);
+ fieldValues.put(binding.getKey(), value);
}
// Extract files
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java 2011-05-03 13:05:25 UTC (rev 14)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/TemplateManager.java 2011-05-03 13:49:28 UTC (rev 15)
@@ -47,6 +47,7 @@
import com.sun.star.util.XRefreshable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.vradi.VradiServiceConfiguration;
import org.chorem.vradi.VradiServiceConfigurationHelper;
import org.chorem.vradi.services.VradiException;
import org.chorem.vradi.services.ooo.SingletonOOo;
@@ -57,8 +58,12 @@
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
/**
@@ -227,7 +232,7 @@
* Creating a correct File URL that OpenOffice can handle. This is
* necessary to be platform independent.
*
- * @param filelocation
+ * @param file
* @return openoffice internal url
* @throws VradiException in cas of MalformedURLException
*/
@@ -290,16 +295,25 @@
.queryInterface(XRefreshable.class, xEnumeratedFields);
for (int i = 0; i < fieldCount; i++) {
+ Object value = myValues.get(fieldNames[i]);
+
+ // sletellier 20110503 : make date humain readable (http://chorem.org/issues/show/337)
+ if (value instanceof Date) {
+ ApplicationConfig config = VradiServiceConfiguration.getConfig();
+ Locale locale = VradiServiceConfigurationHelper.getLocale(config);
+ DateFormat dateFormat = new SimpleDateFormat("EEEE, d MMMM yyyy HH:mm:ss", locale);
+ value = dateFormat.format((Date) value);
+ }
+
if (log.isDebugEnabled()) {
log.debug("Replacing " + fieldNames[i] + " with "
- + myValues.get(fieldNames[i]));
+ + value);
}
- xPropertySets[i].setPropertyValue("Content", myValues
- .get(fieldNames[i]));
+ xPropertySets[i].setPropertyValue("Content", value);
- if (log.isDebugEnabled() && myValues.get(fieldNames[i]) == null) {
+ if (log.isDebugEnabled() && value == null) {
log.debug("Field " + fieldNames[i] + " could not be found");
}
}
@@ -315,7 +329,7 @@
* <p/>
* Source : http://user.services.openoffice.org/fr/forum/viewtopic.php?f=15&t=6357&p=31…
*
- * @param image the file containing the image to insert
+ * @param imageUrl the url containing the image to insert
* @throws VradiException
*/
protected void insertImageInEndOfDocument(String imageUrl) throws VradiException {
1
0
r14 - in trunk: vradi-services/src/main/java/org/chorem/vradi/services/search vradi-swing/src/main/java/org/chorem/vradi vradi-swing/src/main/java/org/chorem/vradi/ui/thesaurus/helpers
by sletellier@users.chorem.org 03 May '11
by sletellier@users.chorem.org 03 May '11
03 May '11
Author: sletellier
Date: 2011-05-03 15:05:25 +0200 (Tue, 03 May 2011)
New Revision: 14
Url: http://chorem.org/repositories/revision/vradi/14
Log:
Fix deprecated methods usage
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/search/VradiQueryParser.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/thesaurus/helpers/ThesaurusDataHelper.java
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/search/VradiQueryParser.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/search/VradiQueryParser.java 2011-05-03 12:56:01 UTC (rev 13)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/search/VradiQueryParser.java 2011-05-03 13:05:25 UTC (rev 14)
@@ -86,8 +86,9 @@
log.debug("expression: " + expression);
}
- Analyzer analyzer = new WhitespaceAnalyzer();
- QueryParser parser = new QueryParser(Version.LUCENE_29, defaultField, analyzer);
+ Version lucene31 = Version.LUCENE_31;
+ Analyzer analyzer = new WhitespaceAnalyzer(lucene31);
+ QueryParser parser = new QueryParser(lucene31, defaultField, analyzer);
parser.setAllowLeadingWildcard(true);
parser.setDefaultOperator(QueryParser.Operator.AND);
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java 2011-05-03 12:56:01 UTC (rev 13)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java 2011-05-03 13:05:25 UTC (rev 14)
@@ -295,12 +295,6 @@
}
}
- /** Can't be used un @annotation. */
- @Deprecated
- public enum Step {
- AfterInit, BeforeExit
- }
-
public enum VradiSwingAction implements ApplicationConfig.ActionDef {
HELP(_("vradi.action.commandline.help"), VradiAction.class.getName() + "#help", "-h", "--help"),
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java 2011-05-03 12:56:01 UTC (rev 13)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiMain.java 2011-05-03 13:05:25 UTC (rev 14)
@@ -96,7 +96,7 @@
SwingUtil.checkJAXXContextEntry(context, SwingUtil.newContextEntryDef(VradiAction.class));
final ApplicationConfig config = context.getContextValue(ApplicationConfig.class);
- config.doAction(VradiConfig.Step.AfterInit.ordinal());
+ config.doAction(0);
final LoginHandler handler = UIHelper.getHandler(context, LoginHandler.class);
final LoginUI loginUI = new LoginUI(context);
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/thesaurus/helpers/ThesaurusDataHelper.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/thesaurus/helpers/ThesaurusDataHelper.java 2011-05-03 12:56:01 UTC (rev 13)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/thesaurus/helpers/ThesaurusDataHelper.java 2011-05-03 13:05:25 UTC (rev 14)
@@ -32,7 +32,9 @@
import org.chorem.vradi.services.VradiException;
import org.chorem.vradi.services.VradiService;
import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.search.TreeNodeResult;
+import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -176,14 +178,13 @@
public static int getNbFormsForThesaurus(Thesaurus thesaurus) {
String wikittyId = thesaurus.getWikittyId();
- Map.Entry<Thesaurus, Integer> entry =
- getProxy().restoreNode(Thesaurus.class, wikittyId, null);
+ TreeNodeResult<Thesaurus> tree = getProxy().findTreeNode(Thesaurus.class, wikittyId, 0, true, null);
- if (entry == null) {
+ if (tree == null) {
return 0;
}
- return entry.getValue();
+ return tree.getAttCount();
}
protected static List<String> getStringAsList(String s) {
1
0
03 May '11
Author: sletellier
Date: 2011-05-03 14:56:01 +0200 (Tue, 03 May 2011)
New Revision: 13
Url: http://chorem.org/repositories/revision/vradi/13
Log:
Add missing traduction
Modified:
trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties
Modified: trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties
===================================================================
--- trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties 2011-05-03 12:55:48 UTC (rev 12)
+++ trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties 2011-05-03 12:56:01 UTC (rev 13)
@@ -390,6 +390,7 @@
vradi.infogene.objet=Objet
vradi.infogene.sourceText=Source
vradi.infogene.sourceURL=URL source
+vradi.infogene.status=Status
vradi.init.closed=Vradi a \u00E9t\u00E9 ferm\u00E9 \u00E0 %1$s
vradi.init.context.done=Initialisation du contexte termin\u00E9e en %1$s.
vradi.init.ui.done=Initialisation de l'interface graphique termin\u00E9e en %1$s.
1
0
Author: sletellier
Date: 2011-05-03 14:55:48 +0200 (Tue, 03 May 2011)
New Revision: 12
Url: http://chorem.org/repositories/revision/vradi/12
Log:
Up to nuiton-widget 1.1.1
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-03 12:39:49 UTC (rev 11)
+++ trunk/pom.xml 2011-05-03 12:55:48 UTC (rev 12)
@@ -113,7 +113,7 @@
<jaxxVersion>2.4</jaxxVersion>
<nuitonUtilsVersion>2.1.2</nuitonUtilsVersion>
<nuitonI18nVersion>2.3.2</nuitonI18nVersion>
- <nuitonWidgetVersion>1.1</nuitonWidgetVersion>
+ <nuitonWidgetVersion>1.1.1</nuitonWidgetVersion>
<generatorPluginVersion>2.3.3</generatorPluginVersion>
<wikittyVersion>3.1</wikittyVersion>
<oooVersion>3.2.1</oooVersion>
1
0
Author: sletellier
Date: 2011-05-03 14:39:49 +0200 (Tue, 03 May 2011)
New Revision: 11
Url: http://chorem.org/repositories/revision/vradi/11
Log:
Update documentation
Modified:
trunk/src/site/rst/fluxXML.rst
Modified: trunk/src/site/rst/fluxXML.rst
===================================================================
--- trunk/src/site/rst/fluxXML.rst 2011-05-03 12:29:24 UTC (rev 10)
+++ trunk/src/site/rst/fluxXML.rst 2011-05-03 12:39:49 UTC (rev 11)
@@ -70,6 +70,10 @@
tous les quarts d'heure. Choisissez la fréquence souhaitée dans les trois listes
à votre disposition et validez. L'application doit être démarrée à l'heure où
l'alarme se déclenche pour que l'import s'effectue.
+Vous pouvez cocher l'option "Sélection automatique des formulaires", celle-ci
+permet de lancer la sélection automatique des formulaire lors de l'import des
+flux. Si il y a des propositions de descripteurs pour le formulaire importé,
+celui-ci va être sélectionné.
Forcer l'import d'un flux XML
=============================
1
0
Author: sletellier
Date: 2011-05-03 14:29:24 +0200 (Tue, 03 May 2011)
New Revision: 10
Url: http://chorem.org/repositories/revision/vradi/10
Log:
#321 Add an autoSend configuration option
- Move some method from VradiStorageService to managers
- Fix client validation error
- Fix upload template upload file name verification
Added:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AutoSendTasks.java
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java
trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java
trunk/vradi-services/src/main/resources/i18n/vradi-services_fr_FR.properties
trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java
trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/MailingManagerTest.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java
trunk/vradi-swing/src/main/resources/org/chorem/vradi/entities/Client-error-validation.xml
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -316,6 +316,12 @@
"vradi.WebHarvestPreview.dir",
_("vradi.service.config.migration.skip.description"),
getDefaultDir(WEB_HARVERT_SCRIPT_PREVIEW_DEFAULT_DIR_NAME),
+ String.class, false, false),
+
+ AUTO_SEND_HOUR(
+ "vradi.autoSend.hour",
+ _("vradi.autoSend.hour.description"),
+ null,
String.class, false, false);
public String key;
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfigurationHelper.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -194,6 +194,10 @@
return config.getOptionAsBoolean(VradiServiceOption.SKIP_MIGRATION.key);
}
+ public static String getSendTaskHour(ApplicationConfig config) {
+ return config.getOption(VradiServiceOption.AUTO_SEND_HOUR.key);
+ }
+
public static List<String> getOptionAsList(ApplicationConfig config, String key) {
List<String> result = new ArrayList<String>();
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -133,7 +133,7 @@
thesaurusManager = new ThesaurusManager(wikittyProxy);
clientManager = new ClientManager(config, wikittyProxy);
formTypeManager = new FormTypeManager(config, wikittyProxy);
- mailingManager = new MailingManager(config, wikittyProxy);
+ mailingManager = new MailingManager(config, wikittyProxy, formTypeManager);
fileService = new FileServiceImpl(config);
searchManager = new SearchManager(wikittyProxy, thesaurusManager);
@@ -408,47 +408,7 @@
@Override
public String generatePDF(String formId, boolean force) throws VradiException {
-
- String uri = null;
-
- String extensionName = null;
- Form form = wikittyProxy.restore(Form.class, formId);
- for (String ext : form.getExtensionNames()) {
- if (!ext.equals(Infogene.EXT_INFOGENE)
- && !ext.equals(Form.EXT_FORM)) {
- extensionName = ext;
- break;
- }
-
- }
- WikittyExtension extension = formTypeManager.getFormType(extensionName);
- // VradiHelper.getFormTypeTemplate(extension);
- String template = extension.getTagValue(VradiConstants.FormTypeTemplateEnum.FIELD_TEMPLATE_ATTRIBUTE.getValue());
- File templateFile = formTypeManager.getTemplate(extensionName, template);
- Map<String, String> fieldMap = getAssociatedFields(extension.getName(), template);
-
- if (log.isDebugEnabled()) {
- log.debug("Generating PDF file for form " + form.getWikittyId() +
- " (template = " + template + ")");
- }
-
- try {
- // but only those associated with current templates !
- List<Form> currentForms = Collections.singletonList(form);
- List<File> filesToAdd = generateFilledDocumentInPDF(
- templateFile, currentForms, fieldMap, force);
-
- if (filesToAdd != null && !filesToAdd.isEmpty()) {
- uri = filesToAdd.get(0).getName();
- }
- } catch (Exception ex) {
- if (log.isErrorEnabled()) {
- log.error("Can't generate pdf", ex);
- }
- throw new VradiException("Can't generate pdf", ex);
- }
-
- return uri;
+ return mailingManager.generatePDF(formId, force);
}
@@ -485,182 +445,10 @@
return documentsFields;
}
- /**
- * Generate offer PDF form given forms with specified template.
- *
- * @param template template to use to generate PDF
- * @param forms to to generate
- * @param fieldBindings map between template field name and form fields names
- * @param replace replace already existing generated forms
- * @return generated pdf files
- * @throws VradiException for various possible errors
- */
- protected List<File> generateFilledDocumentInPDF(File template, List<Form> forms,
- Map<String, String> fieldBindings,
- boolean replace)
- throws VradiException {
-
- List<File> generatedPDFList = null;
-
- if (template == null) {
- if (log.isWarnEnabled()) {
- log.warn("Try to generate form pdf without template");
- }
- } else if (fieldBindings == null) {
- if (log.isWarnEnabled()) {
- log.warn("No association field found, abording");
- }
- } else {
- TemplateManager templateManager = new TemplateManager(config, template);
-
- // split fqn form field name in an array
- // composed of extension name, and extension field
- // TODO EC20100510 set in commun with same function in
- // {@link generateFilledDocumentInPDF(TemplateManager, Form form, Map<String, String[]>, boolean)
- Map<String, String[]> map = new HashMap<String, String[]>();
- for (Map.Entry<String, String> binding : fieldBindings.entrySet()) {
- String fieldFQName = binding.getValue();
- if (fieldFQName != null && fieldFQName.indexOf(".") > 0) {
- int dot = fieldFQName.indexOf(".");
- String[] fqField = new String[2];
- fqField[0] = fieldFQName.substring(0, dot);
- fqField[1] = fieldFQName.substring(dot + 1);
- map.put(binding.getKey(), fqField);
- }
- }
-
- generatedPDFList = new ArrayList<File>();
- for (Form form : forms) {
- File f = generateFilledDocumentInPDF(templateManager, form, map, replace);
- generatedPDFList.add(f);
- }
- }
-
- return generatedPDFList;
- }
-
- /**
- * Generate a single pdf file for specified form.
- *
- * @param templateManager pdf template manager
- * @param form form to get pdf
- * @param fieldBindings association between field name and form fields (couple extension name, extension field)
- * @param replace replace already existing pdf
- * @return the pdf file associated with pdf
- * @throws VradiException for various possible errors
- */
- protected File generateFilledDocumentInPDF(TemplateManager templateManager,
- Form form, Map<String, String[]> fieldBindings,
- boolean replace) throws VradiException {
-
- // generated pdf are cached
- File result = mailingManager.getGeneratedPdfFile(form);
- if (!replace && result.exists()) {
- return result;
- }
-
- Map<String, Object> fieldValues = new HashMap<String, Object>();
- for (Map.Entry<String, String[]> binding : fieldBindings.entrySet()) {
- String[] fqField = binding.getValue();
- Object value = form.getField(fqField[0], fqField[1]);
- fieldValues.put(binding.getKey(),
- value != null ? value.toString() : null);
- }
-
- // Extract files
- List<String> formUrls = new ArrayList<String>();
- if (form.getFiles() != null) {
- for (String file : form.getFiles()) {
- String formUrl = fileService.getFormEmbeddedUrl(file, form.getWikittyId());
- formUrls.add(formUrl);
- }
- }
-
- templateManager.generateDoc(result.getPath(), fieldValues,
- formUrls.toArray(new String[formUrls.size()]));
-
- return result;
- }
-
@Override
public String sendMessages(String sessionId) throws VradiException {
- Session session = wikittyProxy.restore(Session.class, sessionId);
-
- if (SessionStatus.isSent(session)) {
- return StringUtils.EMPTY;
- }
-
- // Pass to active for session in error or stopped
- if (SessionStatus.isToRestart(session)) {
-
- log.info("Session was stopped or in error, resume sending");
-
- session.setStatus(SessionStatus.ACTIVE.getValue());
- session.setSessionLogs(StringUtils.EMPTY);
- session = wikittyProxy.store(session);
- }
-
- // Get all files to attach
- Set<String> filesNames = session.getFiles();
- List<File> files = new ArrayList<File>();
- if (filesNames != null) {
- for (String fileName : filesNames) {
- File file = fileService.downloadSessionAttachment(fileName, sessionId);
- files.add(file);
- log.info("Files founds for session : " + session.getSessionDate() + " : " + (file == null ? "not found" : file.getName()));
- }
- }
-
- // Init logger to keep exception
- List<String> sessionLogger = new ArrayList<String>();
-
- Set<String> sendingIds = session.getSending();
- if (sendingIds != null) {
-
- for (String sendingId : sendingIds) {
-
- // Flag to detect if it's canceled by user
- session = wikittyProxy.restore(Session.class, session.getWikittyId());
- if (SessionStatus.isStopped(session)) {
- log.warn("Sending stopped by user");
- sessionLogger.add(_("vradi.error.session.stopped", session.getNum(),
- DateUtil.formatDate(session.getSessionDate(), DateUtil.DEFAULT_PATTERN)));
- }
-
- Sending sending = wikittyProxy.restore(Sending.class, sendingId);
- if (sending != null) {
- if (SendingStatus.isSent(sending)) {
- if (log.isDebugEnabled()) {
- log.debug("Sending " + sendingId + " already sent, skip");
- }
- } else if (SendingStatus.isToSend(sending)) {
-
- // Send
- String log = sendMessage(sendingId, session.getParagraph(), files);
- if (log != null) {
- sessionLogger.add(log);
- }
- }
- }
- }
- }
-
- // Get logs
- String formatedLogs = formatSessionLog(sessionLogger);
-
- // Set session to sent or error
- if (sessionLogger.isEmpty()) {
- session.setStatus(SessionStatus.SENT.getValue());
- session.setSessionLogs(StringUtils.EMPTY);
- } else {
- session.setStatus(SessionStatus.ERROR.getValue());
- session.setSessionLogs(formatedLogs);
- }
- session.setSessionDate(new Date());
- wikittyProxy.store(session);
-
- return formatedLogs;
+ return mailingManager.sendMessages(sessionId);
}
@Override
@@ -674,105 +462,9 @@
}
public String sendMessage(String sendingId, String sessionParagraph, String email, boolean reSend, Collection<File> filesToAttach) throws VradiException {
-
- Sending sending = wikittyProxy.restore(Sending.class, sendingId);
- User user = clientManager.getUser(sending.getUser());
-
- // Will resend sending already sent
- if (!reSend) {
- // Do nothing
- if (!SendingStatus.isToSend(sending)) {
- return null;
- }
- }
-
- // If its client or group sending : do nothing
- // Never append
-// if (sending.getUser() == null) {
-// sending.setStatus(VradiConstants.SendingStatus.SENT.getValue());
-// return wikittyProxy.store(sending);
-// }
-
- Set<String> formsIds = SendingHelper.extractForms(wikittyProxy, sending.getGroupForms());
-
- // If no forms founds
- if (formsIds.isEmpty()) {
-
- // Set session in error
- sending.setStatus(SendingStatus.DELETED.getValue());
- wikittyProxy.store(sending);
-
- // Do nothing
- return null;
- }
-
- // Get email address
- // si aucune n'est specifiée, on utilise celle du client
- if (StringUtils.isBlank(email)) {
- email = user.getEmail();
-
- // il peut arriver qu'un user n'est pas d'email et que l'admin
- // souhaite quand meme faire l'envoie d'une session.
- // dans ce cas on ne traite pas l'envoi de mail courant.
- if (StringUtils.isBlank(email)) {
-
- if (log.isWarnEnabled()) {
- log.warn("User " + user.getName() + " has not valid email (skip current mail sending)");
- }
- // Set session in error
- sending.setStatus(SendingStatus.ERROR.getValue());
- wikittyProxy.store(sending);
-
- return _("vradi.error.sending.emailIsBlank", user.getName());
- }
- }
-
- if (log.isDebugEnabled()) {
- log.debug("Sending message to " + email);
- }
-
- String subject = VradiServiceConfigurationHelper.getOfferMailSubject(config);
-
- // Set message
- String message = sessionParagraph + "\n\n" + sending.getParagraph();
-
- List<Form> forms = wikittyProxy.restore(Form.class, new ArrayList<String>(formsIds));
-
- boolean receptionProof = sending.getReceptionProof();
-
- // Post mail and save msg id
- String messageId;
- try {
- messageId = mailingManager.postMail(
- email, subject, message, forms, receptionProof, filesToAttach);
-
- } catch (VradiException eee) {
-
- log.error("Failed to send sending for email : " + email, eee);
-
- // Set sending in error
- sending.setStatus(SendingStatus.ERROR.getValue());
- wikittyProxy.store(sending);
-
- return _("vradi.error.sending.failedToSend", user.getName(), eee.getMessage());
- }
- sending.setMessageId(messageId);
-
- // Set sending status
- sending.setStatus(receptionProof ?
- SendingStatus.WAITING_RECEPTION_PROOF.getValue() :
- SendingStatus.SENT.getValue());
-
- // Update sending
- wikittyProxy.store(sending);
-
- return null;
+ return mailingManager.sendMessage(sendingId, sessionParagraph, email, reSend, filesToAttach);
}
- protected String formatSessionLog(List<String> logs) {
- return StringUtils.join(logs, ",\n");
- }
-
@Override
public void receiveMessages() throws VradiException {
mailingManager.receiveMails();
@@ -797,41 +489,7 @@
*/
@Override
public void generatePDFForSession(String sessionId) throws VradiException {
- List<String> formsIdsToGenerate = new ArrayList<String>();
-
- Session session = wikittyProxy.restore(Session.class, sessionId);
-
- Set<String> sendingIds = session.getSending();
-
- if (sendingIds == null) {
- return;
- }
-
- for (String id : sendingIds) {
- Sending sending = wikittyProxy.restore(Sending.class, id);
-
- if (sending != null) {
- Set<String> formsIds = SendingHelper.extractForms(wikittyProxy, sending.getGroupForms());
-
- if (formsIds != null) {
- for (String formId : formsIds) {
-
- if (!formsIdsToGenerate.contains(formId)) {
- formsIdsToGenerate.add(formId);
- }
- }
- }
- }
- }
-
- for (String formId : formsIdsToGenerate) {
- try {
- generatePDF(formId, true);
- } catch (VradiException eee) {
- throw new VradiException("An error occurred while generating PDF file for " +
- "form : " + formId, eee);
- }
- }
+ mailingManager.generatePDFForSession(sessionId);
}
/**
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/MailingManager.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -32,13 +32,20 @@
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
+import org.chorem.vradi.VradiConstants;
import org.chorem.vradi.VradiServiceConfigurationHelper;
+import org.chorem.vradi.beans.SendingHelper;
import org.chorem.vradi.entities.Form;
+import org.chorem.vradi.entities.Infogene;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.User;
+import org.chorem.vradi.services.FileService;
+import org.chorem.vradi.services.FileServiceImpl;
import org.chorem.vradi.services.VradiException;
import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.DateUtil;
import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
import org.nuiton.wikitty.search.Search;
@@ -73,11 +80,16 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import static org.chorem.vradi.VradiConstants.SendingStatus;
import static org.nuiton.i18n.I18n._;
@@ -102,9 +114,15 @@
protected WikittyProxy wikittyProxy;
- public MailingManager(ApplicationConfig config, WikittyProxy wikittyProxy) {
+ protected FileService fileService;
+
+ protected FormTypeManager formTypeManager;
+
+ public MailingManager(ApplicationConfig config, WikittyProxy wikittyProxy, FormTypeManager formTypeManager) {
this.config = config;
this.wikittyProxy = wikittyProxy;
+ this.fileService = new FileServiceImpl(config);
+ this.formTypeManager = formTypeManager;
}
/**
@@ -602,4 +620,370 @@
log.info("Mine type of " + file.getName() + " is : " + result);
return result;
}
+
+ /**
+ * Generate all the PDFs needed to send a session.
+ *
+ * @param sessionId the session wikitty id
+ */
+ public void generatePDFForSession(String sessionId) throws VradiException {
+ List<String> formsIdsToGenerate = new ArrayList<String>();
+
+ org.chorem.vradi.entities.Session session = wikittyProxy.restore(org.chorem.vradi.entities.Session.class, sessionId);
+
+ Set<String> sendingIds = session.getSending();
+
+ if (sendingIds == null) {
+ return;
+ }
+
+ for (String id : sendingIds) {
+ Sending sending = wikittyProxy.restore(Sending.class, id);
+
+ if (sending != null) {
+ Set<String> formsIds = SendingHelper.extractForms(wikittyProxy, sending.getGroupForms());
+
+ if (formsIds != null) {
+ for (String formId : formsIds) {
+
+ if (!formsIdsToGenerate.contains(formId)) {
+ formsIdsToGenerate.add(formId);
+ }
+ }
+ }
+ }
+ }
+
+ for (String formId : formsIdsToGenerate) {
+ try {
+ generatePDF(formId, true);
+ } catch (VradiException eee) {
+ throw new VradiException("An error occurred while generating PDF file for " +
+ "form : " + formId, eee);
+ }
+ }
+ }
+
+ public String generatePDF(String formId, boolean force) throws VradiException {
+
+ String uri = null;
+
+ String extensionName = null;
+ Form form = wikittyProxy.restore(Form.class, formId);
+ for (String ext : form.getExtensionNames()) {
+ if (!ext.equals(Infogene.EXT_INFOGENE)
+ && !ext.equals(Form.EXT_FORM)) {
+ extensionName = ext;
+ break;
+ }
+
+ }
+ WikittyExtension extension = formTypeManager.getFormType(extensionName);
+ // VradiHelper.getFormTypeTemplate(extension);
+ String template = extension.getTagValue(VradiConstants.FormTypeTemplateEnum.FIELD_TEMPLATE_ATTRIBUTE.getValue());
+ File templateFile = formTypeManager.getTemplate(extensionName, template);
+ Map<String, String> fieldMap = formTypeManager.getAssociatedFields(extension.getName(), template);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Generating PDF file for form " + form.getWikittyId() +
+ " (template = " + template + ")");
+ }
+
+ try {
+ // but only those associated with current templates !
+ List<Form> currentForms = Collections.singletonList(form);
+ List<File> filesToAdd = generateFilledDocumentInPDF(
+ templateFile, currentForms, fieldMap, force);
+
+ if (filesToAdd != null && !filesToAdd.isEmpty()) {
+ uri = filesToAdd.get(0).getName();
+ }
+ } catch (Exception ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't generate pdf", ex);
+ }
+ throw new VradiException("Can't generate pdf", ex);
+ }
+
+ return uri;
+ }
+
+
+ /**
+ * Generate offer PDF form given forms with specified template.
+ *
+ * @param template template to use to generate PDF
+ * @param forms to to generate
+ * @param fieldBindings map between template field name and form fields names
+ * @param replace replace already existing generated forms
+ * @return generated pdf files
+ * @throws VradiException for various possible errors
+ */
+ protected List<File> generateFilledDocumentInPDF(File template, List<Form> forms,
+ Map<String, String> fieldBindings,
+ boolean replace)
+ throws VradiException {
+
+ List<File> generatedPDFList = null;
+
+ if (template == null) {
+ if (log.isWarnEnabled()) {
+ log.warn("Try to generate form pdf without template");
+ }
+ } else if (fieldBindings == null) {
+ if (log.isWarnEnabled()) {
+ log.warn("No association field found, abording");
+ }
+ } else {
+ TemplateManager templateManager = new TemplateManager(config, template);
+
+ // split fqn form field name in an array
+ // composed of extension name, and extension field
+ // TODO EC20100510 set in commun with same function in
+ // {@link generateFilledDocumentInPDF(TemplateManager, Form form, Map<String, String[]>, boolean)
+ Map<String, String[]> map = new HashMap<String, String[]>();
+ for (Map.Entry<String, String> binding : fieldBindings.entrySet()) {
+ String fieldFQName = binding.getValue();
+ if (fieldFQName != null && fieldFQName.indexOf(".") > 0) {
+ int dot = fieldFQName.indexOf(".");
+ String[] fqField = new String[2];
+ fqField[0] = fieldFQName.substring(0, dot);
+ fqField[1] = fieldFQName.substring(dot + 1);
+ map.put(binding.getKey(), fqField);
+ }
+ }
+
+ generatedPDFList = new ArrayList<File>();
+ for (Form form : forms) {
+ File f = generateFilledDocumentInPDF(templateManager, form, map, replace);
+ generatedPDFList.add(f);
+ }
+ }
+
+ return generatedPDFList;
+ }
+
+ /**
+ * Generate a single pdf file for specified form.
+ *
+ * @param templateManager pdf template manager
+ * @param form form to get pdf
+ * @param fieldBindings association between field name and form fields (couple extension name, extension field)
+ * @param replace replace already existing pdf
+ * @return the pdf file associated with pdf
+ * @throws VradiException for various possible errors
+ */
+ protected File generateFilledDocumentInPDF(TemplateManager templateManager,
+ Form form, Map<String, String[]> fieldBindings,
+ boolean replace) throws VradiException {
+
+ // generated pdf are cached
+ File result = getGeneratedPdfFile(form);
+ if (!replace && result.exists()) {
+ return result;
+ }
+
+ Map<String, Object> fieldValues = new HashMap<String, Object>();
+ for (Map.Entry<String, String[]> binding : fieldBindings.entrySet()) {
+ String[] fqField = binding.getValue();
+ Object value = form.getField(fqField[0], fqField[1]);
+ fieldValues.put(binding.getKey(),
+ value != null ? value.toString() : null);
+ }
+
+ // Extract files
+ List<String> formUrls = new ArrayList<String>();
+ if (form.getFiles() != null) {
+ for (String file : form.getFiles()) {
+ String formUrl = fileService.getFormEmbeddedUrl(file, form.getWikittyId());
+ formUrls.add(formUrl);
+ }
+ }
+
+ templateManager.generateDoc(result.getPath(), fieldValues,
+ formUrls.toArray(new String[formUrls.size()]));
+
+ return result;
+ }
+
+ public String sendMessages(String sessionId) throws VradiException {
+
+ org.chorem.vradi.entities.Session session = wikittyProxy.restore(org.chorem.vradi.entities.Session.class, sessionId);
+
+ if (VradiConstants.SessionStatus.isSent(session)) {
+ return StringUtils.EMPTY;
+ }
+
+ // Pass to active for session in error or stopped
+ if (VradiConstants.SessionStatus.isToRestart(session)) {
+
+ log.info("Session was stopped or in error, resume sending");
+
+ session.setStatus(VradiConstants.SessionStatus.ACTIVE.getValue());
+ session.setSessionLogs(StringUtils.EMPTY);
+ session = wikittyProxy.store(session);
+ }
+
+ // Get all files to attach
+ Set<String> filesNames = session.getFiles();
+ List<File> files = new ArrayList<File>();
+ if (filesNames != null) {
+ for (String fileName : filesNames) {
+ File file = fileService.downloadSessionAttachment(fileName, sessionId);
+ files.add(file);
+ log.info("Files founds for session : " + session.getSessionDate() + " : " + (file == null ? "not found" : file.getName()));
+ }
+ }
+
+ // Init logger to keep exception
+ List<String> sessionLogger = new ArrayList<String>();
+
+ Set<String> sendingIds = session.getSending();
+ if (sendingIds != null) {
+
+ for (String sendingId : sendingIds) {
+
+ // Flag to detect if it's canceled by user
+ session = wikittyProxy.restore(org.chorem.vradi.entities.Session.class, session.getWikittyId());
+ if (VradiConstants.SessionStatus.isStopped(session)) {
+ log.warn("Sending stopped by user");
+ sessionLogger.add(_("vradi.error.session.stopped", session.getNum(),
+ DateUtil.formatDate(session.getSessionDate(), DateUtil.DEFAULT_PATTERN)));
+ }
+
+ Sending sending = wikittyProxy.restore(Sending.class, sendingId);
+ if (sending != null) {
+ if (SendingStatus.isSent(sending)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Sending " + sendingId + " already sent, skip");
+ }
+ } else if (SendingStatus.isToSend(sending)) {
+
+ // Send
+ String log = sendMessage(sendingId, session.getParagraph(), null, false, files);
+ if (log != null) {
+ sessionLogger.add(log);
+ }
+ }
+ }
+ }
+ }
+
+ // Get logs
+ String formatedLogs = formatSessionLog(sessionLogger);
+
+ // Set session to sent or error
+ if (sessionLogger.isEmpty()) {
+ session.setStatus(VradiConstants.SessionStatus.SENT.getValue());
+ session.setSessionLogs(StringUtils.EMPTY);
+ } else {
+ session.setStatus(VradiConstants.SessionStatus.ERROR.getValue());
+ session.setSessionLogs(formatedLogs);
+ }
+ session.setSessionDate(new Date());
+ wikittyProxy.store(session);
+
+ return formatedLogs;
+ }
+
+ protected String formatSessionLog(List<String> logs) {
+ return StringUtils.join(logs, ",\n");
+ }
+
+ public String sendMessage(String sendingId, String sessionParagraph, String email, boolean reSend, Collection<File> filesToAttach) throws VradiException {
+
+ Sending sending = wikittyProxy.restore(Sending.class, sendingId);
+ User user = wikittyProxy.restore(User.class, sending.getUser());
+
+ // Will resend sending already sent
+ if (!reSend) {
+ // Do nothing
+ if (!SendingStatus.isToSend(sending)) {
+ return null;
+ }
+ }
+
+ // If its client or group sending : do nothing
+ // Never append
+// if (sending.getUser() == null) {
+// sending.setStatus(VradiConstants.SendingStatus.SENT.getValue());
+// return wikittyProxy.store(sending);
+// }
+
+ Set<String> formsIds = SendingHelper.extractForms(wikittyProxy, sending.getGroupForms());
+
+ // If no forms founds
+ if (formsIds.isEmpty()) {
+
+ // Set session in error
+ sending.setStatus(SendingStatus.DELETED.getValue());
+ wikittyProxy.store(sending);
+
+ // Do nothing
+ return null;
+ }
+
+ // Get email address
+ // si aucune n'est specifiée, on utilise celle du client
+ if (StringUtils.isBlank(email)) {
+ email = user.getEmail();
+
+ // il peut arriver qu'un user n'est pas d'email et que l'admin
+ // souhaite quand meme faire l'envoie d'une session.
+ // dans ce cas on ne traite pas l'envoi de mail courant.
+ if (StringUtils.isBlank(email)) {
+
+ if (log.isWarnEnabled()) {
+ log.warn("User " + user.getName() + " has not valid email (skip current mail sending)");
+ }
+ // Set session in error
+ sending.setStatus(SendingStatus.ERROR.getValue());
+ wikittyProxy.store(sending);
+
+ return _("vradi.error.sending.emailIsBlank", user.getName());
+ }
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("Sending message to " + email);
+ }
+
+ String subject = VradiServiceConfigurationHelper.getOfferMailSubject(config);
+
+ // Set message
+ String message = sessionParagraph + "\n\n" + sending.getParagraph();
+
+ List<Form> forms = wikittyProxy.restore(Form.class, new ArrayList<String>(formsIds));
+
+ boolean receptionProof = sending.getReceptionProof();
+
+ // Post mail and save msg id
+ String messageId;
+ try {
+ messageId = postMail(
+ email, subject, message, forms, receptionProof, filesToAttach);
+
+ } catch (VradiException eee) {
+
+ log.error("Failed to send sending for email : " + email, eee);
+
+ // Set sending in error
+ sending.setStatus(SendingStatus.ERROR.getValue());
+ wikittyProxy.store(sending);
+
+ return _("vradi.error.sending.failedToSend", user.getName(), eee.getMessage());
+ }
+ sending.setMessageId(messageId);
+
+ // Set sending status
+ sending.setStatus(receptionProof ?
+ SendingStatus.WAITING_RECEPTION_PROOF.getValue() :
+ SendingStatus.SENT.getValue());
+
+ // Update sending
+ wikittyProxy.store(sending);
+
+ return null;
+ }
+
}
Added: trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AutoSendTasks.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AutoSendTasks.java (rev 0)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AutoSendTasks.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -0,0 +1,57 @@
+package org.chorem.vradi.services.tasks;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.chorem.vradi.entities.Session;
+import org.chorem.vradi.services.VradiException;
+import org.chorem.vradi.services.managers.FormManager;
+import org.chorem.vradi.services.managers.MailingManager;
+
+import java.util.TimerTask;
+
+/**
+ * @author sletellier
+ */
+public class AutoSendTasks extends TimerTask {
+
+ private static final Log log = LogFactory.getLog(AutoSendTasks.class);
+
+
+ protected FormManager formManager;
+ protected MailingManager mailingManager;
+
+ public AutoSendTasks(FormManager formManager, MailingManager mailingManager) {
+ this.formManager = formManager;
+ this.mailingManager = mailingManager;
+ }
+
+ @Override
+ public void run() {
+
+ try {
+ // Get open session of open
+ Session session = formManager.getLastOpenSession();
+
+ // If no session is opened, creating new one
+ if (session == null) {
+ session = formManager.createNewSession();
+ }
+
+ // Bind all forms
+ session= formManager.bindForms(session);
+
+ String sessionId = session.getWikittyId();
+
+ // Generate pdf for session
+ mailingManager.generatePDFForSession(sessionId);
+
+ // Send email for session
+ String logs = mailingManager.sendMessages(sessionId);
+
+ log.info("Send email is finished : " + logs);
+
+ } catch (VradiException e) {
+ log.error("Failled to auto send session");
+ }
+ }
+}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -29,6 +29,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.vradi.VradiConstants;
+import org.chorem.vradi.VradiServiceConfigurationHelper;
import org.chorem.vradi.entities.XmlStream;
import org.chorem.vradi.services.managers.BindingManager;
import org.chorem.vradi.services.managers.FormManager;
@@ -76,6 +77,11 @@
/** Cron task to import streams. */
protected ScheduledExecutorService xmlStreamScheduler;
+ /** Cron task to enable auto send task. */
+ protected ScheduledExecutorService autoSendScheduler;
+
+ protected ScheduledFuture<?> autoSendTask;
+
protected ReceiveMailTasks receiveMailTasks;
/** Map entre les id des flux, et les taches gérant. */
@@ -111,8 +117,26 @@
public void initTasks() {
initMailTask();
initXmlStreamTasks();
+
+ // If hour is fill in properties
+ String sendTaskHour = VradiServiceConfigurationHelper.getSendTaskHour(config);
+ if (!StringUtils.isEmpty(sendTaskHour)) {
+
+ // Create autoSend task
+ initAutoSendTask(sendTaskHour);
+ }
}
+ protected void initAutoSendTask(String sendTaskHour) {
+
+ // les imports sont fait sequentiellement
+ autoSendScheduler = Executors.newScheduledThreadPool(1);
+
+ TimerTask task = new AutoSendTasks(formManager, mailingManager);
+
+ autoSendTask = initDaylyTask(autoSendScheduler, task, sendTaskHour);
+ }
+
/** Init and start mail tasks (check every 10 minutes) */
protected void initMailTask() {
mailCronTimer = new Timer("vradi-mail-task");
@@ -148,7 +172,24 @@
streamImportTime = "0:0";
}
- Matcher matchImportTime = VradiConstants.XML_STREAM_IMPORT_TIME.matcher(streamImportTime);
+ // TODO EC20100921 prevoir le cas où une tâche dure plus d'une journée
+ TimerTask autoImportTask;
+ if (xmlStream.getAutoAssign()) {
+ autoImportTask = new AssignXmlStreamTasks(config, wikittyProxy, bindingManager, thesaurusManager, formManager, xmlStream.getWikittyId());
+ } else {
+ autoImportTask = new ImportXmlStreamTasks(config, wikittyProxy, bindingManager, xmlStream.getWikittyId());
+ }
+ ScheduledFuture<?> sheduledImportTask = initDaylyTask(xmlStreamScheduler, autoImportTask, streamImportTime);
+
+ if (log.isInfoEnabled()) {
+ log.info("Starting import of xml stream " + xmlStream.getName() + " at " + streamImportTime);
+ }
+ xmlStreamImportTasks.put(xmlStream.getWikittyId(), sheduledImportTask);
+ }
+
+ public ScheduledFuture<?> initDaylyTask(ScheduledExecutorService scheduledExecutorService, TimerTask task, String hour) {
+
+ Matcher matchImportTime = VradiConstants.XML_STREAM_IMPORT_TIME.matcher(hour);
if (matchImportTime.find()) {
String hours = matchImportTime.group(1);
String minutes = matchImportTime.group(2);
@@ -166,27 +207,16 @@
if (delayInMinute < 0) {
delayInMinute += 24 * 60;
}
-
- // TODO EC20100921 prevoir le cas où une tâche dure plus d'une journée
-
- TimerTask task;
- if (xmlStream.getAutoAssign()) {
- task = new AssignXmlStreamTasks(config, wikittyProxy, bindingManager, thesaurusManager, formManager, xmlStream.getWikittyId());
- } else {
- task = new ImportXmlStreamTasks(config, wikittyProxy, bindingManager, xmlStream.getWikittyId());
+ if (log.isInfoEnabled()) {
+ log.info(task.getClass().getName() + " - in scheduler, delai : " + delayInMinute + "min, period " + 24 * 60 + "min");
}
- ScheduledFuture<?> sheduledImportTask = xmlStreamScheduler.scheduleAtFixedRate(task, delayInMinute, 24 * 60, TimeUnit.MINUTES);
+ return scheduledExecutorService.scheduleAtFixedRate(task, delayInMinute, 24 * 60, TimeUnit.MINUTES);
- if (log.isInfoEnabled()) {
- log.info("Starting import of xml stream " + xmlStream.getName() + " at " + streamImportTime);
- log.info(" - in scheduler, delai : " + delayInMinute + "min, period " + 24 * 60 + "min");
- }
- xmlStreamImportTasks.put(xmlStream.getWikittyId(), sheduledImportTask);
- } else {
- if (log.isWarnEnabled()) {
- log.warn("Can't parse " + streamImportTime + " for stream " + xmlStream.getWikittyId());
- }
}
+ if (log.isWarnEnabled()) {
+ log.warn("Can't parse " + hour);
+ }
+ return null;
}
/**
Modified: trunk/vradi-services/src/main/resources/i18n/vradi-services_fr_FR.properties
===================================================================
--- trunk/vradi-services/src/main/resources/i18n/vradi-services_fr_FR.properties 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/main/resources/i18n/vradi-services_fr_FR.properties 2011-05-03 12:29:24 UTC (rev 10)
@@ -8,6 +8,7 @@
vradi.adminXmlStream.config.interval.days=jours
vradi.adminXmlStream.config.interval.hours=heures
vradi.adminXmlStream.config.interval.minutes=minutes
+vradi.autoSend.hour.description=
vradi.email.status.deleted=Supprim\u00E9e
vradi.email.status.error=Erreur
vradi.email.status.received=Re\u00E7u
Modified: trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java
===================================================================
--- trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -60,6 +60,7 @@
import org.chorem.vradi.entities.UserImpl;
import org.chorem.vradi.entities.XmlFieldBinding;
import org.chorem.vradi.entities.XmlStream;
+import org.chorem.vradi.services.managers.FormTypeManager;
import org.chorem.vradi.services.managers.MailingManager;
import org.junit.Assert;
import org.junit.Ignore;
@@ -1032,7 +1033,7 @@
* @throws VradiException when an error occurred during test
*/
public void testPostMessage() throws VradiException {
- MailingManager mailingManager = new MailingManager(config, null);
+ MailingManager mailingManager = new MailingManager(config, null, null);
mailingManager.postMail("toto(a)codelutin.com", "test",
"ceci est un test", null, true, null);
}
Modified: trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/MailingManagerTest.java
===================================================================
--- trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/MailingManagerTest.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/MailingManagerTest.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -49,7 +49,7 @@
@Before
public void initMailingManager() {
- mailingManager = new MailingManager(config, wikittyProxy);
+ mailingManager = new MailingManager(config, wikittyProxy, null);
}
/** Test get header parsing in mail content. */
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java 2011-05-03 12:29:24 UTC (rev 10)
@@ -263,7 +263,7 @@
// Invoke instance creation
ui = constructor.newInstance(navUI);
} catch (Exception eee) {
- log.error(eee);
+ log.error(eee.getMessage(), eee);
ErrorDialogUI.showError(eee);
}
@@ -396,8 +396,8 @@
helper.createAndSelectClientNode(client.getWikittyId());
- } catch (Exception e) {
- log.error("Cant save client : ", e);
+ } catch (Exception eee) {
+ log.error("Cant save client : ", eee);
}
return client;
@@ -426,8 +426,8 @@
saveGroups(parentUI, helper, new ArrayList<Group>(groups));
}
- } catch (Exception e) {
- log.error("Cant save user : ", e);
+ } catch (Exception eee) {
+ log.error("Cant save user : ", eee);
}
return user;
@@ -435,8 +435,6 @@
/**
* Export all clients database (with groups, users, clients) as CSV.
- * <p/>
- * Used in {@link org.chorem.vradi.ui.admin.AdminClientNavUI}.
*
* @param adminNavUI parent ui
*/
@@ -1836,8 +1834,8 @@
// interdiction des characteres spéciaux dans les noms de fichier
// bug hessian et pas top d'avoir des accents
String filename = template.getName();
- if (!filename.matches("[a-zA-Z0-9_]+")) {
- JOptionPane.showMessageDialog(adminFormTypeUI, _("vradi.file.template.wrongFileNamePattern"));
+ if (!filename.matches("[a-zA-Z0-9_\\.]+")) {
+ JOptionPane.showMessageDialog(adminFormTypeUI, _("vradi.file.template.wrongFileNamePattern", filename));
} else {
String extensionName = adminFormTypeUI.getBean().getName();
String uri = VradiService.getFileService().uploadTemplate(template, extensionName);
Modified: trunk/vradi-swing/src/main/resources/org/chorem/vradi/entities/Client-error-validation.xml
===================================================================
--- trunk/vradi-swing/src/main/resources/org/chorem/vradi/entities/Client-error-validation.xml 2011-05-02 16:09:43 UTC (rev 9)
+++ trunk/vradi-swing/src/main/resources/org/chorem/vradi/entities/Client-error-validation.xml 2011-05-03 12:29:24 UTC (rev 10)
@@ -33,10 +33,4 @@
</field-validator>
</field>
- <field name="email">
- <field-validator type="email">
- <message>vradi.adminUi.invalid.email</message>
- </field-validator>
- </field>
-
</validators>
\ No newline at end of file
1
0
Author: sletellier
Date: 2011-05-02 18:09:43 +0200 (Mon, 02 May 2011)
New Revision: 9
Url: http://chorem.org/repositories/revision/vradi/9
Log:
- #320 Add autoAssign configuration option
Added:
trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceHelper.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AssignXmlStreamTasks.java
Modified:
trunk/vradi-entities/src/main/xmi/vradi.zargo
trunk/vradi-services/src/main/java/org/chorem/vradi/beans/XmlStreamImportResult.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/BindingManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/ImportXmlStreamTasks.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/XmlStreamConfigUI.jaxx
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/OfferEditHandler.java
trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties
Modified: trunk/vradi-entities/src/main/xmi/vradi.zargo
===================================================================
(Binary files differ)
Added: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceHelper.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceHelper.java (rev 0)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceHelper.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -0,0 +1,21 @@
+package org.chorem.vradi;
+
+import org.nuiton.wikitty.entities.BusinessEntity;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author sletellier
+ */
+public class VradiServiceHelper {
+
+ public static List<String> extractIds(Collection<? extends BusinessEntity> beans) {
+ List<String> ids = new ArrayList<String>();
+ for (BusinessEntity bean : beans) {
+ ids.add(bean.getWikittyId());
+ }
+ return ids;
+ }
+}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/beans/XmlStreamImportResult.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/beans/XmlStreamImportResult.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/beans/XmlStreamImportResult.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -26,6 +26,8 @@
package org.chorem.vradi.beans;
import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
/**
* Import xml stream results.
@@ -55,6 +57,8 @@
protected int numberParsingError;
+ protected Set<String> createdFormsIds;
+
public int getCreatedFormCount() {
return createdFormCount;
}
@@ -86,4 +90,19 @@
public void setNumberParsingError(int numberParsingError) {
this.numberParsingError = numberParsingError;
}
+
+ public Set<String> getCreatedFormsIds() {
+ return createdFormsIds;
+ }
+
+ public void setCreatedFormsIds(Set<String> createdFormsIds) {
+ this.createdFormsIds = createdFormsIds;
+ }
+
+ public void addCreatedFormsIds(String wikittyId) {
+ if (createdFormsIds == null) {
+ createdFormsIds = new HashSet<String>();
+ }
+ createdFormsIds.add(wikittyId);
+ }
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -25,6 +25,7 @@
package org.chorem.vradi.services;
import org.chorem.vradi.beans.XmlStreamImportResult;
+import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
import org.chorem.vradi.entities.QueryMaker;
import org.chorem.vradi.entities.Sending;
@@ -393,4 +394,13 @@
*/
List<Sending> revertGroupDeletion(String sessionId, String groupId, String formId);
+ /**
+ * Update forms and attach forms to specified thesaurus.
+ *
+ * @param form form to modify
+ * @param thesaurusIdsToAttach thesaurus to attach form to (set empty set to clear thesaurus, null = no thesaurus management)
+ * @return forms saved
+ * @throws VradiException if exception occured
+ */
+ Form updateForms(Form form, List<String> thesaurusIdsToAttach) throws VradiException;
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -139,7 +139,7 @@
searchManager = new SearchManager(wikittyProxy, thesaurusManager);
formManager = new FormManager(config, wikittyProxy, thesaurusManager, searchManager);
bindingManager = new BindingManager(config, wikittyProxy, formTypeManager, formManager);
- tasksManager = new TasksManager(config, wikittyProxy, mailingManager, bindingManager);
+ tasksManager = new TasksManager(config, wikittyProxy, thesaurusManager, formManager, mailingManager, bindingManager);
// init cron tasks
tasksManager.initTasks();
@@ -911,4 +911,9 @@
public List<Sending> revertGroupDeletion(String sessionId, String groupId, String formId) {
return formManager.revertGroupDeletion(sessionId, groupId, formId);
}
+
+ @Override
+ public Form updateForms(Form form, List<String> thesaurusIdsToAttach) throws VradiException {
+ return formManager.updateForm(form, thesaurusIdsToAttach);
+ }
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/BindingManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/BindingManager.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/BindingManager.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -611,7 +611,12 @@
FormImpl form = createForm(formType, bindings, feedElement, namespace, bindingContext);
bindingContext.nbCreated++;
- form.setId(formDateId + form.getWikittyId());
+ String wikittyId = form.getWikittyId();
+ form.setId(formDateId + wikittyId);
+
+ // Keep id for result
+ result.addCreatedFormsIds(wikittyId);
+
form.setXmlStream(stream.getWikittyId());
form.setStatus(toTreatId);
form.setImportContentHash(contentSHA1Hash);
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -62,6 +62,7 @@
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
@@ -106,12 +107,24 @@
/**
* Update forms and attach forms to specified thesaurus.
*
+ * @param form form to modify
+ * @param thesaurus thesaurus to attach form to (set empty set to clear thesaurus, null = no thesaurus management)
+ * @return forms saved
+ * @throws VradiException if exception occured
+ */
+ public Form updateForm(Form form, Collection<String> thesaurus) throws VradiException {
+ return updateForms(Collections.singletonList(form), thesaurus).get(0);
+ }
+
+ /**
+ * Update forms and attach forms to specified thesaurus.
+ *
* @param forms forms to save
* @param thesaurus thesaurus to attach form to (set empty set to clear thesaurus, null = no thesaurus management)
* @return forms saved
* @throws VradiException if exception occured
*/
- public List<Form> updateForms(List<Form> forms, Set<String> thesaurus) throws VradiException {
+ public List<Form> updateForms(List<Form> forms, Collection<String> thesaurus) throws VradiException {
if (log.isDebugEnabled()) {
log.debug("updateForms(forms)");
}
@@ -367,77 +380,18 @@
// Restore updated session
currentSession = wikittyProxy.restore(Session.class, currentSession.getWikittyId());
- // Only selected forms
- String status = getSelectionneStatus().getWikittyId();
-
List<GroupForms> groupFormToSave = new ArrayList<GroupForms>();
// recherche de tous les executeurs de requette (client, groupes...)
// was all query make before
- //List<QueryMaker> queryMakers = searchManager.findQueryMakersWithQueries();
List<Group> groups = searchManager.findGroupsWithQueries();
// iterate on the group
for (Group group : groups) {
- // List of the forms to bind ( = not yet bound)
- Set<String> formsIdsToBind = new HashSet<String>();
+ // Only selected forms
+ Set<String> formsIdsToBind = getFormsIdsFromRequest(group, getSelectionneStatus());
- // normalement c'est pas null, sinon la requette findGroupsWithQueries
- // marche pas
- Set<String> queries = group.getQueries();
-
- for (String queryEntry : queries) {
-
- try {
- // Get query
- QueryBean queryBean = new QueryBean(queryEntry);
- String query = queryBean.getQuery();
-
- // Create filter
- Search filter = Search.query();
- filter.eq(Form.FQ_FIELD_INFOGENE_STATUS, status);
-
- // Limited on older inscription date
- Search filterDateModification = filter.or();
- Date olderInscriptionDate = getOlderInscriptionDate(group.getUser());
-
- // Limited on date modification
- filterDateModification.isNull(ModificationTag.FQ_FIELD_MODIFICATIONTAG_LASTMODIFIED);
- filterDateModification.ge(ModificationTag.FQ_FIELD_MODIFICATIONTAG_LASTMODIFIED, WikittyUtil.formatDate(olderInscriptionDate));
-
- // Limited on date peremption
- Search filterDatePeremption = filter.or();
- filterDatePeremption.isNull(Form.FQ_FIELD_FORM_DATEPEREMPTION);
- filterDatePeremption.ge(Form.FQ_FIELD_FORM_DATEPEREMPTION, WikittyUtil.formatDate(new Date()));
-
- Criteria criteria = filter.criteria();
-
- // create a new VradiFormPage to find all the forms corresponding to the query
- FormPagedResult vradiFormPage = new FormPagedResult();
-
- // Execute request
- vradiFormPage = searchManager.findForms(query, criteria, vradiFormPage);
-
- // Extract result
- Set<String> resultFormsIds = new HashSet<String>(vradiFormPage.getFormsIdsToShow());
-
- if (log.isDebugEnabled()) {
- log.debug("Query " + query + " return " + resultFormsIds.size() + " forms");
- }
-
- formsIdsToBind.addAll(resultFormsIds);
- } catch (IOException eee) {
- throw new VradiException("Can't parse group query", eee);
-
- } catch (UnsupportedQueryException eee) {
- throw new VradiException("Can't execute group query", eee);
-
- } catch (ParseException eee) {
- throw new VradiException("Cant format date : ", eee);
- }
- }
-
// if some forms are to be bound, bind them
if (!formsIdsToBind.isEmpty()) {
@@ -524,6 +478,68 @@
return currentSession;
}
+ protected Set<String> getFormsIdsFromRequest(Group group, Status status) throws VradiException {
+
+ // List of the forms to bind ( = not yet bound)
+ Set<String> formsIdsToBind = new HashSet<String>();
+
+ // normalement c'est pas null, sinon la requette findGroupsWithQueries
+ // marche pas
+ Set<String> queries = group.getQueries();
+
+ for (String queryEntry : queries) {
+
+ try {
+ // Get query
+ QueryBean queryBean = new QueryBean(queryEntry);
+ String query = queryBean.getQuery();
+
+ // Create filter
+ Search filter = Search.query();
+ filter.eq(Form.FQ_FIELD_INFOGENE_STATUS, status.getWikittyId());
+
+ // Limited on older inscription date
+ Search filterDateModification = filter.or();
+ Date olderInscriptionDate = getOlderInscriptionDate(group.getUser());
+
+ // Limited on date modification
+ filterDateModification.isNull(ModificationTag.FQ_FIELD_MODIFICATIONTAG_LASTMODIFIED);
+ filterDateModification.ge(ModificationTag.FQ_FIELD_MODIFICATIONTAG_LASTMODIFIED, WikittyUtil.formatDate(olderInscriptionDate));
+
+ // Limited on date peremption
+ Search filterDatePeremption = filter.or();
+ filterDatePeremption.isNull(Form.FQ_FIELD_FORM_DATEPEREMPTION);
+ filterDatePeremption.ge(Form.FQ_FIELD_FORM_DATEPEREMPTION, WikittyUtil.formatDate(new Date()));
+
+ Criteria criteria = filter.criteria();
+
+ // create a new VradiFormPage to find all the forms corresponding to the query
+ FormPagedResult vradiFormPage = new FormPagedResult();
+
+ // Execute request
+ vradiFormPage = searchManager.findForms(query, criteria, vradiFormPage);
+
+ // Extract result
+ Set<String> resultFormsIds = new HashSet<String>(vradiFormPage.getFormsIdsToShow());
+
+ if (log.isDebugEnabled()) {
+ log.debug("Query " + query + " return " + resultFormsIds.size() + " forms");
+ }
+
+ formsIdsToBind.addAll(resultFormsIds);
+ } catch (IOException eee) {
+ throw new VradiException("Can't parse group query", eee);
+
+ } catch (UnsupportedQueryException eee) {
+ throw new VradiException("Can't execute group query", eee);
+
+ } catch (ParseException eee) {
+ throw new VradiException("Cant format date : ", eee);
+ }
+ }
+ return formsIdsToBind;
+ }
+
/**
* Use to replace forms by previous replace forms
*
@@ -700,7 +716,7 @@
*
* @param currentSession
* @param forms
- * @param queryMaker
+ * @param user
* @return
*/
protected Set<Form> removeAlreadyBound(Session currentSession, Set<Form> forms, User user) {
@@ -776,8 +792,8 @@
* Retourne la plus ancienne date du query maker si c'est une date
* ou des user gu groupe si c'est un groupe.
*
- * @param queryMaker queryMaker
- * @return
+ * @param usersIds
+ * @return olderInscriptionDate
*/
protected Date getOlderInscriptionDate(Set<String> usersIds) {
Date result = new Date();
@@ -990,7 +1006,7 @@
/**
* Check if template file form extension name in param
*
- * @param forms to remove
+ * @param formsIds to remove
* @return false if no session is opened
* @throws VradiException
*/
@@ -1001,7 +1017,7 @@
/**
* Check if template file form extension name in param
*
- * @param forms to remove
+ * @param formsIds to remove
* @return false if no session is opened
* @throws VradiException
*/
@@ -1069,7 +1085,7 @@
* Le sending retourné n'est pas affecter au query maker.
*
* @param currentSession
- * @param queryMaker
+ * @param user
* @return
*/
protected Sending findExistingOrCreateSending(Session currentSession, User user) {
@@ -1094,8 +1110,8 @@
* <p/>
* Le sending retourné n'est pas affecter au query maker.
*
- * @param currentSession
- * @param queryMaker
+ * @param sendings
+ * @param user
* @return
*/
protected Sending findExistingOrCreateSending(List<Sending> sendings, User user) {
Added: trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AssignXmlStreamTasks.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AssignXmlStreamTasks.java (rev 0)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/AssignXmlStreamTasks.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -0,0 +1,84 @@
+package org.chorem.vradi.services.tasks;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.chorem.vradi.VradiServiceHelper;
+import org.chorem.vradi.entities.Form;
+import org.chorem.vradi.entities.Thesaurus;
+import org.chorem.vradi.services.VradiException;
+import org.chorem.vradi.services.managers.BindingManager;
+import org.chorem.vradi.services.managers.FormManager;
+import org.chorem.vradi.services.managers.ThesaurusManager;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.TimeLog;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.BusinessEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author sletellier
+ */
+public class AssignXmlStreamTasks extends ImportXmlStreamTasks {
+
+ private static final Log log = LogFactory.getLog(AssignXmlStreamTasks.class);
+
+ private final static TimeLog timeLog = new TimeLog(AssignXmlStreamTasks.class, 5000, 1000);
+
+ protected ThesaurusManager thesaurusManager;
+ protected FormManager formManager;
+
+ public AssignXmlStreamTasks(ApplicationConfig config,
+ WikittyProxy wikittyProxy,
+ BindingManager bindingManager,
+ ThesaurusManager thesaurusManager,
+ FormManager formManager,
+ String xmlStreamId) {
+
+ super(config, wikittyProxy, bindingManager, xmlStreamId);
+
+ this.thesaurusManager = thesaurusManager;
+ this.formManager = formManager;
+ }
+
+ @Override
+ public void run() {
+
+ // Import stream before assign
+ super.run();
+
+ long start = TimeLog.getTime();
+
+ // Get import (super) result
+ Set<String> createdFormsIds = importResult.getCreatedFormsIds();
+
+ // Auto selection propositions
+ List<BusinessEntity> toStore = new ArrayList<BusinessEntity>();
+ for (String formId : createdFormsIds) {
+ try {
+
+ // Get thesaurus proposition for form
+ List<Thesaurus> thesaurusProposed = thesaurusManager.proposeThesaurus(formId);
+ if (!thesaurusProposed.isEmpty()) {
+ Form form = wikittyProxy.restore(Form.class, formId);
+ form = formManager.updateForm(form, VradiServiceHelper.extractIds(thesaurusProposed));
+
+ // Set form as selected
+ form.setStatus(formManager.getSelectionneStatus().getWikittyId());
+ toStore.add(form);
+ }
+ } catch (VradiException eee) {
+ log.error("Failled to propose thesaurus for form : " + formId, eee);
+ }
+ }
+
+ // Store forms
+ wikittyProxy.store(toStore);
+
+ // Log execution duration
+ timeLog.log(start, "AssignXmlStreamTasks");
+ }
+}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/ImportXmlStreamTasks.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/ImportXmlStreamTasks.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/ImportXmlStreamTasks.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -35,6 +35,7 @@
import org.chorem.vradi.services.managers.BindingManager;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.ExceptionUtil;
+import org.nuiton.util.TimeLog;
import org.nuiton.wikitty.WikittyProxy;
import javax.mail.Authenticator;
@@ -68,16 +69,24 @@
private static final Log log = LogFactory.getLog(ImportXmlStreamTasks.class);
+ private final static TimeLog timeLog = new TimeLog(ImportXmlStreamTasks.class, 5000, 1000);
+
protected ApplicationConfig config;
protected WikittyProxy wikittyProxy;
protected BindingManager bindingManager;
+ protected XmlStreamImportResult importResult;
+
/** Il faut l'id du flux et non le flux (wikitty obselete). */
protected String xmlStreamId;
- public ImportXmlStreamTasks(ApplicationConfig config, WikittyProxy wikittyProxy, BindingManager bindingManager, String xmlStreamId) {
+ public ImportXmlStreamTasks(ApplicationConfig config,
+ WikittyProxy wikittyProxy,
+ BindingManager bindingManager,
+ String xmlStreamId) {
+
this.config = config;
this.wikittyProxy = wikittyProxy;
this.bindingManager = bindingManager;
@@ -90,12 +99,13 @@
@Override
public void run() {
+ long start = TimeLog.getTime();
try {
XmlStream xmlStream = wikittyProxy.restore(XmlStream.class, xmlStreamId);
if (log.isInfoEnabled()) {
log.info("Starting xml stream import on : " + xmlStream.getName() + "...");
}
- XmlStreamImportResult importResult = bindingManager.importFormsFromXmlStream(xmlStream);
+ importResult = bindingManager.importFormsFromXmlStream(xmlStream);
if (log.isInfoEnabled()) {
log.info("Xml stream " + xmlStream.getName() + " imported : " + importResult.getCreatedFormCount() + " new forms.");
}
@@ -105,6 +115,9 @@
}
sendEmailError(xmlStreamId, eee);
}
+
+ // Log execution duration
+ timeLog.log(start, "importXmlStreamTasks");
}
protected void sendEmailError(String xmlStreamId, VradiException error) {
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/tasks/TasksManager.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -31,7 +31,9 @@
import org.chorem.vradi.VradiConstants;
import org.chorem.vradi.entities.XmlStream;
import org.chorem.vradi.services.managers.BindingManager;
+import org.chorem.vradi.services.managers.FormManager;
import org.chorem.vradi.services.managers.MailingManager;
+import org.chorem.vradi.services.managers.ThesaurusManager;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.entities.Wikitty;
@@ -45,6 +47,7 @@
import java.util.Map;
import java.util.Set;
import java.util.Timer;
+import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
@@ -84,11 +87,23 @@
protected BindingManager bindingManager;
- public TasksManager(ApplicationConfig config, WikittyProxy wikittyProxy, MailingManager mailingManager, BindingManager bindingManager) {
+ protected ThesaurusManager thesaurusManager;
+
+ protected FormManager formManager;
+
+ public TasksManager(ApplicationConfig config,
+ WikittyProxy wikittyProxy,
+ ThesaurusManager thesaurusManager,
+ FormManager formManager,
+ MailingManager mailingManager,
+ BindingManager bindingManager) {
+
this.config = config;
this.wikittyProxy = wikittyProxy;
this.mailingManager = mailingManager;
this.bindingManager = bindingManager;
+ this.thesaurusManager = thesaurusManager;
+ this.formManager = formManager;
xmlStreamImportTasks = new HashMap<String, ScheduledFuture<?>>();
}
@@ -153,14 +168,20 @@
}
// TODO EC20100921 prevoir le cas où une tâche dure plus d'une journée
- ImportXmlStreamTasks importTask = new ImportXmlStreamTasks(config, wikittyProxy, bindingManager, xmlStream.getWikittyId());
- ScheduledFuture<?> sheduledImportTask = xmlStreamScheduler.scheduleAtFixedRate(importTask, delayInMinute, 24 * 60, TimeUnit.MINUTES);
- xmlStreamImportTasks.put(xmlStream.getWikittyId(), sheduledImportTask);
+ TimerTask task;
+ if (xmlStream.getAutoAssign()) {
+ task = new AssignXmlStreamTasks(config, wikittyProxy, bindingManager, thesaurusManager, formManager, xmlStream.getWikittyId());
+ } else {
+ task = new ImportXmlStreamTasks(config, wikittyProxy, bindingManager, xmlStream.getWikittyId());
+ }
+ ScheduledFuture<?> sheduledImportTask = xmlStreamScheduler.scheduleAtFixedRate(task, delayInMinute, 24 * 60, TimeUnit.MINUTES);
+
if (log.isInfoEnabled()) {
log.info("Starting import of xml stream " + xmlStream.getName() + " at " + streamImportTime);
log.info(" - in scheduler, delai : " + delayInMinute + "min, period " + 24 * 60 + "min");
}
+ xmlStreamImportTasks.put(xmlStream.getWikittyId(), sheduledImportTask);
} else {
if (log.isWarnEnabled()) {
log.warn("Can't parse " + streamImportTime + " for stream " + xmlStream.getWikittyId());
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiConfig.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -49,10 +49,8 @@
* Last update : $Date$
* By : $Author$
*/
-public class
+public class VradiConfig {
- VradiConfig {
-
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(VradiConfig.class);
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/VradiHelper.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -44,7 +44,6 @@
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.addons.WikittyI18nUtil;
-import org.nuiton.wikitty.entities.BusinessEntity;
import org.nuiton.wikitty.entities.FieldType;
import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.entities.WikittyI18n;
@@ -67,7 +66,7 @@
import static org.nuiton.i18n.I18n._;
/** @author letellier */
-public class VradiHelper {
+public class VradiHelper extends VradiServiceHelper {
private static final Log log = LogFactory.getLog(VradiHelper.class);
@@ -718,14 +717,6 @@
return false;
}
- public static List<String> extractIds(Collection<? extends BusinessEntity> beans) {
- List<String> ids = new ArrayList<String>();
- for (BusinessEntity bean : beans) {
- ids.add(bean.getWikittyId());
- }
- return ids;
- }
-
public static Form initForm(Form form) {
String newId = VradiConstants.FORM_ID_DATE_FORMAT
.format(new GregorianCalendar().getTime())
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/XmlStreamConfigUI.jaxx
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/XmlStreamConfigUI.jaxx 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/XmlStreamConfigUI.jaxx 2011-05-02 16:09:43 UTC (rev 9)
@@ -81,7 +81,8 @@
} else {
// clear UI
hourDays.setSelectedItem(0);
- minuteDays.setSelectedItem(0);;
+ minuteDays.setSelectedItem(0);
+ assignAuto.setSelected(false);
}
}
});
@@ -97,18 +98,23 @@
bean.setImportTime(importTime);
}
}
-
]]>
</script>
<JLabel text='vradi.adminXmlStream.config.load'/>
- <JComboBox id='hourDays' selectedItem='{0}'
+ <JComboBox id='hourDays'
+ selectedItem='{0}'
model='{UIHelper.getHourModel()}'
renderer='{UIHelper.get2DigitsRenderer()}'
onActionPerformed='setImportTimeValue()'/>
<JLabel text='vradi.common.timeseparator'/>
- <JComboBox id='minuteDays' selectedItem='{0}'
+ <JComboBox id='minuteDays'
+ selectedItem='{0}'
model='{UIHelper.getMinuteModel()}'
renderer='{UIHelper.get2DigitsRenderer()}'
onActionPerformed='setImportTimeValue()'/>
+ <JCheckBox id='assignAuto'
+ text='vradi.adminXmlStream.assignAuto'
+ selected='{getBean().getAutoAssign()}'
+ onActionPerformed='bean.setAutoAssign(assignAuto.isSelected())'/>
</JPanel>
\ No newline at end of file
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/OfferEditHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/OfferEditHandler.java 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/OfferEditHandler.java 2011-05-02 16:09:43 UTC (rev 9)
@@ -282,8 +282,9 @@
OfferEditUI offerEditUI = getUI(context);
- try {
- List<Thesaurus> thesaurusToSave = new ArrayList<Thesaurus>();
+ // sletellier : use FormManager.updateForms()
+// try {
+ List<String> thesaurusIdsToAttach = new ArrayList<String>();
// Find all propositions selected
for (Object s : offerEditUI.getPropositionList().getSelectedValues()) {
@@ -291,11 +292,12 @@
// Save thesaurus
//selected = ThesaurusDataHelper.restoreThesaurus(selected.getWikittyId());
- selected.addAttachment(form.getWikittyId());
+// selected.addAttachment(form.getWikittyId());
- if (!thesaurusToSave.contains(selected)) {
- thesaurusToSave.add(selected);
- }
+// if (!thesaurusToSave.contains(selected)) {
+// thesaurusToSave.add(selected);
+// }
+ thesaurusIdsToAttach.add(selected.getWikittyId());
}
// Find all thesaurus selected
@@ -309,27 +311,35 @@
// Save thesaurus
//thesaurus = ThesaurusDataHelper.restoreThesaurus(thesaurus.getWikittyId());
- thesaurus.addAttachment(form.getWikittyId());
+// thesaurus.addAttachment(form.getWikittyId());
- if (!thesaurusToSave.contains(thesaurus)) {
- thesaurusToSave.add(thesaurus);
- }
+// if (!thesaurusToSave.contains(thesaurus)) {
+// thesaurusToSave.add(thesaurus);
+// }
+ thesaurusIdsToAttach.add(thesaurus.getWikittyId());
}
}
// supprime tous les thesaurus qui ne sont plus selectionné
- List<Thesaurus> actualThesauruses = getDataService().getThesaurusAttachedToForm(form);
- for (Thesaurus actualThesaurus : actualThesauruses) {
- if (!thesaurusToSave.contains(actualThesaurus)) {
- actualThesaurus.removeAttachment(form.getWikittyId());
- thesaurusToSave.add(actualThesaurus);
- }
- }
+// List<Thesaurus> actualThesauruses = getDataService().getThesaurusAttachedToForm(form);
+// for (Thesaurus actualThesaurus : actualThesauruses) {
+// if (!thesaurusToSave.contains(actualThesaurus)) {
+// actualThesaurus.removeAttachment(form.getWikittyId());
+// thesaurusToSave.add(actualThesaurus);
+// }
+// }
- proxy.store(thesaurusToSave);
- } catch (Exception eee) {
- log.error("Can't save thesaurus : ", eee);
- ErrorDialogUI.showError(eee);
+// proxy.store(thesaurusToSave);
+// } catch (Exception eee) {
+// log.error("Can't save thesaurus : ", eee);
+// ErrorDialogUI.showError(eee);
+// }
+
+ // Attach thesaurus to form
+ try {
+ form = VradiService.getVradiStorageService().updateForms(form, thesaurusIdsToAttach);
+ } catch (VradiException eee) {
+ log.error("Failled to assign thesaurus to form : " + form.getObjet(), eee);
}
// Save dynamic content
Modified: trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties
===================================================================
--- trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties 2011-04-27 16:09:14 UTC (rev 8)
+++ trunk/vradi-swing/src/main/resources/i18n/vradi-swing_fr_FR.properties 2011-05-02 16:09:43 UTC (rev 9)
@@ -168,6 +168,7 @@
vradi.adminUser.removeGroup=Retirer l'utilisateur du groupe s\u00E9lectionn\u00E9
vradi.adminUser.service=Service
vradi.adminUser.title=Utilisateur \: %1$s
+vradi.adminXmlStream.assignAuto=S\u00E9lection automatique des formulaires
vradi.adminXmlStream.config=Configurer les flux XML
vradi.adminXmlStream.config.label.hours=\u00E0 la minute
vradi.adminXmlStream.config.load=Charger les nouveaux formulaires \u00E0
1
0