109 |
'genericBox':{'function':self.triggerGenericBox}, |
'genericBox':{'function':self.triggerGenericBox}, |
110 |
'callTrigger':{'function':self.triggerCallTrigger}, |
'callTrigger':{'function':self.triggerCallTrigger}, |
111 |
'exit':{'function':self.exit}, |
'exit':{'function':self.exit}, |
112 |
'setParameter':{'function':self.setParameter}, |
'commit':{'function':self.commit}, |
113 |
|
'postChanges':{'function':self.postChanges}, |
114 |
|
'reset':{'function':self.reset}, |
115 |
|
'clear':{'function':self.clear}, |
116 |
|
'commitConnection':{'function':self.commitConnection}, |
117 |
|
'rollbackConnection':{'function':self.rollbackConnection}, |
118 |
|
'setParameter':{'function':self.setParameter}, |
119 |
'getParameter':{'function':self.getParameter, |
'getParameter':{'function':self.getParameter, |
120 |
'global': 1, |
'global': 1, |
121 |
}, |
}, |
477 |
|
|
478 |
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
479 |
|
|
480 |
def commit(self): |
def commitConnection(self): |
481 |
|
self._currentBlock._dataSourceLink._dataObject.commit() |
482 |
|
|
483 |
|
def rollbackConnection(self): |
484 |
|
self._currentBlock._dataSourceLink._dataObject.rollback() |
485 |
|
|
486 |
|
def commit(self, onlyThisBlock=None): |
487 |
self._app.dispatchEvent(GFEvent('beginWAIT',None)); |
self._app.dispatchEvent(GFEvent('beginWAIT',None)); |
488 |
|
|
489 |
message = None |
message = None |
498 |
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
499 |
return _("Form trigger returned error") |
return _("Form trigger returned error") |
500 |
|
|
501 |
for block in self._blockList: |
blockList = [] |
502 |
|
if onlyThisBlock: |
503 |
|
blockList.append(onlyThisBlock) |
504 |
|
else: |
505 |
|
blockList = self._blockList |
506 |
|
|
507 |
|
for block in blockList: |
508 |
GDebug.printMesg(1, "Saving %s"%block.name) |
GDebug.printMesg(1, "Saving %s"%block.name) |
509 |
try: |
try: |
510 |
|
|
523 |
return _("Block trigger returned error") |
return _("Block trigger returned error") |
524 |
block.processTrigger('Post-Commit') |
block.processTrigger('Post-Commit') |
525 |
|
|
526 |
for block in self._blockList: |
for block in blockList: |
527 |
block.switchRecord(0) |
block.switchRecord(0) |
528 |
|
|
529 |
else: |
else: |
546 |
|
|
547 |
return message |
return message |
548 |
|
|
549 |
|
def postChanges(self, onlyThisBlock=None): |
550 |
|
self._app.dispatchEvent(GFEvent('beginWAIT',None)); |
551 |
|
|
552 |
|
message = None |
553 |
|
|
554 |
|
try: |
555 |
|
if not self.readonly: |
556 |
|
# Form level pre-commit |
557 |
|
try: |
558 |
|
self.processTrigger('Pre-Commit') |
559 |
|
except TriggerError: |
560 |
|
GDebug.printMesg(1, "Trigger form Pre-Commit threw a TriggerError!") |
561 |
|
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
562 |
|
return _("Form trigger returned error") |
563 |
|
|
564 |
|
blockList = [] |
565 |
|
if onlyThisBlock: |
566 |
|
blockList.append(onlyThisBlock) |
567 |
|
else: |
568 |
|
blockList = self._blockList |
569 |
|
|
570 |
|
for block in blockList: |
571 |
|
GDebug.printMesg(1, "Saving %s"%block.name) |
572 |
|
try: |
573 |
|
|
574 |
|
# This gets lost in the Pre-Commit code |
575 |
|
block._precommitRecord = block._currentRecord |
576 |
|
|
577 |
|
# TODO: Need to check with jamest.. |
578 |
|
# Now, block-level pre-commits get called for |
579 |
|
# EACH record via another hook in GFDataSource |
580 |
|
##block.processTrigger('Pre-Commit') |
581 |
|
|
582 |
|
block.processPostChanges() |
583 |
|
self._currentBlock = block |
584 |
|
except TriggerError: |
585 |
|
GDebug.printMesg(1, "Trigger block Pre-Commit threw a TriggerError!") |
586 |
|
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
587 |
|
return _("Block trigger returned error") |
588 |
|
block.processTrigger('Post-Commit') |
589 |
|
|
590 |
|
for block in blockList: |
591 |
|
block.switchRecord(0) |
592 |
|
|
593 |
|
else: |
594 |
|
message = _('Form is readonly') |
595 |
|
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
596 |
|
return message |
597 |
|
|
598 |
|
self.processTrigger('Post-Commit') |
599 |
|
|
600 |
|
except DBError, err: |
601 |
|
#self.rollback(1) |
602 |
|
message = _("Database commit error:\n%s\n%s ") % (sys.exc_info()[0], sys.exc_info()[1]) |
603 |
|
#print message |
604 |
|
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
605 |
|
raise DBError(str(err)) |
606 |
|
except: |
607 |
|
print _("\n\nGFForm: Unexpected Exception:") |
608 |
|
print '-'*60 |
609 |
|
traceback.print_exc(file=sys.stdout) |
610 |
|
print '-'*60 |
611 |
|
|
612 |
|
self._app.dispatchEvent(GFEvent('endWAIT',None)); |
613 |
|
|
614 |
|
return message |
615 |
|
|
616 |
def executeAbout(self,event): |
def executeAbout(self,event): |
617 |
version = VERSION |
version = VERSION |
618 |
name = self.getOption('title') or "Unknown" |
name = self.getOption('title') or "Unknown" |
622 |
|
|
623 |
self.dispatchEvent(GFEvent('uiABOUT',[version,name,formversion,author,description])) |
self.dispatchEvent(GFEvent('uiABOUT',[version,name,formversion,author,description])) |
624 |
|
|
625 |
|
def reset(self): |
626 |
|
self.rollback(1) |
627 |
|
|
628 |
|
def clear(self): |
629 |
|
self.rollback() |
630 |
|
|
631 |
def rollback(self, recover=0): |
def rollback(self, recover=0): |
632 |
|
#commited = 0 |
633 |
self.endEditing() |
self.endEditing() |
634 |
for block in self._blockList: |
for block in self._blockList: |
635 |
block.processRollback(recover) |
block.processRollback(recover) |
636 |
|
#if not commited \ |
637 |
|
# and str(block._dataSourceLink._dataObject).startswith("<gnue.common.dbdrivers.psycopg.DBdriver.PG_DataObject_Objec"): |
638 |
|
# block._dataSourceLink._dataObject.rollback() |
639 |
|
# commited = 1 |
640 |
self.refreshDisplay(self) |
self.refreshDisplay(self) |
641 |
self._currentBlock.jumpRecord(self._currentBlock._currentRecord) |
self._currentBlock.jumpRecord(self._currentBlock._currentRecord) |
642 |
|
|
643 |
|
|
644 |
# |
# |
645 |
# fireTrigger |
# fireTrigger |
646 |
# |
# |