bench --site www.site.com uninstall-app meeting
BackUp
bench backup –with-files
bench –site backup –with-files
bench backup
bench backup-all-sites
bench –site [sitename] uninstall-app [app]
root@erp:/home/frappe/frappe-bench# bench –site xx.aaa.com –force restore 20171005_004314_883fdeba_database.sql
bench –site aa.site.com –force restore sites/aaaaa/private/backups/20180402_010035_29d7966e_database.sql
root@erp:/home/frappe/frappe-bench/apps# cd ..
root@erp:/home/frappe/frappe-bench# bench –help | grep uninstall
uninstall-app Remove app and linked modules from site
root@erp:/home/frappe/frappe-bench#
root@erp:/home/frappe/frappe-bench# bench –help | grep remove
remove-app completely remove app from bench
remove-from-installed-apps Remove app from site’s installed-apps list
| Event Name | Description |
|---|---|
setup |
Triggered once when the form is created for the first time |
before_load |
Triggered before the form is about to load |
onload |
Triggered when the form is loaded and is about to render |
refresh |
Triggered when the form is loaded and rendered. |
onload_post_render |
Triggered after the form is loaded and rendered |
validate |
Triggered before before_save |
before_save |
Triggered before save is called |
after_save |
Triggered after form is saved |
before_submit |
Triggered before submit is called |
on_submit |
Triggered after form is submitted |
before_cancel |
Triggered before cancel is called |
after_cancel |
Triggered after form is cancelled |
timeline_refresh |
Triggered after form timeline is rendered |
{fieldname}_on_form_rendered |
Triggered when a row is opened as a form in a Table field |
{fieldname} |
Triggered when the value of fieldname is changed |
https://frappeframework.com/docs/user/en/api/form
https://github.com/frappe/frappe/wiki/Developer-Cheatsheet#1-to-add-a-new-handler-on-value-change
http://pcbbc.site.mobi/templates/mobile/facade_transcoder_iframe.php?u=%2Ffrappe%2Ffrappe%2Fwiki%2FClient-Side-Scripting-Index%3Fimz_s%3Dqc84i7nnq3l78t0hqno42b7rk6&lang=en
https://wiki.erpnext.org/display/ENG/Add+a+Custom+Button
Call api to get values of another doc type from a given doctype
frappe.ui.form.on(“Document Record”, {
onload_post_render: function(frm) {
// This function is run right after a Sales Invoice is rendered and loaded
cur_frm.set_value(“document_by”,user);
if(user ==”Administrator”){alert(“FKNote: No details for the sender was fetched since there is no employee for Administrator, the system will now show you an error … in order for details to be fetched an account has to be created”)}
var container;
frappe.call({
‘method’: ‘frappe.client.get’,
‘args’: {
‘doctype’: ‘Purchase Order’,
‘fieldname’: ‘title’,
‘filters’: { ‘owner’: user, ‘name’:”PO-04565″}
}
,
callback: function(r){
// msgprint(r.message.salutation);
console.log(r)
container = r.message.company +”\n”+r.message.salutation +”. “+r.message.employee_name +”\n”+r.message.designation +”\n”+ r.message.company_email+”\n”+ r.message.cell_number
cur_frm.set_value(“sender_details”,container);
cur_frm.set_value(fieldname, r.message);
}
});
// https://github.com/frappe/frappe/wiki/Developer-Cheatsheet
// This listener is added to the customer field, listening for a keypress event
// cur_frm.fields_dict.customer.$input.on(“keypress”, function(evt){
// Code specified here will run when a key is pressed on the customer field.
// });
}
});
//var x = document.getElementsByClassName(“ellipsis title-text”);
//var bb = x[0].innerHTML;
//alert(bb)
//if( ! bb.indexOf(“Document”) !== -1){}else{
//cur_frm.set_value(“document_ref_test”, x[0].innerHTML );
//}
//var ss = document.getElementsByClassName(“control-input”);
//ss[0].innerHTML = bb;
//https://pcbbc.site.mobi/templates/mobile/facade_transcoder_iframe.php?u=%2Ffrappe%2Ffrappe%2Fwiki%2FClient-Side-Scripting-Index%3Fimz_s%3Dqc84i7nnq3l78t0hqno42b7rk6&lang=en