Module: check_mk
Branch: master
Commit: 04bff8838a880762b40433f3bc1202fab265740d
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=04bff8838a8807…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Apr 6 17:35:50 2016 +0200
Cleaned up pagetypes subclassing
---
web/htdocs/pagetypes.py | 18 ++++++++++++------
web/plugins/sidebar/shipped.py | 6 +-----
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/web/htdocs/pagetypes.py b/web/htdocs/pagetypes.py
index b7565db..304aa1f 100644
--- a/web/htdocs/pagetypes.py
+++ b/web/htdocs/pagetypes.py
@@ -34,8 +34,6 @@ try:
except ImportError:
import json
-# TODO: Whey not user super() for calling the functions of all classes?
-
# .--Base----------------------------------------------------------------.
# | ____ |
# | | __ ) __ _ ___ ___ |
@@ -48,8 +46,10 @@ except ImportError:
# | or PageRenderer. |
# '----------------------------------------------------------------------'
-class Base:
+class Base(object):
def __init__(self, d):
+ super(Base, self).__init__()
+
# The dictionary with the name _ holds all information about
# the page in question - as a dictionary that can be loaded
# and saved to files using repr().
@@ -64,6 +64,7 @@ class Base:
def internal_representation(self):
return self._
+
# You always must override the following method. Not all phrases
# might be neccessary depending on the type of you page.
# Possible phrases:
@@ -253,6 +254,11 @@ class Base:
return instance
+ @classmethod
+ def type_name(self):
+ raise NotImplementedError()
+
+
#.
# .--PageRenderer--------------------------------------------------------.
# | ____ ____ _ |
@@ -267,7 +273,7 @@ class Base:
# | pages.
# '----------------------------------------------------------------------'
-class PageRenderer:
+class PageRenderer(Base):
# Stuff to be overridden by the implementation of actual page types
# TODO: Das von graphs.py rauspfluecken. Also alles, was man
@@ -353,7 +359,7 @@ class PageRenderer:
# | Examples: views, dashboards, graphs collections |
# '----------------------------------------------------------------------'
-class Overridable:
+class Overridable(Base):
@classmethod
def sanitize(self, d):
d.setdefault("public", False)
@@ -961,7 +967,7 @@ class Overridable:
# | graphs. |
# '----------------------------------------------------------------------'
-class Container:
+class Container(Base):
@classmethod
def sanitize(self, d):
d.setdefault("elements", [])
diff --git a/web/plugins/sidebar/shipped.py b/web/plugins/sidebar/shipped.py
index 034a450..a29230a 100644
--- a/web/plugins/sidebar/shipped.py
+++ b/web/plugins/sidebar/shipped.py
@@ -1060,11 +1060,7 @@ div.snapin table.master_control td img.iconbutton {
# | Shareable lists of bookmarks |
# '----------------------------------------------------------------------'
-class BookmarkList(pagetypes.Overridable, pagetypes.Base):
- def __init__(self, d):
- pagetypes.Base.__init__(self, d)
-
-
+class BookmarkList(pagetypes.Overridable):
@classmethod
def type_name(self):
return "bookmark_list"