[Castore-commits] RecupDocForm.java 1.8 1.9
Céline BENOIT
cbenoit at adullact1.hosting.cri74.org
Ven 4 Aou 17:25:41 CEST 2006
Update of /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/forms/documents
In directory adullact1:/tmp/cvs-serv21061/src/java/fr/emn/castor/struts/forms/documents
Modified Files:
RecupDocForm.java
Log Message:
ajout du logger
création de la méthode getInfosWf pour ajouter des informations sur l'étape en cours du document
Index: RecupDocForm.java
===================================================================
RCS file: /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/forms/documents/RecupDocForm.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** RecupDocForm.java 16 May 2006 15:31:51 -0000 1.8
--- RecupDocForm.java 4 Aug 2006 15:25:39 -0000 1.9
***************
*** 46,49 ****
--- 46,51 ----
import javax.servlet.http.HttpServletRequest;
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
***************
*** 51,55 ****
--- 53,61 ----
import fr.emn.castor.common.Constants;
import fr.emn.castor.documents.Facade;
+ import fr.emn.castor.documents.metier.docGenerique.workflow.WorkflowException;
+ import fr.emn.castor.documents.metier.docGenerique.workflow.ValidationStep.ValidationTypeEnum;
+ import fr.emn.castor.documents.metier.docGenerique.workflow.ValidationStep.WhoEnum;
import fr.emn.castor.struts.common.session.StrutsConstants;
+ import fr.emn.castor.users.UsersConstants;
/**
***************
*** 61,64 ****
--- 67,74 ----
*/
public class RecupDocForm extends ActionForm {
+
+ /** le logger. */
+ private static Log log = LogFactory.getLog(RecupDocForm.class);
+
/** Les documents en attente de vallidation. */
private Map<String, Map<String, String>> waitingDocs = null;
***************
*** 97,100 ****
--- 107,111 ----
mapDoc.put("docName", fdocs.getNameDoc(idDoc));
this.waitingDocs.put(idDoc, mapDoc);
+ this.getInfosWf(idDoc, mapDoc);
}
// la liste des documents en cours de validation
***************
*** 104,107 ****
--- 115,119 ----
for (String idDoc : inProgressDocsList) {
HashMap<String, String> mapDoc = new HashMap<String, String>();
+ mapDoc.put("idDoc", idDoc);
mapDoc.put("soumetteurName", fusers
.getUserNameAndFirstName(fdocs.getSoumetteurName(idDoc)));
***************
*** 112,115 ****
--- 124,128 ----
.getCurrentValidateurName(idDoc)));
this.inProgressDocs.put(idDoc, mapDoc);
+ this.getInfosWf(idDoc, mapDoc);
}
// la liste des documents en attente d'un admin pour la prochaine etape
***************
*** 118,121 ****
--- 131,135 ----
for (String idDoc : waitingAdminDocsList) {
HashMap<String, String> mapDoc = new HashMap<String, String>();
+ mapDoc.put("idDoc", idDoc);
mapDoc.put("soumetteurName", fusers
.getUserNameAndFirstName(fdocs.getSoumetteurName(idDoc)));
***************
*** 123,130 ****
--- 137,235 ----
mapDoc.put("docName", fdocs.getNameDoc(idDoc));
this.waitingAdminDocs.put(idDoc, mapDoc);
+ this.getInfosWf(idDoc, mapDoc);
}
// TODO : utilité de la ligne suivante ?
request.getSession().removeAttribute(
StrutsConstants.SESSION_VALIDATION_COLLNATIVESANDPUB);
+
+ }
+
+ private void getInfosWf(final String idDoc, Map<String, String> mapDoc) {
+ Facade fdocs = Facade.getInstance();
+ mapDoc.put("idDoc", idDoc);
+ // récupèration de l'etape courante et de l'identifiant du WF
+ int etapeCourante = Integer.valueOf(
+ fdocs.getCurrentValidationStep(idDoc)).intValue();
+ try {
+ String idWf = fdocs.getWorkflow(idDoc);
+
+ /*{Validateur=documentalist, Type_validation=content, Type_validateur=PROFILE}*/
+ /*{Validateur=contributor_director, Type_validation=content, Type_validateur=METADATALINK}*/
+ Map mapInfos = fdocs.getInfosValidation(idWf, ++etapeCourante);
+
+ // Type_validation
+ ValidationTypeEnum typeValidation = ValidationTypeEnum
+ .valueOf(mapInfos
+ .get("Type_validation").toString().toUpperCase());
+ switch (typeValidation) {
+ case CONTENT:
+ mapDoc.put("Type_validation", ValidationTypeEnum.CONTENT
+ .toString());
+ break;
+ case METADATA:
+ mapDoc.put(
+ "Type_validation", ValidationTypeEnum.METADATA
+ .toString());
+ break;
+ case COLLECTION:
+ mapDoc.put(
+ "Type_validation", ValidationTypeEnum.COLLECTION
+ .toString());
+ break;
+ case ACCESS:
+ mapDoc.put("Type_validation", ValidationTypeEnum.ACCESS
+ .toString());
+ break;
+ default:
+ mapDoc.put("Type_validation", typeValidation.toString());
+ }
+
+ // Type_validateur
+ WhoEnum typeValidateur = WhoEnum.valueOf(mapInfos.get(
+ "Type_validateur").toString().toUpperCase());
+ String nomTuteur = null;
+ switch (typeValidateur) {
+ case METADATALINK:
+ // récupérer le nom du tuteur dans la notice
+ nomTuteur = fdocs.getNoticeValue(
+ idDoc, "contributor_director");
+ mapDoc.put("Nom_Tuteur", nomTuteur);
+ break;
+ case GROUP:
+ mapDoc.put("Type_validateur", WhoEnum.GROUP.toString());
+ break;
+ case PEOPLE:
+ mapDoc.put("Type_validateur", WhoEnum.PEOPLE.toString());
+ break;
+ case PROFILE:
+ mapDoc
+ .put("Type_validateur", WhoEnum.PROFILE.toString());
+ break;
+ default:
+ mapDoc.put("Type_validateur", typeValidateur.toString());
+ }
+
+ // validateur
+ String validateur = (String) mapInfos.get("Validateur");
+ if (validateur.equals("contributor_director")) {
+ if (nomTuteur != null) {
+ mapDoc.put(
+ "Validateur", UsersConstants.USERTYPE_SUPERVISOR);
+ } else
+ mapDoc.put(
+ "Validateur", UsersConstants.USERTYPE_SUPERVISOR);
+ } else if (validateur.equals("administrator")) {
+ mapDoc.put(
+ "Validateur", UsersConstants.USERTYPE_ADMINISTRATOR);
+ } else if (validateur.equals("documentalist")) {
+ mapDoc.put(
+ "Validateur", UsersConstants.USERTYPE_DOCUMENTALIST);
+ } else
+ mapDoc.put("Validateur", validateur);
+ } catch (WorkflowException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Erreur lors de la recherche du workflow" + e);
+ }
+ }
}
Plus d'informations sur la liste de diffusion Castore-commits