-
-
Notifications
You must be signed in to change notification settings - Fork 186
/
publishing.py
66 lines (59 loc) · 1.48 KB
/
publishing.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# From Products.PloneHotfix20160419
# Plus extras for properties.
# Plus Products.PloneHotfix20210518.
from OFS.PropertyManager import PropertyManager
from plone.dexterity.content import Container
from plone.dexterity.content import Item
from Products.CMFPlone.Portal import PloneSite
def delete_method_docstring(klass, method_name):
# Delete the docstring from the class method.
# Objects must have a docstring to be published.
# So this avoids them getting published.
method = getattr(klass, method_name, None)
if method is None:
return
if hasattr(method, "__doc__"):
del method.__doc__
klasses = (
# Node,
# Document,
PloneSite,
Item,
Container,
)
methods = (
"EffectiveDate",
"ExpirationDate",
"getAttributes",
"getChildNodes",
"getFirstChild",
"getLastChild",
"getLayout",
"getNextSibling",
"getNodeName",
"getNodeType",
"getNodeValue",
"getOwnerDocument",
"getParentNode",
"getPhysicalPath",
"getPreviousSibling",
"getTagName",
"hasChildNodes",
"Type",
)
for klass in klasses:
for method_name in methods:
delete_method_docstring(klass, method_name)
property_methods = (
"getProperty",
"propertyValues",
"propertyItems",
"propertyMap",
"hasProperty",
"getPropertyType",
"propertyIds",
"propertyLabel",
"propertyDescription",
)
for method_name in property_methods:
delete_method_docstring(PropertyManager, method_name)