def saveReport(self): if (self.request.getParameter("isNew") is None): reportName = self.request.getParameter("reportName") self.report = self.reportManager.getReport(reportName) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal("dateFrom", self.formData.get("dateFrom"), "dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo", self.formData.get("dateTo"), "dateTo", "dateTo") self.report.setQueryFilterVal( "showOption", self.request.getParameter("showOption"), "showOption", "showOption") self.report.setQueryFilterVal( "dateCreatedModified", self.request.getParameter("dateCreatedModified"), "dateCreatedModified", "dateCreatedModified") else: self.report = StatisticalReport( String(self.request.getParameter("reportLabel")).replaceAll( " ", ""), self.request.getParameter("reportLabel")) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal( "dateFrom", self.request.getParameter("dateFrom"), "dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo", self.request.getParameter("dateTo"), "dateTo", "dateTo") self.report.setQueryFilterVal( "showOption", self.request.getParameter("showOption"), "showOption", "showOption") self.report.setQueryFilterVal( "dateCreatedModified", self.request.getParameter("dateCreatedModified"), "dateCreatedModified", "dateCreatedModified") self.reportManager.addReport(self.report) self.reportManager.saveReport(self.report) self.showReport(self.report.getReportName())
def saveReport(self): if (self.request.getParameter("isNew") is None): reportName = self.request.getParameter("reportName") self.report = self.reportManager.getReport(reportName) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal("dateFrom",self.formData.get("dateFrom"),"dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo",self.formData.get("dateTo"),"dateTo", "dateTo") self.report.setQueryFilterVal("showOption",self.request.getParameter("showOption"),"showOption", "showOption") self.report.setQueryFilterVal("dateCreatedModified",self.request.getParameter("dateCreatedModified"),"dateCreatedModified", "dateCreatedModified") else: self.report = StatisticalReport(String(self.request.getParameter("reportLabel")).replaceAll(" ",""), self.request.getParameter("reportLabel")) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal("dateFrom",self.request.getParameter("dateFrom"),"dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo",self.request.getParameter("dateTo"),"dateTo", "dateTo") self.report.setQueryFilterVal("showOption",self.request.getParameter("showOption"),"showOption", "showOption") self.report.setQueryFilterVal("dateCreatedModified",self.request.getParameter("dateCreatedModified"),"dateCreatedModified", "dateCreatedModified") self.reportManager.addReport(self.report) self.reportManager.saveReport(self.report) self.showReport(self.report.getReportName())
class StatisticalReportsData: def __init__(self): pass def __activate__(self, context): self.auth = context["page"].authentication self.request = context["request"] self.response = context["response"] self.indexer = context['Services'].getIndexer() self.reportStatsService = context["Services"].getService("reportStats") self.reportManager = context["Services"].getService("reportManager") self.log = context["log"] self.formData = context["formData"] self.systemConfig = context["systemConfig"] self.errorMsg = "" self.resultFields = ["rb-total", "hdr-collection-type", "rb-collection-dataset", "rb-collection-collection", "rb-collection-index", "rb-collection-registry", "rb-collection-repository", "hdr-workflow", "rb-workflow-inbox", "rb-workflow-investigation", "rb-workflow-metadata", "rb-workflow-final", "rb-workflow-published", "rb-workflow-retired"] self.mintResultFields = ["mint-total", "hdr-party", "parties_people", "parties_groups", "activities:", "services:"] self.headerText = {"hdr-collection-type":"Records in Redbox (by Collection type)", "hdr-workflow":"Records in RedBox (by Workflow)", "hdr-party":"Records in Mint - PARTY (type)"} self.isNew = False self.report = None if (self.auth.is_logged_in()): if (self.auth.is_admin()==True): self.log.debug("Request method:%s" % self.request.getMethod()) if (String(self.request.getMethod()).equalsIgnoreCase("get")): if self.request.getParameter("reportName") is None: self.createNewReport(context) else: self.showReport(self.request.getParameter("reportName")) else: self.saveReport() else: self.errorMsg = "Requires Admin / Librarian / Reviewer access." else: self.errorMsg = "Please login." def getErrorMsg(self): return self.errorMsg def getIsNew(self): return self.isNew def createNewReport(self, context): self.isNew = True self.defOpts = set(["created", "all"]) def saveReport(self): if (self.request.getParameter("isNew") is None): reportName = self.request.getParameter("reportName") self.report = self.reportManager.getReport(reportName) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal("dateFrom",self.formData.get("dateFrom"),"dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo",self.formData.get("dateTo"),"dateTo", "dateTo") self.report.setQueryFilterVal("showOption",self.request.getParameter("showOption"),"showOption", "showOption") self.report.setQueryFilterVal("dateCreatedModified",self.request.getParameter("dateCreatedModified"),"dateCreatedModified", "dateCreatedModified") else: self.report = StatisticalReport(String(self.request.getParameter("reportLabel")).replaceAll(" ",""), self.request.getParameter("reportLabel")) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal("dateFrom",self.request.getParameter("dateFrom"),"dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo",self.request.getParameter("dateTo"),"dateTo", "dateTo") self.report.setQueryFilterVal("showOption",self.request.getParameter("showOption"),"showOption", "showOption") self.report.setQueryFilterVal("dateCreatedModified",self.request.getParameter("dateCreatedModified"),"dateCreatedModified", "dateCreatedModified") self.reportManager.addReport(self.report) self.reportManager.saveReport(self.report) self.showReport(self.report.getReportName()) def showReport(self, reportName): format = self.request.getParameter("format") self.report = self.reportManager.getReport(reportName) try: self.stats = self.reportStatsService.getStatCounts(self.indexer, self.report.getQueryAsString(), self.report) except: self.errorMsg = "Query failed - please refer to your system administrator." self.log.debug("Statistical reporting threw an exception (report was %s): %s - %s" % (self.report.getLabel(), sys.exc_info()[0], sys.exc_info()[1])) if format == "csv": self.response.setHeader("Content-Disposition", "attachment; filename=%s.csv" % self.report.getLabel()) writer = self.response.getPrintWriter("text/csv; charset=UTF-8") for field in self.getResultFields(): if self.isHeader(field) == False: label = self.getStatsLabel(field, "redbox-all") value = self.getStatsCount(field, "redbox-all") writer.print(label) writer.print(",") writer.println(value) for field in self.getMintResultFields(): if self.isHeader(field) == False: if self.isGroupField(field) == True: for groupField in self.getGroupFields(field, "mint-all"): label = self.getGroupLabel(groupField, field) value = self.getGfStatsCount(groupField, field, "mint-all") writer.print(label) writer.print(",") writer.println(value) else: label = self.getStatsLabel(field, "mint-all") value = self.getStatsCount(field, "mint-all") writer.print(label) writer.print(",") writer.println(value) writer.close() def getReportLabel(self): if (self.report is not None): return self.report.getLabel() else: return "" def getReportName(self): return self.report.getReportName() def getStatsCount(self, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getCounts() def getStatsLabel(self, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getLabel() def getGfStatsCount(self, groupfield, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getGroupMap().get(groupfield) def getGroupFields(self, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getGroupMap().keySet() def getGroupLabel(self, groupField, field): stat = self.stats.get("mint-all") return "%s %s" % (stat.getResultByName(field).getSolrFieldValue(), groupField) def getResultFields(self): return self.resultFields def isHeader(self, fldname): return fldname[:3] == "hdr" def isGroupField(self, fldname): return String(fldname).indexOf(":") >= 0 def getHeaderText(self, hdr): return self.headerText[hdr] def getReportFilter(self, param): if (self.report is not None): return self.report.getConfig().getString(None, "query", "filter", param, "value") else: return "" def getMintResultFields(self): return self.mintResultFields def getSelectedOpt(self, param, val, selval): if self.isNew and val in self.defOpts: return selval paramval = self.getReportFilter(param) if paramval == val: return selval else: return ""
class StatisticalReportsData: def __init__(self): pass def __activate__(self, context): self.auth = context["page"].authentication self.request = context["request"] self.response = context["response"] self.indexer = context['Services'].getIndexer() self.reportStatsService = context["Services"].getService("reportStats") self.reportManager = context["Services"].getService("reportManager") self.log = context["log"] self.formData = context["formData"] self.systemConfig = context["systemConfig"] self.errorMsg = "" self.resultFields = [ "rb-total", "hdr-collection-type", "rb-collection-dataset", "rb-collection-collection", "rb-collection-index", "rb-collection-registry", "rb-collection-repository", "hdr-workflow", "rb-workflow-inbox", "rb-workflow-investigation", "rb-workflow-metadata", "rb-workflow-final", "rb-workflow-published", "rb-workflow-retired" ] self.mintResultFields = [ "mint-total", "hdr-party", "parties_people", "parties_groups", "activities:", "services:" ] self.headerText = { "hdr-collection-type": "Records in Redbox (by Collection type)", "hdr-workflow": "Records in RedBox (by Workflow)", "hdr-party": "Records in Mint - PARTY (type)" } self.isNew = False self.report = None if (self.auth.is_logged_in()): if (self.auth.is_admin() == True): self.log.debug("Request method:%s" % self.request.getMethod()) if (String(self.request.getMethod()).equalsIgnoreCase("get")): if self.request.getParameter("reportName") is None: self.createNewReport(context) else: self.showReport( self.request.getParameter("reportName")) else: self.saveReport() else: self.errorMsg = "Requires Admin / Librarian / Reviewer access." else: self.errorMsg = "Please login." def getErrorMsg(self): return self.errorMsg def getIsNew(self): return self.isNew def createNewReport(self, context): self.isNew = True self.defOpts = set(["created", "all"]) def saveReport(self): if (self.request.getParameter("isNew") is None): reportName = self.request.getParameter("reportName") self.report = self.reportManager.getReport(reportName) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal("dateFrom", self.formData.get("dateFrom"), "dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo", self.formData.get("dateTo"), "dateTo", "dateTo") self.report.setQueryFilterVal( "showOption", self.request.getParameter("showOption"), "showOption", "showOption") self.report.setQueryFilterVal( "dateCreatedModified", self.request.getParameter("dateCreatedModified"), "dateCreatedModified", "dateCreatedModified") else: self.report = StatisticalReport( String(self.request.getParameter("reportLabel")).replaceAll( " ", ""), self.request.getParameter("reportLabel")) self.report.setLabel(self.request.getParameter("reportLabel")) self.report.setQueryFilterVal( "dateFrom", self.request.getParameter("dateFrom"), "dateFrom", "dateFrom") self.report.setQueryFilterVal("dateTo", self.request.getParameter("dateTo"), "dateTo", "dateTo") self.report.setQueryFilterVal( "showOption", self.request.getParameter("showOption"), "showOption", "showOption") self.report.setQueryFilterVal( "dateCreatedModified", self.request.getParameter("dateCreatedModified"), "dateCreatedModified", "dateCreatedModified") self.reportManager.addReport(self.report) self.reportManager.saveReport(self.report) self.showReport(self.report.getReportName()) def showReport(self, reportName): format = self.request.getParameter("format") self.report = self.reportManager.getReport(reportName) try: self.stats = self.reportStatsService.getStatCounts( self.indexer, self.report.getQueryAsString(), self.report) except: self.errorMsg = "Query failed - please refer to your system administrator." self.log.debug( "Statistical reporting threw an exception (report was %s): %s - %s" % (self.report.getLabel(), sys.exc_info()[0], sys.exc_info()[1])) if format == "csv": self.response.setHeader( "Content-Disposition", "attachment; filename=%s.csv" % self.report.getLabel()) writer = self.response.getPrintWriter("text/csv; charset=UTF-8") for field in self.getResultFields(): if self.isHeader(field) == False: label = self.getStatsLabel(field, "redbox-all") value = self.getStatsCount(field, "redbox-all") writer.print(label) writer.print(",") writer.println(value) for field in self.getMintResultFields(): if self.isHeader(field) == False: if self.isGroupField(field) == True: for groupField in self.getGroupFields( field, "mint-all"): label = self.getGroupLabel(groupField, field) value = self.getGfStatsCount( groupField, field, "mint-all") writer.print(label) writer.print(",") writer.println(value) else: label = self.getStatsLabel(field, "mint-all") value = self.getStatsCount(field, "mint-all") writer.print(label) writer.print(",") writer.println(value) writer.close() def getReportLabel(self): if (self.report is not None): return self.report.getLabel() else: return "" def getReportName(self): return self.report.getReportName() def getStatsCount(self, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getCounts() def getStatsLabel(self, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getLabel() def getGfStatsCount(self, groupfield, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getGroupMap().get(groupfield) def getGroupFields(self, field, statname): stat = self.stats.get(statname) return stat.getResultByName(field).getGroupMap().keySet() def getGroupLabel(self, groupField, field): stat = self.stats.get("mint-all") return "%s %s" % (stat.getResultByName(field).getSolrFieldValue(), groupField) def getResultFields(self): return self.resultFields def isHeader(self, fldname): return fldname[:3] == "hdr" def isGroupField(self, fldname): return String(fldname).indexOf(":") >= 0 def getHeaderText(self, hdr): return self.headerText[hdr] def getReportFilter(self, param): if (self.report is not None): return self.report.getConfig().getString(None, "query", "filter", param, "value") else: return "" def getMintResultFields(self): return self.mintResultFields def getSelectedOpt(self, param, val, selval): if self.isNew and val in self.defOpts: return selval paramval = self.getReportFilter(param) if paramval == val: return selval else: return ""