如何禁止更改记录
假设我们有一个的数据表,它含有一个 boolean 类型的字段 “posted” 。 如果该字段的值是 真(true) ,就必须禁止或删除记录。
我们可以通过编写 on_after_scroll 事件处理程序,同时结合使用 permissions 的属性来实现。
function on_after_scroll(item) {
if (item.rec_count) {
item.permissions.can_edit = !item.posted.value;
item.permissions.can_delete = !item.posted.value;
if (item.view_form) {
item.view_form.find("#delete-btn").prop("disabled", item.posted.value);
}
}
}
在上面的事件处理程序里,我们检查 “posted” 字段的值, 然后设置 permissions 的属性来实现。
我们也可以在服务端的模块中编写 on_apply 事件处理程序来实现同样的目的:
def on_apply(item, delta, params, connection):
for d in delta:
if d.posted.old_value:
raise Exception('Document posted. No change allowed')