core (xml_tools): new elementCopy method to shallow copy a domish.Element

This commit is contained in:
Goffi 2019-02-28 18:57:00 +01:00
commit 82bb99f88c

View file

@ -1664,6 +1664,25 @@ def deferConfirm(*args, **kwargs):
# Misc other funtions
def elementCopy(element):
"""Make a copy of a domish.Element
The copy will have its own children list, so other elements
can be added as direct children without modifying orignal one.
Children are not deeply copied, so if an element is added to a child or grandchild,
it will also affect original element.
@param element(domish.Element): Element to clone
"""
new_elt = domish.Element(
(element.uri, element.name),
defaultUri = element.defaultUri,
attribs = element.attributes,
localPrefixes = element.localPrefixes)
new_elt.parent = element.parent
new_elt.children = element.children[:]
return new_elt
def isXHTMLField(field):
"""Check if a data_form.Field is an XHTML one"""
return (field.fieldType is None and field.ext_type == u"xml" and