From: <sv...@ze...> - 2008-05-14 19:57:02
|
Author: jstevens Date: 2008-05-14 15:57:09 -0400 (Wed, 14 May 2008) New Revision: 9242 Added: trunk/Products/ZenModel/TemplateContainer.py Modified: trunk/Products/ZenModel/DeviceClass.py trunk/Products/ZenModel/MonitorClass.py trunk/Products/ZenModel/RRDTemplate.py Log: fixes #3161 Modified: trunk/Products/ZenModel/DeviceClass.py =================================================================== --- trunk/Products/ZenModel/DeviceClass.py 2008-05-14 19:54:43 UTC (rev 9241) +++ trunk/Products/ZenModel/DeviceClass.py 2008-05-14 19:57:09 UTC (rev 9242) @@ -45,6 +45,7 @@ import RRDTemplate from DeviceOrganizer import DeviceOrganizer from ZenPackable import ZenPackable +from TemplateContainer import TemplateContainer _marker = "__MARKER___" @@ -59,7 +60,7 @@ addDeviceClass = DTMLFile('dtml/addDeviceClass',globals()) -class DeviceClass(DeviceOrganizer, ZenPackable): +class DeviceClass(DeviceOrganizer, ZenPackable, TemplateContainer): """ DeviceClass is a device organizer that manages the primary classification of device objects within the zenoss system. It manages properties @@ -84,9 +85,9 @@ default_catalog = 'deviceSearch' - _relations = DeviceOrganizer._relations + ZenPackable._relations + ( + _relations = DeviceOrganizer._relations + ZenPackable._relations + \ + TemplateContainer._relations + ( ("devices", ToManyCont(ToOne,"Products.ZenModel.Device","deviceClass")), - ("rrdTemplates", ToManyCont(ToOne,"Products.ZenModel.RRDTemplate","deviceClass")), ) # Screen action bindings (and tab definitions) Modified: trunk/Products/ZenModel/MonitorClass.py =================================================================== --- trunk/Products/ZenModel/MonitorClass.py 2008-05-14 19:54:43 UTC (rev 9241) +++ trunk/Products/ZenModel/MonitorClass.py 2008-05-14 19:57:09 UTC (rev 9242) @@ -30,6 +30,7 @@ from ZenModelRM import ZenModelRM from RRDTemplate import RRDTemplate +from TemplateContainer import TemplateContainer def manage_addMonitorClass(context, id, title = None, REQUEST = None): """make a device class""" @@ -44,7 +45,7 @@ from Products.ZenRelations.RelSchema import ToManyCont, ToOne -class MonitorClass(ZenModelRM, Folder): +class MonitorClass(ZenModelRM, Folder, TemplateContainer): #isInTree = 1 meta_type = "MonitorClass" sub_class = 'MonitorClass' @@ -79,11 +80,8 @@ ) security = ClassSecurityInfo() - _relations = ZenModelRM._relations + ( - ('rrdTemplates', ToManyCont(ToOne, 'Products.ZenModel.RRDTemplate', 'deviceClass')), - ) + _relations = TemplateContainer._relations - def __init__(self, id, title=None, buildRelations=True): ZenModelRM.__init__(self, id, title, buildRelations) Modified: trunk/Products/ZenModel/RRDTemplate.py =================================================================== --- trunk/Products/ZenModel/RRDTemplate.py 2008-05-14 19:54:43 UTC (rev 9241) +++ trunk/Products/ZenModel/RRDTemplate.py 2008-05-14 19:57:09 UTC (rev 9242) @@ -117,11 +117,16 @@ # by the graphDefinitionAndFriends migrate script for 2.1 _relations = ZenPackable._relations + ( - ("deviceClass", ToOne(ToManyCont,"Products.ZenModel.DeviceClass", "rrdTemplates")), - ("datasources", ToManyCont(ToOne,"Products.ZenModel.RRDDataSource", "rrdTemplate")), - ("graphs", ToManyCont(ToOne,"Products.ZenModel.RRDGraph", "rrdTemplate")), - ("thresholds", ToManyCont(ToOne,"Products.ZenModel.ThresholdClass", "rrdTemplate")), - ("graphDefs", ToManyCont(ToOne,"Products.ZenModel.GraphDefinition", "rrdTemplate")), + ("deviceClass", ToOne( + ToManyCont,"Products.ZenModel.TemplateContainer", "rrdTemplates")), + ("datasources", ToManyCont( + ToOne,"Products.ZenModel.RRDDataSource", "rrdTemplate")), + ("graphs", ToManyCont( + ToOne,"Products.ZenModel.RRDGraph", "rrdTemplate")), + ("thresholds", ToManyCont( + ToOne,"Products.ZenModel.ThresholdClass", "rrdTemplate")), + ("graphDefs", ToManyCont( + ToOne,"Products.ZenModel.GraphDefinition", "rrdTemplate")), ) Added: trunk/Products/ZenModel/TemplateContainer.py |