def create_testbeam_html_pages(self):
        testbeams = [self.results[x].getint('RunInfo', 'runno') / 100 for x in self.results]
        testbeams = sorted(list(set(testbeams)))
        testbeamDate = utilities.get_dict_from_file('%s/testBeamDates.cfg' % self.config_dir)
        for testbeam in testbeams:
            key = '%s' % testbeam
            if not key in testbeamDate:
                testbeamDate[key] = 'unkown'
            irr = utilities.get_dict_from_file('%s/irradiationType.cfg' % self.config_dir)
        allDiamonds = self.get_list_of_diamonds(self.results)
        allDiamonds = sorted(allDiamonds, key=lambda z: '%s-%s' % (irr.get(z, 'unkown'), z))
        allDiamondLinks = map(lambda z: HTML.link('%s (%s)' % (z, irr.get(z, 'unknown')), 'results_%s.html' % z),
                              allDiamonds)
        testBeamLinkTable = []
        header = [HTML.link('Test Beam', 'results.html')] + allDiamondLinks

        for testbeam in testbeams:
            results = filter(lambda z: self.results[z].getint('RunInfo', 'runno') / 100 == testbeam, self.results)
            results = {key: self.results[key] for key in results}
            diamonds = self.get_list_of_diamonds(results)
            # results = sorted(results,key=itemgetter(mapping['RunNo'],mapping['dia'],mapping['corrected']))

            print testbeam, len(results), diamonds
            fileName = '%s/results_%sXX.html' % (self.config.get('HTML', 'outputDir'), testbeam)
            fileName = fileName.replace('//', '/')
            # raw_input(fileName)
            self.create_html_overview_table(results, fileName)
            fileName = 'results_%sXX.html' % testbeam
            row = [HTML.link('%sXX - %s ' % (testbeam, testbeamDate['%s' % testbeam]), fileName)] + map(
                lambda z: z in diamonds, allDiamonds)
            testBeamLinkTable.append(row)
        htmlcode = HTML.table(testBeamLinkTable, header_row=header)
        fileName = '%s/results_testBeams.html' % self.config.get('HTML', 'outputDir')
        utilities.save_html_code(fileName, htmlcode)
 def create_diamond_html_pages(self):
     diamonds = self.get_list_of_diamonds(self.results)
     diamondLinkList = []
     for diamond in diamonds:
         print 'Create Page for diamond: "%s"' % diamond
         results = filter(lambda x: self.results[x].get('RunInfo', 'dia') == diamond, self.results)
         results = {key: self.results[key] for key in results}
         fileName = '%s/results_%s.html' % (self.config.get('HTML', 'outputDir'), diamond)
         diamondLinkList.append(HTML.link(diamond, 'results_%s.html' % diamond))
         self.create_html_overview_table(results, fileName)
     htmlcode = HTML.list(diamondLinkList)
     fileName = '%s/results_diamonds.html' % self.config.get('HTML', 'outputDir')
     if self.verbosity:
         print 'save diamond file to: "%s"' % fileName
     utilities.save_html_code(fileName, htmlcode)
     pass
 def create_html_overview_table(self, newResults, html_file_name, sort='standard'):
     absolutePath = self.config.get('HTML', 'absolutePath')
     link = '%s/results_testBeams.html' % absolutePath
     htmlcode = HTML.link('Test Beam Overview', link)
     self.set_header()
     if sort == 'svn':
         sortedKeys = self.sort_results_svn(newResults)
     elif sort == 'time':
         sortedKeys = self.sort_results_time(newResults)
     else:
         sortedKeys = self.sort_results(newResults)
     rows = self.get_content_rows(newResults, sortedKeys)
     htmlcode += HTML.table(rows, header_row=self.headers)
     # html_file_name = html_file_name.replace('/','_')
     if 'XX' in html_file_name:
         try:
             testBeam = html_file_name.split('_')[-1].split('.')[0]
             htmlcode += '<BR>'
             htmlcode += HTML.link('Run_Log_%s' % testBeam,
                                   '%s/%s.txt' % (self.config.get('HTML', 'RunLog'), testBeam))
         except:
             print 'could not create link for %s' % html_file_name
     utilities.save_html_code(html_file_name, htmlcode)