Custom Script - set_df_property with read_only not saving after user reload

Hi All,
Finding on my dev instance that when I use the below script, the field correctly becomes read only and saves (document reloads immediately on save). I can reload the document and it remains read only, however if I log out or reload via the user menu the read only flag appears to go.

frappe.ui.form.on('Stages Variation Table',	{
variation_sign_off_check: function(frm) {
if (cur_frm.doc.variation_sign_off_check==1) {
	cur_frm.set_df_property("variation_sign_off_check", "read_only", cur_frm.doc.__islocal ? 0 : 1);
	cur_frm.save();
	}
}
});

@OneiricIT you also need to call this on refresh event,

OK thanks @rmehta - added the below in addition and tested OK

frappe.ui.form.on(‘Stages’, ‘refresh’, function(frm) {
if (cur_frm.doc.stage_one_check==1) {
cur_frm.set_df_property(“stage_one_check”, “read_only”, cur_frm.doc.__islocal ? 0 : 1);
}