• Tâches

      Cette page ne doit être appliquée que si l'application vous demande de passer la migration manuelle plugin.workspaces.jcr.v20210702T0000-WORKSPACES-858

      Suppression des anciennes tâches

      Voici le script pour supprimer les tâches de l'ancien module. Dans un premier temps passer ce script avec la variable saveChanges à false pour lister les tâches qui vont être supprimées.

      Ensuite mettre saveChanges à true pour supprimer les tâches.

      let saveChanges = false;
      let logger = Ametys.getLogger("org.ametys.core.migration.MigrationExtensionPoint.workspaces");  
      let projectManager = Ametys.serviceManager.lookup(org.ametys.plugins.workspaces.project.ProjectManager.ROLE);
      let workspaceModuleExtensionPoint = Ametys.serviceManager.lookup(org.ametys.plugins.workspaces.project.modules.WorkspaceModuleExtensionPoint.ROLE);
      
      projectManager.getProjects().forEach(function (project) 
      {
          let module = workspaceModuleExtensionPoint.getModule('org.ametys.plugins.workspaces.tasks.TasksWorkspaceModule');
          let root = module.getTasksRoot(project, false);
          
          let pages = projectManager.getModulePages(project, module);
          for (let page of pages)
          {
              if (page.getNode().hasNode("ametys-internal:zones/default/ametys-internal:zoneItems/ametys:zoneItem/ametys:service_parameters"))
              {
                  let serviceNode = page.getNode().getNode("ametys-internal:zones/default/ametys-internal:zoneItems/ametys:zoneItem/ametys:service_parameters");   
               if (serviceNode.getProperty("ametys:xslt").getString() == "pages/services/modules/taskslist/task-default.xsl")
               {
                      let projectRootNode = project.getExplorerRootNode();
                      let taskNode = projectRootNode.getChild("tasks");
                      if (taskNode.hasChild("default"))
                      {
                         logger.info("Delete tasks for project '" + project.getTitle() + "'");
                       logger.info("Delete section default");    
                        let taskNode = projectRootNode.getChild("tasks");
                       let tasksList = taskNode.getChild("default");
                       
                         for (let task of tasksList.getChildren())
                       {
                           logger.info("Delete task " + task.getLabel()); 
                       }
                        
                       if (saveChanges)
                       {
                         tasksList.remove();
                         projectRootNode.saveChanges();
                       }
                      }
               }
              }
          }
      });
Retour en haut