[py3] Avoid setting attribute on Element instance in wdoc view
This change is needed to make "wdoc" view work on Python 3. Indeed,
before this patch, we used to set a "parent" attribute on Element
instances, which is not permitted since Python 3.3 as
xml.etree.ElementTree uses the C implementation by default.
To get rid of this "parent" attribute, we rework the XML nodes
processing logic to return and retrieve a node along with its parent in
several place of the code. Namely, build_toc_index() now accepts the
"parent" value for "node" and inserts it in the "index" dict (thus avoid
`node.parent = <value>`). Respectively, every query to the "index" dict
is updated to also retrieve the "parent" (thus avoiding `<value> =
node.parent`). Later in InlineHelpView class, the "index" dict is bound
to "tocindex" attribute so we adjust how it is queried in respective
methods.
Tests cubicweb/web/test/unittest_views_wdoc.py now pass on Python 3.
[MASTER]
load-plugins=cubicweb.pylintext
ignore=__pkginfo__
[MESSAGES CONTROL]
disable = too-many-ancestors,too-many-instance-attributes,too-many-public-methods,
too-few-public-methods,too-many-arguments,import-error
[BASIC]
function-rgx = [a-z_][a-z0-9_]{2,35}$
good-names=w,_
[TYPECHECK]
generated-members=debug,info,notice,warning,error,critical,exception
[CLASSES]
exclude-protected=_cw,_cnx,
# namedtuple public API.
_asdict,_fields,_replace,_source,_make
[FORMAT]
max-line-length=100
max-module-lines=2000