Esempio n. 1
0
 def build(self, printfile, style=1):
     template = SimpleDocTemplate(printfile, showBoundary=0)
     tFirst = PageTemplate(id='First', frames=self.getStyle(1, style), onPage=self.myPages, pagesize=defaultPageSize)
     tNext = PageTemplate(id='Later', frames=self.getStyle(2, style), onPage=self.myPages, pagesize=defaultPageSize)
     template.addPageTemplates([tFirst, tNext])
     template.allowSplitting = 1
     BaseDocTemplate.build(template, self.data)
Esempio n. 2
0
    def build(self, style=1):
        template = SimpleDocTemplate(config.get("paths.tempdir", "") + "print.pdf", showBoundary=0)
        tFirst = PageTemplate(id='First', frames=self.getStyle(1, style), onPage=self.myPages, pagesize=defaultPageSize)
        tNext = PageTemplate(id='Later', frames=self.getStyle(2, style), onPage=self.myPages, pagesize=defaultPageSize)

        template.addPageTemplates([tFirst, tNext])
        template.allowSplitting = 1
        BaseDocTemplate.build(template, self.data)
        return template.canv._doc.GetPDFData(template.canv)
Esempio n. 3
0
 def build(self, printfile, style=1):
     template = SimpleDocTemplate(printfile, showBoundary=0)
     tFirst = PageTemplate(id='First',
                           frames=self.getStyle(1, style),
                           onPage=self.myPages,
                           pagesize=defaultPageSize)
     tNext = PageTemplate(id='Later',
                          frames=self.getStyle(2, style),
                          onPage=self.myPages,
                          pagesize=defaultPageSize)
     template.addPageTemplates([tFirst, tNext])
     template.allowSplitting = 1
     BaseDocTemplate.build(template, self.data)
Esempio n. 4
0
    def build(self, style=1):
        self.h1 = self.styleSheet['Heading1']
        self.h1.fontName = 'Helvetica'
        self.bv = self.styleSheet['BodyText']
        self.bv.fontName = 'Helvetica'
        self.bv.fontSize = 7
        self.bv.spaceBefore = 0
        self.bv.spaceAfter = 0

        self.header = self.styleSheet['Heading3']
        self.header.fontName = 'Helvetica'

        self.data.append(Paragraph(translation.t(self.language, 'mediatumhelptitle'), self.h1))
        self.data.append(Paragraph(self.path, self.bv))

        self.data.append((FrameBreak()))

        # format content
        self.content = self.content.replace("\n", "")
        repl = {'p': 'BodyText', 'h1': 'Heading1', 'h2': 'Heading2', 'h3': 'Heading3', 'h4': 'Heading4', 'h5': 'Heading5', 'li': 'Bullet'}
        curstyle = "BodyText"
        for item in re.split(r'<(p|h[1-5]|li)>|<(/p|/h[1-5]|/li)>', self.content):
            if item and item != "":
                if item in repl.keys():
                    curstyle = repl[item]
                elif item[0] == "/" and item[1:] in repl.keys():
                    curstyle = ""
                else:
                    if item.strip != "" and curstyle != "":
                        print 'add', item, "-->", curstyle
                        if curstyle == "Bullet":
                            item = "- " + item
                            print "bullet", item
                        self.data.append(Paragraph(item, self.styleSheet[curstyle]))

        template = SimpleDocTemplate(config.get("paths.tempdir", "") + "help.pdf", showBoundary=0)
        tFirst = PageTemplate(id='First', onPage=self.myPages, pagesize=defaultPageSize)
        tNext = PageTemplate(id='Later', onPage=self.myPages, pagesize=defaultPageSize)

        template.addPageTemplates([tFirst, tNext])
        template.allowSplitting = 1
        BaseDocTemplate.build(template, self.data)

        template.canv.setAuthor(translation.t(self.language, "main_title"))
        template.canv.setTitle("%s \n'%s' - %s: %s" % (translation.t(self.language, "edit_stats_header"),
                                                       'sdfsdfsdf', translation.t(self.language, "edit_stats_period_header"), '2003'))
        return template.canv._doc.GetPDFData(template.canv)
Esempio n. 5
0
    def build(self, style=1):
        self.h1 = self.styleSheet['Heading1']
        self.h1.fontName = 'Helvetica'
        self.bv = self.styleSheet['BodyText']
        self.bv.fontName = 'Helvetica'
        self.bv.fontSize = 7
        self.bv.spaceBefore = 0
        self.bv.spaceAfter = 0

        self.chartheader = self.styleSheet['Heading3']
        self.chartheader.fontName = 'Helvetica'

        self.formatRight = self.styleSheet['Normal']
        self.bv.formatRight = 'Helvetica'
        self.formatRight.alignment = 2

        nameColl = self.collection.getName()

        while True:
            # page 1
            p = Paragraph(
                "%s \n'%s'" %
                (t(self.language, "edit_stats_header"), nameColl), self.h1)
            p.wrap(defaultPageSize[0], defaultPageSize[1])

            if p.getActualLineWidths0()[0] < 19 * cm:
                break
            else:
                nameColl = nameColl[0:-4] + "..."

        self.data.append(p)

        self.data.append(
            Paragraph(
                "%s: %s" %
                (t(self.language, "edit_stats_period_header"), self.period),
                self.chartheader))
        self.data.append(
            Paragraph(
                t(self.language, "edit_stats_pages_of") % ("1", "4"),
                self.formatRight))

        self.data.append((FrameBreak()))
        # top 10
        self.data += self.getStatTop("data", namecut=60)

        # page 2
        self.data.append(
            Paragraph(
                "%s \n'%s' %s - " % (t(self.language, "edit_stats_header"),
                                     self.collection.getName(), self.period) +
                t(self.language, "edit_stats_pages_of") % ("2", "4"), self.bv))
        self.data.append((FrameBreak()))
        # country
        self.data += self.getStatCountry("data")
        self.data.append(PageBreak())

        # page 3
        self.data.append(
            Paragraph(
                "%s \n'%s' %s - " % (t(self.language, "edit_stats_header"),
                                     self.collection.getName(), self.period) +
                t(self.language, "edit_stats_pages_of") % ("3", "4"), self.bv))
        self.data.append((FrameBreak()))
        # date
        self.data += self.getStatDate("data")
        self.data.append(PageBreak())

        # page 4
        self.data.append(
            Paragraph(
                "%s \n'%s' %s - " % (t(self.language, "edit_stats_header"),
                                     self.collection.getName(), self.period) +
                t(self.language, "edit_stats_pages_of") % ("4", "4"), self.bv))
        self.data.append((FrameBreak()))
        # weekday
        self.data += self.getStatDay("data")
        # time
        self.data += self.getStatTime("data")

        template = SimpleDocTemplate(config.get("paths.tempdir", "") +
                                     "statsaccess.pdf",
                                     showBoundary=0)
        tFirst = PageTemplate(id='First',
                              onPage=self.myPages,
                              pagesize=defaultPageSize)
        tNext = PageTemplate(id='Later',
                             onPage=self.myPages,
                             pagesize=defaultPageSize)

        template.addPageTemplates([tFirst, tNext])
        template.allowSplitting = 1
        BaseDocTemplate.build(template, self.data)

        template.canv.setAuthor(t(self.language, "main_title"))
        template.canv.setTitle(
            "%s \n'%s' - %s: %s" %
            (t(self.language, "edit_stats_header"), self.collection.getName(),
             t(self.language, "edit_stats_period_header"), self.period))
        return template.canv._doc.GetPDFData(template.canv)
Esempio n. 6
0
    def create_report(self, info):
        # Converting to PDF
        # document theme
        if local:
            doc = SimpleDocTemplate('{}_TestReport.pdf'.format(info["serialNo"]))
        else:
            doc = SimpleDocTemplate('/home/test/reports/{}_TestReport.pdf'.format(info["serialNo"]))
        doc.topMargin = 20
        doc.bottomMargin = 25
        doc.leftMargin = 25
        doc.rightMargin = 25
        doc.allowSplitting = False

        header_path = self.project_path + "/" + "header.png"
        if os.path.exists(header_path):
            header = Image(header_path, 8 * inch, 1 * inch)
            header.hAlign = "CENTRE"
            self.elements.append(header)
            self.elements.append(Spacer(1, 20))
        else:
            logging.warning("Header not found")

        self.elements.append(self.draw_line(colors.lightgrey))
        self.elements.append(Spacer(1, 1))
        self.elements.append(self.draw_line(colors.lightgrey))
        self.elements.append(Spacer(1, 3))
        self.elements.append(Paragraph("Serial No: " + info["serialNo"], self.styles['Title']))
        self.elements.append(self.draw_line(colors.lightgrey))
        self.elements.append(Spacer(1, 1))
        self.elements.append(self.draw_line(colors.lightgrey))
        self.elements.append(Spacer(1, 20))

        # Create Tables for each test

        # Device Info Table
        if info["deviceInfo"]:
            self.heading_block("Device Info")
            dev_table = pd.DataFrame(info["deviceInfo"], index=[0])
            dev_table = dev_table.T
            dev_table.reset_index(inplace=True)
            dev_table.columns = ["Item", "Detail"]
            dev_table.set_index(["Item"], inplace=True)
            dev_table.replace("", "N/A", inplace=True)
            self.draw_table(dev_table)

        # Mac Table
        if info["macInfo"]:
            self.heading_block("MAC Info")
            self.draw_table(info["macInfo"], column=["interface", "macaddr"])

        # Operation Table
        if info["operationInfo"]:
            self.heading_block("Operation Details")
            opt_table = pd.DataFrame(info["operationInfo"], index=[0])
            opt_table = opt_table.T
            opt_table.reset_index(inplace=True)
            opt_table.columns = ["Operation", "Status"]
            opt_table.set_index(["Operation"], inplace=True)
            opt_table.replace("", "N/A", inplace=True)
            self.draw_table(opt_table)

        # Test Table
        if info["testInfo"]:
            self.heading_block("Test Details")
            test_table = pd.DataFrame(info["testInfo"], index=[0])
            test_table = test_table.T
            test_table.reset_index(inplace=True)
            test_table.columns = ["Test", "Status"]
            test_table.set_index(["Test"], inplace=True)
            test_table.replace("", "N/A", inplace=True)
            self.draw_table(test_table)

        # Hardware Test Table

        if info["hwtestInfo"]:
            self.heading_block("Hardware Test Details")
            self.draw_table(info["hwtestInfo"], column=["item", "result", "detail"])

        # Burn test details
        if info["burntestInfo"]:
            self.heading_block("Burn Test Details")
            self.draw_table(info["burntestInfo"], column=["item", "result", "detail"])

        # Last test details
        if info["lasttestInfo"]:
            self.heading_block("Last Test Details")
            self.draw_table(info["lasttestInfo"], column=["item", "result", "detail"])

        # LanBurn Throughput Table
        self.heading_block("LanBurn Throughput")
        speed_table = pd.DataFrame.from_dict(info["performancestatsInfo"])
        speed_table.columns = [x.title() for x in speed_table.columns]
        speed_table.set_index(["Nic"], inplace=True)
        self.draw_table(speed_table)

        # LanBurn Throughput Bar Chart
        self.elements.append(Spacer(1, 30))
        filename = "lanburn.png"
        self.throughput_bar_chart(speed_table, self.project_path, filename)
        im = Image(filename, 4 * inch, 2.5 * inch)
        self.elements.append(im)

        if self.render_pdf:
            # Build all the elements to create a PDF
            doc.build(self.elements)
Esempio n. 7
0
    def build(self, style=1):
        self.h1 = self.styleSheet['Heading1']
        self.h1.fontName = 'Helvetica'
        self.bv = self.styleSheet['BodyText']
        self.bv.fontName = 'Helvetica'
        self.bv.fontSize = 7
        self.bv.spaceBefore = 0
        self.bv.spaceAfter = 0

        self.chartheader = self.styleSheet['Heading3']
        self.chartheader.fontName = 'Helvetica'

        self.formatRight = self.styleSheet['Normal']
        self.bv.formatRight = 'Helvetica'
        self.formatRight.alignment = 2

        nameColl = self.collection.getName()

        while True:
            # page 1
            p = Paragraph("%s \n'%s'" % (t(self.language, "edit_stats_header"), nameColl), self.h1)
            p.wrap(defaultPageSize[0], defaultPageSize[1])

            if p.getActualLineWidths0()[0] < 19 * cm:
                break
            else:
                nameColl = nameColl[0:-4] + "..."

        self.data.append(p)

        self.data.append(Paragraph("%s: %s" % (t(self.language, "edit_stats_period_header"), self.period), self.chartheader))
        self.data.append(Paragraph(t(self.language, "edit_stats_pages_of") % ("1", "4"), self.formatRight))

        self.data.append((FrameBreak()))
        # top 10
        self.data += self.getStatTop("data", namecut=60)

        # page 2
        self.data.append(Paragraph("%s \n'%s' %s - " % (t(self.language, "edit_stats_header"), self.collection.getName(),
                                                        self.period) + t(self.language, "edit_stats_pages_of") % ("2", "4"), self.bv))
        self.data.append((FrameBreak()))
        # country
        self.data += self.getStatCountry("data")
        self.data.append(PageBreak())

        # page 3
        self.data.append(Paragraph("%s \n'%s' %s - " % (t(self.language, "edit_stats_header"), self.collection.getName(),
                                                        self.period) + t(self.language, "edit_stats_pages_of") % ("3", "4"), self.bv))
        self.data.append((FrameBreak()))
        # date
        self.data += self.getStatDate("data")
        self.data.append(PageBreak())

        # page 4
        self.data.append(Paragraph("%s \n'%s' %s - " % (t(self.language, "edit_stats_header"), self.collection.getName(),
                                                        self.period) + t(self.language, "edit_stats_pages_of") % ("4", "4"), self.bv))
        self.data.append((FrameBreak()))
        # weekday
        self.data += self.getStatDay("data")
        # time
        self.data += self.getStatTime("data")

        template = SimpleDocTemplate(config.get("paths.tempdir", "") + "statsaccess.pdf", showBoundary=0)
        tFirst = PageTemplate(id='First', onPage=self.myPages, pagesize=defaultPageSize)
        tNext = PageTemplate(id='Later', onPage=self.myPages, pagesize=defaultPageSize)

        template.addPageTemplates([tFirst, tNext])
        template.allowSplitting = 1
        BaseDocTemplate.build(template, self.data)

        template.canv.setAuthor(t(self.language, "main_title"))
        template.canv.setTitle("%s \n'%s' - %s: %s" % (t(self.language,
                                                         "edit_stats_header"),
                                                       self.collection.getName(),
                                                       t(self.language,
                                                         "edit_stats_period_header"),
                                                       self.period))
        return template.canv._doc.GetPDFData(template.canv)