@@ -198,6 +198,13 @@ def __repr__(self):
198198 def __iter__ (self ):
199199 return iter (dict (self .row ).items ())
200200
201+ @if_not_deleted
202+ def __serialize__ (self , global_data ):
203+ if _add_queue or _update_queue or _delete_queue :
204+ print ("AutoBatch: process_batch triggered early by row __serialize__" )
205+ process_batch ()
206+ return self .__dict__
207+
201208 @property
202209 def cache (self ):
203210 return self ._cache
@@ -219,6 +226,12 @@ def __getitem__(self, index):
219226 def __len__ (self ):
220227 return len (self ._search_iterator )
221228
229+ def __serialize__ (self , global_data ):
230+ if _add_queue or _update_queue or _delete_queue :
231+ print ("AutoBatch: process_batch triggered early by search iterator __serialize__" )
232+ process_batch ()
233+ return self .__dict__
234+
222235
223236@portable_class
224237class BatchTable (anvil .tables .Table ):
@@ -283,6 +296,12 @@ def get_batch_row(self, row):
283296
284297 def retrieve_batch_row (self , row ):
285298 return self ._batch_rows [row .get_id ()]
299+
300+ def __serialize__ (self , global_data ):
301+ if _add_queue or _update_queue or _delete_queue :
302+ print ("AutoBatch: process_batch triggered early by table __serialize__" )
303+ process_batch ()
304+ return self .__dict__
286305
287306 def clear_cache (self ):
288307 for batch_row in self ._batch_rows .values ():
@@ -294,7 +313,6 @@ def of_row(row):
294313 return get_table_by_id (row ._table_id )
295314
296315
297- @portable_class
298316class BatchTables :
299317 def __init__ (self ):
300318 self ._name_list = list (anvil .tables .app_tables )
0 commit comments