Force call of on_write after action

Use a better reload behavior to group calls
This commit is contained in:
Cédric Krier committed 2009-03-15 23:50:29 +01:00
1 parent fa179abf8e
commit a61550e1fd
6 files changed
+17 -9

No files matched your search

+10 -4
View File
@@ -109,17 +109,23 @@ class ModelRecordGroup(SignalEvent):
saved = model.save()
self.writen(saved)
def writen(self, edited_id):
ids = self.on_write_ids([edited_id])
def writen(self, ids):
if isinstance(ids, (int, long)):
ids = [ids]
ids = self.on_write_ids(ids)
if not ids:
return
self.reload(ids)
return ids
def reload(self, ids):
models = []
for obj_id in ids:
for model in self.models:
if model.id == obj_id:
model.reload()
if model.id == obj_id and not model.modified:
models.append(model)
for model in models:
model._loaded = False
def on_write_ids(self, ids):
if not self.on_write:
+3 -1
View File
@@ -452,9 +452,11 @@ class Screen(SignalEvent):
res = True
return res
def reload(self):
def reload(self, writen=False):
ids = self.sel_ids_get()
self.models.reload(ids)
if writen:
self.models.writen(ids)
if self.parent:
self.parent.reload()
self.display()
+1 -1
View File
@@ -182,7 +182,7 @@ class ViewForm(ParserView):
}
value = Action._exec_action(act, self.window, data, {})
if atype in ('print', 'action'):
self.screen.reload()
self.screen.reload(writen=True)
return value
def __getitem__(self, name):
@@ -82,7 +82,7 @@ class Button(object):
}, self.form.window, context=ctx)
else:
raise Exception('Unallowed button type')
self.form.screen.reload()
self.form.screen.reload(writen=True)
else:
if self.form.screen.form:
self.form.screen.form.message_info(
+1 -1
View File
@@ -277,7 +277,7 @@ class ViewList(ParserView):
'ids': obj_ids,
}
value = Action._exec_action(act, self.window, data, {})
self.screen.reload()
self.screen.reload(writen=True)
return value
@@ -866,7 +866,7 @@ class Button(object):
}, self.window, context=ctx)
else:
raise Exception('Unallowed button type')
self.screen.reload()
self.screen.reload(writen=True)
else:
if self.screen.form:
self.screen.form.message_info(