table._before_* override follow action if returns True
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 1.99.7 (2012-03-16 12:41:06) dev
|
Version 1.99.7 (2012-03-16 13:01:54) dev
|
||||||
|
|||||||
+13
-10
@@ -6840,7 +6840,7 @@ class Table(dict):
|
|||||||
return self._db._adapter._insert(self,self._listify(fields))
|
return self._db._adapter._insert(self,self._listify(fields))
|
||||||
|
|
||||||
def insert(self, **fields):
|
def insert(self, **fields):
|
||||||
[f(fields) for f in self._before_create]
|
if any(f(fields) for f in self._before_create): return 0
|
||||||
ret = self._db._adapter.insert(self,self._listify(fields))
|
ret = self._db._adapter.insert(self,self._listify(fields))
|
||||||
ret and [f(fields) for f in self._before_create]
|
ret and [f(fields) for f in self._before_create]
|
||||||
return ret
|
return ret
|
||||||
@@ -6878,7 +6878,7 @@ class Table(dict):
|
|||||||
here items is a list of dictionaries
|
here items is a list of dictionaries
|
||||||
"""
|
"""
|
||||||
items = [self._listify(item) for item in items]
|
items = [self._listify(item) for item in items]
|
||||||
[[f(item) for item in items] for f in self._before_create]
|
if any(f(item) for item in items for f in self._before_create):return 0
|
||||||
ret = self._db._adapter.bulk_insert(self,items)
|
ret = self._db._adapter.bulk_insert(self,items)
|
||||||
ret and [[f(item) for item in items] for f in self._after_create]
|
ret and [[f(item) for item in items] for f in self._after_create]
|
||||||
return ret
|
return ret
|
||||||
@@ -7600,7 +7600,7 @@ class Set(object):
|
|||||||
def delete(self):
|
def delete(self):
|
||||||
tablename=self.db._adapter.get_table(self.query)
|
tablename=self.db._adapter.get_table(self.query)
|
||||||
table = self.db[tablename]
|
table = self.db[tablename]
|
||||||
[f(self) for f in table._before_delete]
|
if any(f(self) for f in table._before_delete): return 0
|
||||||
ret = self.db._adapter.delete(tablename,self.query)
|
ret = self.db._adapter.delete(tablename,self.query)
|
||||||
ret and [f(self) for f in table._after_delete]
|
ret and [f(self) for f in table._after_delete]
|
||||||
return ret
|
return ret
|
||||||
@@ -7608,7 +7608,7 @@ class Set(object):
|
|||||||
def update(self, **update_fields):
|
def update(self, **update_fields):
|
||||||
tablename = self.db._adapter.get_table(self.query)
|
tablename = self.db._adapter.get_table(self.query)
|
||||||
table = self.db[tablename]
|
table = self.db[tablename]
|
||||||
[f(self,update_fields) for f in table._before_update]
|
if any(f(self,update_fields) for f in table._before_update): return 0
|
||||||
fields = table._listify(update_fields,update=True)
|
fields = table._listify(update_fields,update=True)
|
||||||
if not fields: raise SyntaxError, "No fields to update"
|
if not fields: raise SyntaxError, "No fields to update"
|
||||||
ret = self.db._adapter.update(tablename,self.query,fields)
|
ret = self.db._adapter.update(tablename,self.query,fields)
|
||||||
@@ -7630,11 +7630,13 @@ class Set(object):
|
|||||||
if response.errors:
|
if response.errors:
|
||||||
response.updated = None
|
response.updated = None
|
||||||
else:
|
else:
|
||||||
[f(self,new_fields) for f in table._before_update]
|
if not any(f(self,new_fields) for f in table._before_update):
|
||||||
fields = table._listify(new_fields,update=True)
|
fields = table._listify(new_fields,update=True)
|
||||||
if not fields: raise SyntaxError, "No fields to update"
|
if not fields: raise SyntaxError, "No fields to update"
|
||||||
ret = self.db._adapter.update(tablename,self.query,fields)
|
ret = self.db._adapter.update(tablename,self.query,fields)
|
||||||
ret and [f(self,new_fields) for f in table._after_update]
|
ret and [f(self,new_fields) for f in table._after_update]
|
||||||
|
else:
|
||||||
|
ret = 0
|
||||||
response.update = ret
|
response.update = ret
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@@ -7649,7 +7651,7 @@ class Set(object):
|
|||||||
and table[f].uploadfield == True
|
and table[f].uploadfield == True
|
||||||
and table[f].autodelete]
|
and table[f].autodelete]
|
||||||
if not fields:
|
if not fields:
|
||||||
return
|
return False
|
||||||
for record in self.select(*[table[f] for f in fields]):
|
for record in self.select(*[table[f] for f in fields]):
|
||||||
for fieldname in fields:
|
for fieldname in fields:
|
||||||
field = table[fieldname]
|
field = table[fieldname]
|
||||||
@@ -7672,6 +7674,7 @@ class Set(object):
|
|||||||
oldpath = os.path.join(uploadfolder, oldname)
|
oldpath = os.path.join(uploadfolder, oldname)
|
||||||
if os.path.exists(oldpath):
|
if os.path.exists(oldpath):
|
||||||
os.unlink(oldpath)
|
os.unlink(oldpath)
|
||||||
|
return False
|
||||||
|
|
||||||
def update_record(pack, a=None):
|
def update_record(pack, a=None):
|
||||||
(colset, table, id) = pack
|
(colset, table, id) = pack
|
||||||
|
|||||||
Reference in New Issue
Block a user