コード例 #1
0
ファイル: alarmreport.py プロジェクト: sambandi/eMonitor
class AlarmReportType:
    def __init__(self, filename, rtype="internal"):
        self.filename = filename
        self._report = None
        if os.path.exists(filename):
            # try html
            if filename.endswith('html'):
                m = reporttitle.match(
                    re.sub(' |\r|\n', '',
                           codecs.open(filename, 'r',
                                       encoding="utf-8").read()))
                if m:
                    self.name = m.groupdict()['reportname']
                else:
                    self.name = "<unnamed>"
            # try pdf
            if filename.endswith('pdf'):
                from emonitor.lib.pdf.pdf import PDFFormFile
                self._report = PDFFormFile(self.filename)
                self.name = u"{} - {}".format(
                    self._report.information['title'],
                    self._report.information['author'])
        else:
            self.name = ""
        self.type = rtype

    @property
    def multi(self):
        if self._report:
            return self._report.multi
        return False

    @property
    def fields(self):
        if self._report:
            return self._report.fields
        return {}

    def createReport(self, alarms, fields):
        return self._report.createReport(
            alarmlist=[Alarm.getAlarms(id=alarm) for alarm in alarms],
            fielddefinition=fields)

    def __str__(self):
        return u'{} ({})'.format(self.name, babel.gettext(self.type))
コード例 #2
0
class AlarmReportType:

    def __init__(self, filename, rtype="internal"):
        self.filename = filename
        self._report = None
        if os.path.exists(filename):
            # try html
            if filename.endswith('html'):
                m = reporttitle.match(re.sub(' |\r|\n', '', codecs.open(filename, 'r', encoding="utf-8").read()))
                if m:
                    self.name = m.groupdict()['reportname']
                else:
                    self.name = "<unnamed>"
            # try pdf
            if filename.endswith('pdf'):
                from emonitor.lib.pdf.pdf import PDFFormFile
                self._report = PDFFormFile(self.filename)
                self.name = u"{} - {}".format(self._report.information['title'], self._report.information['author'])
        else:
            self.name = ""
        self.type = rtype

    @property
    def multi(self):
        if self._report:
            return self._report.multi
        return False

    @property
    def fields(self):
        if self._report:
            return self._report.fields
        return {}

    def createReport(self, alarms, fields):
        return self._report.createReport(alarmlist=[Alarm.getAlarms(id=alarm) for alarm in alarms], fielddefinition=fields)

    def __str__(self):
        return u'{} ({})'.format(self.name, babel.gettext(self.type))