• 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 pages = projectManager.getModulePages(project, module);
          for (let page of pages)
          {
              migratePage(project, page);
              
              try 
              {
                  let liveProject = Repository.resolver.resolveById(project.getId(), Repository.liveSession);
                  let livePage = Repository.resolver.resolveById(page.getId(), Repository.liveSession);
                  migratePage(liveProject, livePage);
              }
            catch (e) {/* No page live */}
              
          }
      });
      
      function migratePage(project, page)
      {
          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