[Castore-commits] WorkflowManager.java 1.6 1.7
ValidationInProgress.java 1.1 1.2 Refused.java 1.1 1.2
Submitted.java 1.1 1.2 Private.java 1.1 1.2 Workflow.java 1.3
1.4 AState.java 1.2 1.3 SubmissionInProgress.java 1.1 1.2
ValidationByAdmin.java 1.3 1.4 Validated.java 1.1 1.2
Stéphane Bouchet
sbouchet at adullact1.hosting.cri74.org
Mar 16 Mai 17:21:24 CEST 2006
Update of /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow
In directory adullact1:/tmp/cvs-serv30958/src/java/fr/emn/castor/documents/metier/docGenerique/workflow
Modified Files:
WorkflowManager.java ValidationInProgress.java Refused.java
Submitted.java Private.java Workflow.java AState.java
SubmissionInProgress.java ValidationByAdmin.java
Validated.java
Log Message:
Modif logique Workflow
Index: ValidationInProgress.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/ValidationInProgress.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ValidationInProgress.java 22 Mar 2006 17:30:13 -0000 1.1
--- ValidationInProgress.java 16 May 2006 15:21:22 -0000 1.2
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 57,61 ****
public ValidationInProgress() {
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.VALIDATION_IN_PROGRESS);
}
--- 57,61 ----
public ValidationInProgress() {
setDateOfTraitement(new Date());
! setEtat(StateEnum.VALIDATION_IN_PROGRESS.toString());
}
Index: Workflow.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/Workflow.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Workflow.java 20 Apr 2006 14:25:55 -0000 1.3
--- Workflow.java 16 May 2006 15:21:22 -0000 1.4
***************
*** 151,157 ****
}
} catch (IndexOutOfBoundsException ioobe) {
! /*
! * on demande une etape inexistante...
! */
}
throw new WorkflowException(ErrorTypes.NO_STEP_FOUND);
--- 151,155 ----
}
} catch (IndexOutOfBoundsException ioobe) {
! // on demande une etape inexistante...
}
throw new WorkflowException(ErrorTypes.NO_STEP_FOUND);
Index: Validated.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/Validated.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Validated.java 22 Mar 2006 17:30:13 -0000 1.1
--- Validated.java 16 May 2006 15:21:22 -0000 1.2
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 57,61 ****
public Validated() {
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.VALIDATED);
}
--- 57,61 ----
public Validated() {
setDateOfTraitement(new Date());
! setEtat(StateEnum.VALIDATED.toString());
}
Index: Private.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/Private.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Private.java 22 Mar 2006 17:30:13 -0000 1.1
--- Private.java 16 May 2006 15:21:22 -0000 1.2
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 57,61 ****
public Private() {
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.PRIVATE);
}
}
\ No newline at end of file
--- 57,61 ----
public Private() {
setDateOfTraitement(new Date());
! setEtat(StateEnum.PRIVATE.toString());
}
}
\ No newline at end of file
Index: SubmissionInProgress.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/SubmissionInProgress.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** SubmissionInProgress.java 22 Mar 2006 17:30:13 -0000 1.1
--- SubmissionInProgress.java 16 May 2006 15:21:22 -0000 1.2
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 59,63 ****
public SubmissionInProgress() {
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.SUBMISSION_IN_PROGRESS);
}
}
\ No newline at end of file
--- 59,63 ----
public SubmissionInProgress() {
setDateOfTraitement(new Date());
! setEtat(StateEnum.SUBMISSION_IN_PROGRESS.toString());
}
}
\ No newline at end of file
Index: ValidationByAdmin.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/ValidationByAdmin.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ValidationByAdmin.java 21 Apr 2006 10:09:56 -0000 1.3
--- ValidationByAdmin.java 16 May 2006 15:21:22 -0000 1.4
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 57,61 ****
public ValidationByAdmin() {
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.VALIDATION_BY_ADMIN);
}
--- 57,61 ----
public ValidationByAdmin() {
setDateOfTraitement(new Date());
! setEtat(StateEnum.VALIDATION_BY_ADMIN.toString());
}
Index: WorkflowManager.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/WorkflowManager.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** WorkflowManager.java 15 May 2006 10:10:51 -0000 1.6
--- WorkflowManager.java 16 May 2006 15:21:22 -0000 1.7
***************
*** 63,66 ****
--- 63,67 ----
import fr.emn.castor.documents.DocumentsConstants;
import fr.emn.castor.documents.Fonds;
+ import fr.emn.castor.documents.DocumentsConstants.StateEnum;
import fr.emn.castor.documents.metier.docGenerique.ADocument;
import fr.emn.castor.documents.metier.docGenerique.workflow.ValidationStep.ValidationTypeEnum;
***************
*** 137,142 ****
if (log.isFatalEnabled()) {
String msg = Messages.getStringFromBundle(
! Workflow.BUNDLE_NAME, Messages
! .getString("workflow.error.NoWorkflowsFound")); //$NON-NLS-1$
log.fatal(msg);
}
--- 138,143 ----
if (log.isFatalEnabled()) {
String msg = Messages.getStringFromBundle(
! Workflow.BUNDLE_NAME,
! "workflow.error.NoWorkflowsFound"); //$NON-NLS-1$
log.fatal(msg);
}
***************
*** 184,188 ****
* methode. Le changement de la signature ou la suppression de la methode
* entrainera le non fonctionnement du systeme.
! * Aspect(s) associee :
* - GestionDocumentAspect.java
*/
--- 185,189 ----
* methode. Le changement de la signature ou la suppression de la methode
* entrainera le non fonctionnement du systeme.
! * Aspect(s) associee :
* - GestionDocumentAspect.java
*/
***************
*** 292,303 ****
isValidateur = Facade.getInstance().isValidateur(value);
} catch (AuthentificationException e) {
! if (log.isErrorEnabled()) {
! log.error(e.getMessage(), e);
}
return false;
}
! if (isValidateur.equals(VraiFauxEnum.VRAI)){
return true;
! }else return false ;
case PEOPLE:
// vérification que l'utilisateur est bien validateur
--- 293,308 ----
isValidateur = Facade.getInstance().isValidateur(value);
} catch (AuthentificationException e) {
! // si c'est un utilisateur inconnu, tout va bien
! if (e.getErrorType() != AuthentificationException.NO_USER_FOUND) {
! if (log.isErrorEnabled()) {
! log.error(e.getMessage(), e);
! }
}
return false;
}
! if (isValidateur == VraiFauxEnum.VRAI) {
return true;
! }
! return false;
case PEOPLE:
// vérification que l'utilisateur est bien validateur
***************
*** 311,317 ****
return false;
}
! if (isValidateur.equals(VraiFauxEnum.VRAI)){
return true;
! }else return false ;
case PROFILE:
// vérification du profile
--- 316,323 ----
return false;
}
! if (isValidateur == VraiFauxEnum.VRAI) {
return true;
! }
! return false;
case PROFILE:
// vérification du profile
***************
*** 326,334 ****
default:
if (log.isErrorEnabled()) {
! String msg = Messages
! .getStringFromBundle(
! Workflow.BUNDLE_NAME,
! Messages
! .getString("workflow.exception.unknownWhoAttribute")); //$NON-NLS-1$
log.error(msg);
}
--- 332,338 ----
default:
if (log.isErrorEnabled()) {
! String msg = Messages.getStringFromBundle(
! Workflow.BUNDLE_NAME,
! "workflow.exception.unknownWhoAttribute"); //$NON-NLS-1$
log.error(msg);
}
***************
*** 601,606 ****
int finalStep = workflow.getNumberOfValidationSteps();
if (stepNumber < finalStep) {
! // I.E la liste des validateurs de chaque etape ne doit pas
! // etre vide
// on renvoie au debut, et on remet l'etat submitted
Transaction tx = pm.currentTransaction();
--- 605,609 ----
int finalStep = workflow.getNumberOfValidationSteps();
if (stepNumber < finalStep) {
! // il reste des etapes, mais pas pour l'utilisateur actuel.
// on renvoie au debut, et on remet l'etat submitted
Transaction tx = pm.currentTransaction();
***************
*** 642,646 ****
}
return "error";
-
}
--- 645,648 ----
***************
*** 731,741 ****
log.debug("Debut recherche des documents dans l'état Submitted");
}
! String filtre = "state.etat=='"
! + fr.emn.castor.documents.DocumentsConstants.SUBMITTED
! + "'&&conversionStatut=='"
! + fr.emn.castor.documents.DocumentsConstants.CONVERSION_ENDED
! + "'";
PersistenceManager pm = JDOFactory.getPersistenceManager();
! results = (List<ADocument>)rechercheDocuments(filtre, pm);
Transaction tx = pm.currentTransaction();
try {
--- 733,741 ----
log.debug("Debut recherche des documents dans l'état Submitted");
}
! String filtre = "state.etat == '" + StateEnum.SUBMITTED
! + "' && conversionStatut == '"
! + DocumentsConstants.CONVERSION_ENDED + "'";
PersistenceManager pm = JDOFactory.getPersistenceManager();
! results = rechercheDocuments(filtre, pm);
Transaction tx = pm.currentTransaction();
try {
***************
*** 1011,1019 ****
.debug("Debut recherche des documents dans l'état ValidationInProgress");
}
! String filtre = "state.etat=='"
! + DocumentsConstants.VALIDATION_IN_PROGRESS + "'";
PersistenceManager pm = JDOFactory.getPersistenceManager();
! List<ADocument> results =
! (List<ADocument>)rechercheDocuments(filtre, pm);
Transaction tx = pm.currentTransaction();
try {
--- 1011,1018 ----
.debug("Debut recherche des documents dans l'état ValidationInProgress");
}
! String filtre = "state.etat=='" + StateEnum.VALIDATION_IN_PROGRESS
! + "'";
PersistenceManager pm = JDOFactory.getPersistenceManager();
! List<ADocument> results = rechercheDocuments(filtre, pm);
Transaction tx = pm.currentTransaction();
try {
***************
*** 1124,1129 ****
}
doc.setCurrentValidationStep(currentStep);
- tx.commit();
// il faut maintenant trouver la prochaine etape !
return nextValidationStep(idDoc, user);
} catch (Exception e) {
--- 1123,1139 ----
}
doc.setCurrentValidationStep(currentStep);
// il faut maintenant trouver la prochaine etape !
+ // attention, si c'est l'admin, on finit là, pour ne pas
+ // court-circuiter le processus de validation si ce n'est
+ // pas nécessaire.
+ if (Facade.getInstance().getUserType(user).equals(
+ UsersConstants.USERTYPE_ADMINISTRATOR)) {
+ // suppression de l'ancien etat
+ Submitted state = new Submitted();
+ this.setNewStateForDoc(doc, state, pm);
+ tx.commit();
+ return "finish";
+ }
+ tx.commit();
return nextValidationStep(idDoc, user);
} catch (Exception e) {
***************
*** 1195,1203 ****
return false;
}
! if (step.getWhoId().equals(user)) {
! // l'utilisateur est dans la liste de ceux qui doivent
! // valider
! // le contenu + est un validateur désigné par le soumetteur.
! return true;
}
}
--- 1205,1216 ----
return false;
}
! // vérification que l'avis est nécessaire.
! if (step.getWho() == WhoEnum.METADATALINK) {
! // le soumetteur à désigné une personne pour cette etape.
! String validateur = this.fonds.getNoticeValue(
! idDoc, step.getWhoId());
! // si cette personne est la meme, il doit laisser un
! // commentaire.
! return validateur.equals(user);
}
}
***************
*** 1234,1242 ****
* @return les documents recherchés
*/
! public List rechercheDocuments(
final String filtre, final PersistenceManager pm) {
Query query = pm.newQuery(ADocument.class, filtre);
query.setUnique(false);
! return (List) query.execute();
}
--- 1247,1260 ----
* @return les documents recherchés
*/
! public List<ADocument> rechercheDocuments(
final String filtre, final PersistenceManager pm) {
Query query = pm.newQuery(ADocument.class, filtre);
query.setUnique(false);
! List queryRes = (List) query.execute();
! ArrayList<ADocument> result = new ArrayList<ADocument>();
! for (int i = 0; i < queryRes.size(); i++) {
! result.add((ADocument) queryRes.get(i));
! }
! return result;
}
***************
*** 1260,1263 ****
--- 1278,1333 ----
/**
+ * Methode renvoyant tout les docus en attente d'une validation par un
+ * admin.
+ *
+ * @return une liste d'id.
+ */
+ public List<String> allDocsWaitingForAdmin() {
+ ArrayList<String> result = new ArrayList<String>();
+ if (log.isDebugEnabled()) {
+ log
+ .debug("Debut recherche des documents dans l'état ValidationByAdmin");
+ }
+ String filtre = "state.etat=='" + StateEnum.VALIDATION_BY_ADMIN
+ + "'";
+ PersistenceManager pm = JDOFactory.getPersistenceManager();
+ List<ADocument> results = rechercheDocuments(filtre, pm);
+ Transaction tx = pm.currentTransaction();
+ try {
+ tx.begin();
+ Iterator i = results.iterator();
+ while (i.hasNext()) {
+ ADocument doc = (ADocument) i.next();
+ result.add(doc.getId());
+ }
+ if (results.isEmpty()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Aucun document dans cet état");
+ }
+ } else {
+ if (log.isDebugEnabled()) {
+ log
+ .debug("Il y a "
+ + results.size()
+ + " documents trouvés dans l'état ValidationByAdmin");
+ }
+ }
+ tx.commit();
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error(
+ "Erreur lors de la recherche des documents dans l'état ValidationByADmin : "
+ + e.getMessage(), e);
+ }
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ } finally {
+ pm.close();
+ }
+ return result;
+ }
+
+ /**
* Inner class permettant de filtrer les fichiers XML.
*/
***************
*** 1270,1272 ****
--- 1340,1343 ----
}
}
+
}
\ No newline at end of file
Index: AState.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/AState.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** AState.java 19 Apr 2006 13:50:38 -0000 1.2
--- AState.java 16 May 2006 15:21:22 -0000 1.3
***************
*** 51,54 ****
--- 51,55 ----
/** La description de l'etat. */
+ //TODO Attention, il semble y avoir un bug avec Kodo et les Enums !
private String etat;
Index: Refused.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/Refused.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Refused.java 22 Mar 2006 10:30:04 -0000 1.1
--- Refused.java 16 May 2006 15:21:22 -0000 1.2
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 62,66 ****
setMotifRefus(motif);
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.REFUSED);
}
--- 62,66 ----
setMotifRefus(motif);
setDateOfTraitement(new Date());
! setEtat(StateEnum.REFUSED.toString());
}
Index: Submitted.java
===================================================================
RCS file: /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/docGenerique/workflow/Submitted.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Submitted.java 22 Mar 2006 17:30:13 -0000 1.1
--- Submitted.java 16 May 2006 15:21:22 -0000 1.2
***************
*** 42,46 ****
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants;
/**
--- 42,46 ----
import java.util.Date;
! import fr.emn.castor.documents.DocumentsConstants.StateEnum;
/**
***************
*** 57,61 ****
public Submitted() {
setDateOfTraitement(new Date());
! setEtat(DocumentsConstants.SUBMITTED);
}
--- 57,61 ----
public Submitted() {
setDateOfTraitement(new Date());
! setEtat(StateEnum.SUBMITTED.toString());
}
Plus d'informations sur la liste de diffusion Castore-commits