def save_html_cache(self, report_name, reportPath): name = "client_html_" + report_name.replace(" ", "_") new_data = frappe._dict({'data': {}}) data = utils.get_jasper_data(name, get_from_db=self.get_session_from_db, tab="tabJasperClientHtmlDocs") if data: rp = data['data']['reportPath'] if rp == reportPath: data['data']['hash'] = self.html_hash utils.update_list_all_memcache_db(data, cachename=name) return new_data['data']['reportPath'] = reportPath new_data['data']['hash'] = self.html_hash utils.insert_list_all_memcache_db(new_data['data'], cachename=name)
def _get_reports_list(self, filters_report=None, filters_param=None, force=False, cachename="report_list_all", update=False): ret = self.get_reports_list_from_db(filters_report=filters_report, filters_param=filters_param) #check to see if there is any report by now. If there are reports don't check the server #jasperserverlib sign if it was imported jasperserver, a library to connect to the jasperreport server if self.user == "Administrator" and ret is None and self.use_server() and jasperserverlib: #called from client. Don't let him change old reports attributes import_only_new = self.data['data'].get('import_only_new') self.data['data']['import_only_new'] = 1 self.get_server("server") self.jps.import_all_jasper_reports(self.data['data'], force=force) self.data['data']['import_only_new'] = import_only_new #could be recursive but there is no need for resume again because decorator ret = self.get_reports_list_from_db(filters_report=filters_report, filters_param=filters_param) in_transation = utils.getFrappeVersion().major > 4 if ret: ptime = self.data['data'].get('jasper_polling_time') ret['jasper_polling_time'] = ptime if ret and not update: data = utils.insert_list_all_memcache_db(ret, cachename=cachename, in_transation=in_transation) elif ret: data = utils.update_list_all_memcache_db(ret, cachename=cachename, in_transation=in_transation) else: data = {"data":{"origin": self.get_report_origin()}} return data