Changeset 6
- Timestamp:
- 11/14/08 10:54:41 (8 weeks ago)
- Location:
- gnrpy/gnr
- Files:
-
- 3 modified
-
core/gnrbag.py (modified) (1 diff)
-
sql/gnrsql.py (modified) (2 diffs)
-
sql/gnrsqltable.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
gnrpy/gnr/core/gnrbag.py
r2 r6 936 936 937 937 #-------------------- deepcopy ------------------------------- 938 938 939 def deepcopy(self): 939 940 """ 940 941 This method returns a deep copy of the Bag. 941 942 @return: a deep copy of the Bag. 942 @deprecated: IT DOESN'T WORK 943 """ 944 return copy.deepcopy(self) 943 """ 944 result = Bag() 945 for node in self: 946 value = node.getStaticValue() 947 if isinstance(value, Bag): 948 value = value.deepcopy() 949 result.setItem(node.label, value, dict(node.getAttr())) 950 return result 945 951 946 952 #-------------------- getNodeByAttr -------------------------------- -
gnrpy/gnr/sql/gnrsql.py
r1 r6 188 188 tblobj.trigger_onInserted(record) 189 189 190 def update(self, tblobj, record ):190 def update(self, tblobj, record, old_record=old_record): 191 191 """Update a record of the table. 192 192 @param tblobj: the table object … … 194 194 """ 195 195 tblobj._doFieldTriggers('onUpdating', record) 196 tblobj.trigger_onUpdating(record )196 tblobj.trigger_onUpdating(record, old_record=old_record) 197 197 self.adapter.update(tblobj, record) 198 tblobj.trigger_onUpdated(record )198 tblobj.trigger_onUpdated(record, old_record=old_record) 199 199 200 200 def delete(self, tblobj, record): -
gnrpy/gnr/sql/gnrsqltable.py
r1 r6 435 435 relatedTable.delete(relatedTable.record(row['pkey'], mode='bag')) 436 436 437 def update(self, record ):437 def update(self, record, old_record=None): 438 438 """This method updates a single record. 439 439 @param record_data: a dictionary that represent the record that must be updated 440 440 """ 441 self.db.update(self, record )441 self.db.update(self, record, old_record=old_record) 442 442 443 443 … … 458 458 main_record = main_changeSet 459 459 else: 460 main_record = self.record(pkey, for_update=True, mode='bag') 460 old_record = self.record(pkey, for_update=True, mode='bag') 461 main_record = old_record.deepcopy() 461 462 lastTs = changeSet.getAttr('lastTS') 462 463 changed_TS = lastTs and (lastTs != str(main_record[self.lastTS])) … … 494 495 self.insert(main_record) 495 496 else: 496 self.update(main_record )497 self.update(main_record, old_record=old_record) 497 498 498 499 for rel_name, rel_changeSet in relatedMany.items(): … … 570 571 self.trigger_onUpdated(record) 571 572 572 def trigger_onUpdating(self, record ):573 def trigger_onUpdating(self, record, old_record=None): 573 574 pass 574 575 575 def trigger_onUpdated(self, record ):576 def trigger_onUpdated(self, record, old_record=None): 576 577 pass 577 578
