Module: check_mk
Branch: master
Commit: 2baa0b895d3deabfb62cd3a80c574fe255040372
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2baa0b895d3dea…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Mar 30 22:08:43 2014 +0200
Some preparations for upcoming reporting
---
mkeventd/web/plugins/views/mkeventd.py | 1 +
web/htdocs/config.py | 2 ++
web/htdocs/index.py | 7 +++++++
web/htdocs/views.py | 22 +++++++++++++++++++++-
web/plugins/views/bi.py | 1 +
web/plugins/views/painters.py | 2 ++
web/plugins/views/perfometer.py | 1 +
7 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/mkeventd/web/plugins/views/mkeventd.py
b/mkeventd/web/plugins/views/mkeventd.py
index 6fb10e6..9bb2111 100644
--- a/mkeventd/web/plugins/views/mkeventd.py
+++ b/mkeventd/web/plugins/views/mkeventd.py
@@ -619,6 +619,7 @@ if mkeventd_enabled:
multisite_painters["event_icons"] = {
"title" : _("Event Icons"),
"short" : _("Icons"),
+ "printable" : False,
"columns" : [ "event_phase" ],
"paint" : paint_event_icons,
}
diff --git a/web/htdocs/config.py b/web/htdocs/config.py
index f748d98..bb8ea35 100644
--- a/web/htdocs/config.py
+++ b/web/htdocs/config.py
@@ -319,6 +319,8 @@ def may_with_roles(some_role_ids, pname):
base_role_id = role["basedon"]
else:
base_role_id = role_id
+ if pname not in permissions_by_name:
+ return False # Permission unknown. Assume False. Functionality might be
missing
perm = permissions_by_name[pname]
he_may = base_role_id in perm["defaults"]
if he_may:
diff --git a/web/htdocs/index.py b/web/htdocs/index.py
index df53cc0..d18635a 100644
--- a/web/htdocs/index.py
+++ b/web/htdocs/index.py
@@ -68,6 +68,13 @@ def load_all_plugins():
pass
except Exception:
raise
+
+ # Load reporting plugins (only available in subscription version)
+ try:
+ reporting.load_plugins()
+ except:
+ pass
+
__builtin__.load_all_plugins = load_all_plugins
# Main entry point for all HTTP-requests (called directly by mod_apache)
diff --git a/web/htdocs/views.py b/web/htdocs/views.py
index 6eacfab..dd3d124 100644
--- a/web/htdocs/views.py
+++ b/web/htdocs/views.py
@@ -235,6 +235,18 @@ class Filter:
def heading_info(self, infoname):
return None
+def unset_all_filtervars():
+ for f in multisite_filters.values():
+ for varname in f.htmlvars:
+ html.del_var(varname)
+
+def get_all_filtervars():
+ filtervars = {}
+ for f in multisite_filters.values():
+ for varname in f.htmlvars:
+ if html.has_var(varname):
+ filtervars[varname] = html.var(varname)
+ return filtervars
# Load all views - users or builtins
def load_views():
@@ -1176,7 +1188,15 @@ def page_view():
raise MKGeneralException(_("Missing the variable view_name in the
URL."))
view = html.available_views.get(view_name)
if not view:
- raise MKGeneralException(("No view defined with the name
'%s'.") % html.attrencode(view_name))
+ raise MKGeneralException(_("No view defined with the name
'%s'.") % html.attrencode(view_name))
+
+ if config.may("reporting.instant"):
+ if html.var("instant_report"):
+ import reporting
+ reporting.instant_report()
+ return
+
+ html.add_status_icon("report", _("Export as PDF (instant
report)"), html.makeuri([("instant_report", "1")]))
show_view(view, True, True, True)
diff --git a/web/plugins/views/bi.py b/web/plugins/views/bi.py
index a335f1c..4c33124 100644
--- a/web/plugins/views/bi.py
+++ b/web/plugins/views/bi.py
@@ -89,6 +89,7 @@ def paint_bi_icons(row):
multisite_painters["aggr_icons"] = {
"title" : _("Links"),
"columns" : [ "aggr_group", "aggr_name",
"aggr_effective_state" ],
+ "printable" : False,
"paint" : paint_bi_icons,
}
diff --git a/web/plugins/views/painters.py b/web/plugins/views/painters.py
index 00f8c6c..65a5628 100644
--- a/web/plugins/views/painters.py
+++ b/web/plugins/views/painters.py
@@ -188,6 +188,7 @@ def iconpainter_columns(what):
multisite_painters["service_icons"] = {
"title": _("Service icons"),
"short": _("Icons"),
+ "printable" : False, # does not contain printable text
"columns": iconpainter_columns("service"),
"groupby" : lambda row: "", # Do not account for in grouping
"paint": lambda row: paint_icons("service", row)
@@ -196,6 +197,7 @@ multisite_painters["service_icons"] = {
multisite_painters["host_icons"] = {
"title": _("Host icons"),
"short": _("Icons"),
+ "printable" : False, # does not contain printable text
"columns": iconpainter_columns("host"),
"groupby" : lambda row: "", # Do not account for in grouping
"paint": lambda row: paint_icons("host", row)
diff --git a/web/plugins/views/perfometer.py b/web/plugins/views/perfometer.py
index 997f123..1b27798 100644
--- a/web/plugins/views/perfometer.py
+++ b/web/plugins/views/perfometer.py
@@ -197,6 +197,7 @@ multisite_painters["perfometer"] = {
"service_check_command",
"service_pnpgraph_present", "service_plugin_output" ],
"paint" : paint_perfometer,
"sorter" : "svc_perf_val01",
+ "printable" : False, # No printable on PDF, only in HTML
}
load_web_plugins("perfometer", globals())