コード例 #1
0
ファイル: reports.py プロジェクト: mleist/ict-ok.org
 def reportPdfByObjectList(self, objsList):
     filename = datetime.now().strftime('ictrpt_%Y%m%d%H%M%S.pdf')
     f_handle, f_name = tempfile.mkstemp(filename)
     authorStr = self.request.principal.title
     my_formatter = self.request.locale.dates.getFormatter(
         'dateTime', 'medium')
     userTZ = getUserTimezone()
     longTimeString = my_formatter.format(\
         userTZ.fromutc(datetime.utcnow()))
     versionStr = "%s [%s]" % (longTimeString, getIkVersion())
     thisReporter = PDFReporter(f_name, self.request)
     thisReporter.setAuthorName(authorStr)
     thisReporter.setVersionStr(versionStr)
     # first run
     for (queryName, queryResults) in objsList:
         thisReporter.extendAllContentObjects(queryResults)
     # second run
     for (queryName, queryResults) in objsList:
         thisReporter.appendTitle1(queryName)
         thisReporter.append(queryResults)
     # debug output
     #for i_obj in thisReporter.allContentObjects:
     #    print "%s (%s)" % (i_obj.ikName, i_obj.objectID)
     thisReporter.buildPdf()
     thisReporter.cleanup()
     self.request.response.setHeader('Content-Type', 'application/pdf')
     self.request.response.setHeader(\
         'Content-Disposition',
         'attachment; filename=\"%s\"' % filename)
     setNoCacheHeaders(self.request.response)
     datafile = open(f_name, "r")
     dataMem = datafile.read()
     datafile.close()
     os.remove(f_name)
     return dataMem
コード例 #2
0
def getModifiedDate(item, formatter):
    """Modified Date for Overview in Web-Browser"""
    if type(item) is dict:
        item = item["obj"]
    try:
        userTZ = getUserTimezone()
        my_formatter = formatter.request.locale.dates.getFormatter(
            'dateTime', 'short')
        timeString = my_formatter.format(userTZ.fromutc(
            IZopeDublinCore(item).modified))
        timeStringHTML = timeString.replace(" ", " ")
        my_formatter = formatter.request.locale.dates.getFormatter(
            'dateTime', 'long')
        longTimeString = my_formatter.format(
            userTZ.fromutc(IZopeDublinCore(item).modified))
        #ttid = u"id" + str(abs(hash(timeString)))
        ttid = u"modt" + item.getObjectId()
        tooltip = u"<script type=\"text/javascript\">tt_%s = new YAHOO." \
                u"widget.Tooltip('tt_%s', { autodismissdelay:'15000', " \
                u"context:'%s', text:'%s' });</script>" \
                % (ttid, ttid, ttid, longTimeString)
        resString = u'<span id="%s">%s</span>' % (ttid, timeStringHTML)
    except AttributeError:
        resString = u"---"
        tooltip = u""
    except TypeError:
        resString = u"---"
        tooltip = u""
    return resString + tooltip
コード例 #3
0
 def getCmapxText(self):
     """get dot file and convert to client side image map
     """
     utilGraphviz = queryUtility(IAdmUtilGraphviz, name='AdmUtilGraphviz')
     my_formatter = self.request.locale.dates.getFormatter(
         'dateTime', 'medium')
     userTZ = getUserTimezone()
     longTimeString = my_formatter.format(\
         userTZ.fromutc(datetime.utcnow()))
     versionStr = "%s [%s]" % (longTimeString, getIkVersion())
     setNoCacheHeaders(self.request.response)
     return utilGraphviz.getCmapxText(self.context, self.request)
コード例 #4
0
 def getPngFile(self):
     """get dot file and convert to png
     """
     utilGraphviz = queryUtility(IAdmUtilGraphviz, name='AdmUtilGraphviz')
     my_formatter = self.request.locale.dates.getFormatter(
         'dateTime', 'medium')
     userTZ = getUserTimezone()
     longTimeString = my_formatter.format(\
         userTZ.fromutc(datetime.utcnow()))
     versionStr = "%s [%s]" % (longTimeString, getIkVersion())
     self.request.response.setHeader('Content-Type', 'image/png')
     filename = "graphviz_%s.png" % self.context.ikName
     self.request.response.setHeader(\
         'Content-Disposition',
         'attachment; filename=\"%s\"' % filename)
     setNoCacheHeaders(self.request.response)
     return utilGraphviz.getPngFile(self.context, self.request)
コード例 #5
0
ファイル: graphviz.py プロジェクト: mleist/ict-ok.org
 def graphvizAll(self):
     """
     will send the complete dot report to the browser
     """
     utilGraphviz = queryUtility(IAdmUtilGraphviz, name='AdmUtilGraphviz')
     my_formatter = self.request.locale.dates.getFormatter(
         'dateTime', 'medium')
     userTZ = getUserTimezone()
     longTimeString = my_formatter.format(\
         userTZ.fromutc(datetime.utcnow()))
     versionStr = "%s [%s]" % (longTimeString, getIkVersion())
     #self.request.response.setHeader('Content-Type', 'image/png')
     #filename = "*.png"
     #self.request.response.setHeader(\
     #'Content-Disposition',
     #'attachment; filename=\"%s\"' % filename)
     setNoCacheHeaders(self.request.response)
     return utilGraphviz.getCmapxText(self.context, self.request)
コード例 #6
0
ファイル: reports.py プロジェクト: mleist/ict-ok.org
 def reportPdfByQueryList(self, queryList):
     filename = datetime.now().strftime('ictrpt_%Y%m%d%H%M%S.pdf')
     f_handle, f_name = tempfile.mkstemp(filename)
     authorStr = self.request.principal.title
     my_formatter = self.request.locale.dates.getFormatter(
         'dateTime', 'medium')
     userTZ = getUserTimezone()
     longTimeString = my_formatter.format(\
         userTZ.fromutc(datetime.utcnow()))
     versionStr = "%s [%s]" % (longTimeString, getIkVersion())
     connection = IConnection(removeSecurityProxy(self.context))
     parser = RPEQueryParser()
     oc = connection.root()['_oq_collection']
     thisReporter = PDFReporter(f_name, self.request)
     thisReporter.setAuthorName(authorStr)
     thisReporter.setVersionStr(versionStr)
     queryproc = QueryProcessor(parser, oc)
     import pdb
     pdb.set_trace()
     queryResultsList = [(queryn, queryproc(queryv))
                         for (queryn, queryv) in queryList]
     # first run
     for (queryName, queryResults) in queryResultsList:
         thisReporter.extendAllContentObjects(queryResults)
     # second run
     for (queryName, queryResults) in queryResultsList:
         thisReporter.appendTitle1(queryName)
         thisReporter.append(queryResults)
     # debug output
     #for i_obj in thisReporter.allContentObjects:
     #    print "%s (%s)" % (i_obj.ikName, i_obj.objectID)
     thisReporter.buildPdf()
     thisReporter.cleanup()
     self.request.response.setHeader('Content-Type', 'application/pdf')
     self.request.response.setHeader(\
         'Content-Disposition',
         'attachment; filename=\"%s\"' % filename)
     setNoCacheHeaders(self.request.response)
     datafile = open(f_name, "r")
     dataMem = datafile.read()
     datafile.close()
     os.remove(f_name)
     return dataMem
コード例 #7
0
 def reportXML(self):
     filename = datetime.now().strftime('ict_%Y%m%d%H%M%S.xml')
     f_handle, f_name = tempfile.mkstemp(filename)
     authorStr = self.request.principal.title
     my_formatter = self.request.locale.dates.getFormatter(
         'dateTime', 'medium')
     userTZ = getUserTimezone()
     longTimeString = my_formatter.format(\
         userTZ.fromutc(datetime.utcnow()))
     versionStr = "%s [%s]" % (longTimeString, getIkVersion())
     self.context.generateXML(f_name, authorStr, versionStr)
     self.request.response.setHeader('Content-Type', 'application/xml')
     self.request.response.setHeader(\
         'Content-Disposition',
         'attachment; filename=\"%s\"' % filename)
     setNoCacheHeaders(self.request.response)
     datafile = open(f_name, "r")
     dataMem = datafile.read()
     datafile.close()
     os.remove(f_name)
     return dataMem
コード例 #8
0
def formatEntryDate(entry, formatter):
    """Entry Date for history in Web-Browser"""
    try:
        userTZ = getUserTimezone()
        my_formatter = formatter.request.locale.dates.getFormatter(
            'dateTime', 'short')
        timeString = my_formatter.format(userTZ.fromutc(entry.getTime()))
        timeStringHTML = timeString.replace(" ", "&nbsp;")
        my_formatter = formatter.request.locale.dates.getFormatter(
            'dateTime', 'long')
        longTimeString = my_formatter.format(userTZ.fromutc(entry.getTime()))
        ttid = u"id" + str(abs(hash(entry)))
        tooltip = u"<script type=\"text/javascript\">tt_%s = new YAHOO." \
                u"widget.Tooltip('tt_%s', { autodismissdelay:'15000', " \
                u"context:'%s', text:'%s' });</script>" \
                % (ttid, ttid, ttid, longTimeString)
        resString = u'<span id="%s">%s</span>' % (ttid, timeStringHTML)
    except AttributeError:
        resString = u"---"
        tooltip = u""
    return resString + tooltip
コード例 #9
0
 def overResubmitDate(self):
     userTZ = getUserTimezone()
     nowTS = userTZ.fromutc(datetime.utcnow())