git-svn-id: http://svn.calculate.ru/calculate2/calculate-lib/trunk@22 c91db197-33c1-4113-bf15-f8a5c547ca64

develop
asamoukin 16 years ago
parent 8508a277ba
commit 649534cd6e

@ -754,7 +754,6 @@ class xmlDoc:
return False
fieldsOldComp = xpath.Evaluate("child::field[child::name='%s']"\
%(newNameField), xmlArea)
# Если поле не найдено добавляем его
typeNewField = self.getTypeField(xmlNewField)
if not fieldsOldComp and typeNewField != "seplist":
@ -762,18 +761,20 @@ class xmlDoc:
self.setActionField(xmlNewField, "append")
xmlArea.appendChild(xmlNewField)
return True
newFieldsAction = self.getActionField(xmlNewField)
newValues = self.getFieldValues(xmlNewField)
print newValues
flagCompare = True
for nodeFieldOld in fieldsOldComp:
#if not self.getActionField(nodeFieldOld):
#self.setActionField(nodeFieldOld,"insert")
#else:
#self.setActionField(nodeFieldOld,"append")
oldValues = self.getFieldValues(nodeFieldOld)
for newValue in newValues:
if not (newValue in oldValues):
flagCompare = False
break
appSplLst = []
if typeNewField == "seplist":
xmlOldField = fieldsOldComp[-1]
@ -782,17 +783,27 @@ class xmlDoc:
for nodeSeplist in seplistNewXML:
if self.getActionField(nodeSeplist) != "drop":
if newFieldsAction == "join":
self.setActionField(nodeSeplist,"append")
nextNode = xmlOldField.nextSibling
newInsNode = nodeSeplist.cloneNode(True)
if nextNode:
appSplLst.append((newInsNode,
nextNode,
"insert"))
else:
appSplLst.append((newInsNode,
False,
"append"))
flagCompareSeplist = False
newValues = self.getFieldValues(nodeSeplist)
for nodeFieldOld in fieldsOldComp:
oldValues = self.getFieldValues(nodeFieldOld)
for newValue in newValues:
if newValue in oldValues:
flagCompareSeplist = True
break
if not flagCompareSeplist:
nextNode = xmlOldField.nextSibling
newInsNode = nodeSeplist.cloneNode(True)
self.setActionField(newInsNode,"append")
if nextNode:
appSplLst.append((newInsNode,
nextNode,
"insert"))
else:
appSplLst.append((newInsNode,
False,
"append"))
else:
xmlArea.insertBefore(\
nodeSeplist.cloneNode(True),
@ -805,9 +816,7 @@ class xmlDoc:
if parentNode and newFieldsAction != "join":
parentNode.removeChild(xmlOldField)
for newNode, nxtNode, app in appSplLst:
print newNode, nxtNode, app
if app == "insert":
xmlArea.insertBefore(newNode,nxtNode)
elif app == "append":
@ -820,16 +829,19 @@ class xmlDoc:
xmlArea.replaceChild(xmlNewField.cloneNode(True),
fieldsOldComp[-1])
print "-------------------------------------------------------"
#print "-------------------------------------------------------"
#print "ACTION", newFieldsAction
#print xmlNewField.toprettyxml()
if newFieldsAction == "join":
fieldsOldRemove = []
else:
fieldsOldRemove = fieldsOldComp[:-1]
for nodeFieldOld in fieldsOldRemove:
print nodeFieldOld.toprettyxml()
if self.getActionField(nodeFieldOld) != 'append':
actionOldNode = self.getActionField(nodeFieldOld)
if actionOldNode == "insert" or actionOldNode == "append":
pass
else:
xmlArea.removeChild(nodeFieldOld)
if nodeFieldOld.nextSibling and\
self.getTypeField(nodeFieldOld.nextSibling) == "br":
@ -867,16 +879,12 @@ class xmlDoc:
parentNode = fieldNode.parentNode
parentNode.removeChild(fieldNode)
else:
print self.getActionField(fieldNode)
if self.getActionField(fieldNode) == "drop":
pass
elif self.getActionField(fieldNode) == "join":
pass
else:
self.setActionField(fieldNode,"append")
print "#"
print self.getActionField(fieldNode)
def joinBody(self, baseBody, newBody):

Loading…
Cancel
Save