_before* and _after* are lists, cleaner code

This commit is contained in:
Massimo Di Pierro
2012-03-16 12:33:19 -05:00
parent 4da3a5f976
commit 4600da0954
2 changed files with 17 additions and 22 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.7 (2012-03-16 12:02:20) dev
Version 1.99.7 (2012-03-16 12:33:04) dev
+16 -21
View File
@@ -6556,12 +6556,12 @@ class Table(dict):
db and db._adapter.trigger_name(tablename)
self._common_filter = args.get('common_filter', None)
self._before_create = None
self._before_update = None
self._before_delete = None
self._after_create = None
self._after_update = None
self._after_delete = None
self._before_create = []
self._before_update = [lambda self,fs:self.delete_uploaded_files(fs)]
self._before_delete = [lambda self:self.delete_uploaded_files()]
self._after_create = []
self._after_update = []
self._after_delete = []
primarykey = args.get('primarykey', None)
fieldnames,newfields=set(),[]
@@ -6840,9 +6840,9 @@ class Table(dict):
return self._db._adapter._insert(self,self._listify(fields))
def insert(self, **fields):
self._before_create and self._before_create(fields)
[f(fields) for f in self._before_create]
ret = self._db._adapter.insert(self,self._listify(fields))
ret and self._before_create and self._after_create(fields)
ret and [f(fields) for f in self._before_create]
return ret
def validate_and_insert(self,**fields):
@@ -6878,9 +6878,9 @@ class Table(dict):
here items is a list of dictionaries
"""
items = [self._listify(item) for item in items]
self._before_create and [self._before_create(item) for item in items]
[[f(item) for item in items] for f in self._before_create]
ret = self._db._adapter.bulk_insert(self,items)
self._after_create and [self._after_create(item) for item in items]
ret and [[f(item) for item in items] for f in self._after_create]
return ret
def _truncate(self, mode = None):
@@ -7600,10 +7600,9 @@ class Set(object):
def delete(self):
tablename=self.db._adapter.get_table(self.query)
table = self.db[tablename]
if not(table._before_delete and table._before_delete(self)):
self.delete_uploaded_files()
[f(self) for f in table._before_delete]
ret = self.db._adapter.delete(tablename,self.query)
ret and table and table._after_delete and table._after_delete(self)
ret and [f(self) for f in table._after_delete]
return ret
def update(self, **update_fields):
@@ -7612,11 +7611,9 @@ class Set(object):
fields = table._listify(update_fields,update=True)
if not fields:
raise SyntaxError, "No fields to update"
if not(table._before_update and
table._before_update(self,update_fields)):
self.delete_uploaded_files(update_fields)
[f(self,update_fields) for f in table._before_update]
ret = self.db._adapter.update(tablename,self.query,fields)
ret and table._after_update and table._after_update(self,update_fields)
ret and [f(self,update_fields) for f in table._after_update]
return ret
def validate_and_update(self, **update_fields):
@@ -7637,11 +7634,9 @@ class Set(object):
if response.errors:
response.updated = None
else:
if not(table._before_update and
table._before_update(self,update_fields)):
self.delete_uploaded_files(new_fields)
[f(self,new_fields) for f in table._before_update]
ret = self.db._adapter.update(tablename,self.query,fields)
ret and table._after_update and table._after_update(self,update_fields)
ret and [f(self,new_fields) for f in table._after_update]
response.update = ret
return response