|
|
|
@ -660,11 +660,14 @@ class xmlDoc:
|
|
|
|
|
|
|
|
|
|
for nodeFieldOld in fieldsOldComp:
|
|
|
|
|
if newFieldsAction == "drop":
|
|
|
|
|
if (nodeFieldOld.nextSibling):
|
|
|
|
|
if self.getTypeField(nodeFieldOld.nextSibling) == "br":
|
|
|
|
|
xmlArea.removeChild(nodeFieldOld.nextSibling)
|
|
|
|
|
xmlArea.removeChild(nodeFieldOld)
|
|
|
|
|
continue
|
|
|
|
|
if nodeFieldOld.nextSibling and\
|
|
|
|
|
self.getTypeField(nodeFieldOld.nextSibling) == "br":
|
|
|
|
|
xmlArea.removeChild(nodeFieldOld.nextSibling)
|
|
|
|
|
elif nodeFieldOld.previousSibling and\
|
|
|
|
|
self.getTypeField(nodeFieldOld.previousSibling) == "br":
|
|
|
|
|
xmlArea.removeChild(nodeFieldOld.previousSibling)
|
|
|
|
|
xmlArea.removeChild(nodeFieldOld)
|
|
|
|
|
continue
|
|
|
|
|
#if not self.getActionField(nodeFieldOld):
|
|
|
|
|
#self.setActionField(nodeFieldOld,"insert")
|
|
|
|
|
#else:
|
|
|
|
@ -933,9 +936,42 @@ class xmlDoc:
|
|
|
|
|
areaNode)
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def getAreaFieldValues(self, nameArea, nameField, xmlArea):
|
|
|
|
|
print xmlArea.toprettyxml()
|
|
|
|
|
"""По имени области и и имени переменной выводит значениe переменной"""
|
|
|
|
|
namesAreaComare = xpath.Evaluate(\
|
|
|
|
|
"child::area/child::caption[child::name='%s']" %(nameArea),
|
|
|
|
|
xmlArea)
|
|
|
|
|
print namesAreaComare
|
|
|
|
|
fieldsVal = False
|
|
|
|
|
for areaComp in namesAreaComare:
|
|
|
|
|
fieldsVal = xpath.Evaluate(\
|
|
|
|
|
"child::field[child::name='%s'] "\
|
|
|
|
|
%(nameField), areaComp.parentNode.parentNode)
|
|
|
|
|
if fieldsVal:
|
|
|
|
|
break
|
|
|
|
|
if not fieldsVal:
|
|
|
|
|
return False
|
|
|
|
|
fieldValue = xpath.Evaluate("child::value'] ",
|
|
|
|
|
fieldsVal.parentNode)
|
|
|
|
|
print fieldValue.toprettyxml()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def joinArea(self, baseNode, xmlNewArea):
|
|
|
|
|
"""Объединяет область c областью Body (xmlNewArea c baseNode)"""
|
|
|
|
|
def appendArea(baseNode, xmlNewArea):
|
|
|
|
|
fieldsRemove = xpath.Evaluate(\
|
|
|
|
|
"descendant::field[child::action='drop']", xmlNewArea)
|
|
|
|
|
for rmNode in fieldsRemove:
|
|
|
|
|
parentNode = rmNode.parentNode
|
|
|
|
|
parentNode.removeChild(rmNode)
|
|
|
|
|
captionAreasRemove = xpath.Evaluate(\
|
|
|
|
|
"descendant::area/child::caption[child::action='drop']",
|
|
|
|
|
xmlNewArea)
|
|
|
|
|
for rmNodeCapt in captionAreasRemove:
|
|
|
|
|
rmNode = rmNodeCapt.parentNode
|
|
|
|
|
parentNode = rmNode.parentNode
|
|
|
|
|
parentNode.removeChild(rmNode)
|
|
|
|
|
self.setActionArea(xmlNewArea, "append")
|
|
|
|
|
# Добавляем разделитель областей во вложенные области
|
|
|
|
|
areaNodes = xpath.Evaluate('descendant::area',xmlNewArea)
|
|
|
|
@ -2328,6 +2364,16 @@ class samba(objShare):
|
|
|
|
|
bodyAreas.append(blocs[1][i])
|
|
|
|
|
return (headsAreas, bodyAreas)
|
|
|
|
|
|
|
|
|
|
def createTxtConfig(self, strHeader, dictVar):
|
|
|
|
|
"""Cоздает область с заголовком
|
|
|
|
|
|
|
|
|
|
создает текст конфигурационного файла в формате samba из
|
|
|
|
|
заголовка (строка) и словаря переменных
|
|
|
|
|
"""
|
|
|
|
|
outTxt = "[" + strHeader + "]\n"
|
|
|
|
|
for key in dictVar.keys():
|
|
|
|
|
outTxt += "%s=%s\n" %(key,dictVar[key])
|
|
|
|
|
return outTxt
|
|
|
|
|
|
|
|
|
|
def _textToXML(self):
|
|
|
|
|
"""Преобразует текст в XML"""
|
|
|
|
|