code: def sec_projects(self):
          
  
          """
          This activity is displayed at the general level, aggregating all
          of the projects, with the name 'general' and per project using
          the name of each project. This activity is divided into three main
          sections: activity, community and process.
          """
  
          # First the 'general' project
          self.sec_project_activity(self.GLOBAL_PROJECT)
          self.sec_project_community(self.GLOBAL_PROJECT)
          self.sec_project_process(self.GLOBAL_PROJECT)
  
          if not self.projects:
              # Don't generate per project data
              return
  
          # Just one level projects supported yet
  
          # First we need to get the list of projects per data source and
          # join all lists in the overall projects list
  
          projects_lists = self.config['overview']['projects_metrics']
  
          projects = []
          for p in projects_lists:
              p_list = p(self.es_url, self.get_metric_index(p),
                         start=self.start).get_list()['project']
              projects += p_list
  
          projects = list(set(projects))
  
          project_str = "\n".join(projects)
  
          with open(os.path.join(self.data_dir, "projects.txt"), "w") as f:
              f.write(project_str)
  
          for project in projects:
              # The name of the project is used to create files
              project = project.replace("/", "_")
              self.sec_project_activity(project)
              self.sec_project_community(project)
              self.sec_project_process(project)
docs: Generate the report projects related sections: the general project is included always and add
          to the global report, and an specific report for each project is generated if configured.
          :return: