r9 - in trunk: vradi-entities/src/main/xmi vradi-services/src/main/java/org/chorem/vradi vradi-services/src/main/java/org/chorem/vradi/beans vradi-services/src/main/java/org/chorem/vradi/services vradi-services/src/main/java/org/chorem/vradi/services/managers vradi-services/src/main/java/org/chorem/vradi/services/tasks vradi-swing/src/main/java/org/chorem/vradi vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content vradi-swing/src/main/java/org/chorem/vradi/ui/offer vradi-swing/src/main
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
participants (1)
-
sletellier@users.chorem.org