Auto repeat improvement

This commit is contained in:
Charles-Henri Decultot 2018-09-10 12:38:15 +00:00
parent d2ce42fce4
commit b6157a3b72
3 changed files with 148 additions and 10 deletions

View file

@ -51,14 +51,14 @@ frappe.ui.form.on('Auto Repeat', {
}
if(frm.doc.status == 'Stopped') {
frm.add_custom_button(__("Resume"),
frm.add_custom_button(__("Restart"),
function() {
frm.events.stop_resume_auto_repeat(frm, "Resumed");
}
);
}
if(frm.doc.status!= 0){
if(frm.doc.docstatus!= 0 && !frm.doc.status.includes('Stopped', 'Cancelled') && frm.doc.next_schedule_date >= frappe.datetime.get_today()){
frappe.auto_repeat.render_schedule(frm);
}
}
@ -107,10 +107,31 @@ frappe.ui.form.on('Auto Repeat', {
}
}
});
},
preview_message: function(frm) {
if (frm.doc.message) {
frappe.call({
method: "frappe.desk.doctype.auto_repeat.auto_repeat.generate_message_preview",
args: {
reference_dt: frm.doc.reference_doctype,
reference_doc: frm.doc.reference_document,
subject: frm.doc.subject,
message: frm.doc.message
},
callback: function(r) {
if(r.message) {
frappe.msgprint(r.message.message, r.message.subject)
}
}
});
} else {
frappe.msgprint(__("Please setup a message first"), __("Message not setup"))
}
}
});
frappe.auto_repeat.render_schedule = function(frm) {
frappe.auto_repeat.render_schedule = function(frm) {
frappe.call({
method: "get_auto_repeat_schedule",
doc: frm.doc

View file

@ -143,6 +143,72 @@
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "reference_party_doctype",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Reference Party Doctype",
"length": 0,
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "reference_party",
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Reference Party",
"length": 0,
"no_copy": 0,
"options": "reference_party_doctype",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
@ -563,7 +629,7 @@
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
@ -595,7 +661,7 @@
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
@ -629,7 +695,7 @@
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
@ -694,7 +760,7 @@
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
@ -727,7 +793,7 @@
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
@ -827,7 +893,7 @@
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
@ -857,6 +923,38 @@
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "preview_message",
"fieldtype": "Button",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Preview Message",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"translatable": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_in_quick_entry": 0,
@ -965,7 +1063,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2018-07-13 15:14:34.524098",
"modified": "2018-09-10 14:11:56.389734",
"modified_by": "Administrator",
"module": "Desk",
"name": "Auto Repeat",

View file

@ -26,6 +26,7 @@ class AutoRepeat(Document):
self.validate_dates()
self.validate_next_schedule_date()
self.validate_email_id()
self.link_party()
validate_template(self.subject or "")
validate_template(self.message or "")
@ -124,6 +125,14 @@ class AutoRepeat(Document):
return schedule_details
def link_party(self):
reference = frappe.get_meta(self.reference_doctype)
for field in reference.fields:
if field.options in ['Customer', 'Supplier', 'Employee']:
self.reference_party_doctype = field.options
self.reference_party = frappe.db.get_value(self.reference_doctype, self.reference_document, field.fieldname)
break
def get_next_schedule_date(start_date, frequency, repeat_on_day):
mcount = month_map.get(frequency)
if mcount:
@ -376,3 +385,13 @@ def update_reference(docname, reference):
except Exception as e:
raise e
return "error"
@frappe.whitelist()
def generate_message_preview(reference_dt, reference_doc, message=None, subject=None):
doc = frappe.get_doc(reference_dt, reference_doc)
subject_preview = _("Please add a subject to your email")
msg_preview = frappe.render_template(message, {'doc': doc})
if subject:
subject_preview = frappe.render_template(subject, {'doc': doc})
return {'message': msg_preview, 'subject': subject_preview}