@@ -6,6 +6,15 @@ | |||||
"doctype": "DocType", | "doctype": "DocType", | ||||
"document_type": "System", | "document_type": "System", | ||||
"fields": [ | "fields": [ | ||||
{ | |||||
"default": "0", | |||||
"fieldname": "seen", | |||||
"fieldtype": "Check", | |||||
"hidden": 1, | |||||
"label": "Seen", | |||||
"permlevel": 0, | |||||
"precision": "" | |||||
}, | |||||
{ | { | ||||
"fieldname": "method", | "fieldname": "method", | ||||
"fieldtype": "Data", | "fieldtype": "Data", | ||||
@@ -22,7 +31,7 @@ | |||||
], | ], | ||||
"icon": "icon-warning-sign", | "icon": "icon-warning-sign", | ||||
"idx": 1, | "idx": 1, | ||||
"modified": "2015-02-05 05:11:46.339879", | |||||
"modified": "2015-05-28 02:49:12.819934", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Core", | "module": "Core", | ||||
"name": "Scheduler Log", | "name": "Scheduler Log", | ||||
@@ -9,4 +9,11 @@ import frappe | |||||
from frappe.model.document import Document | from frappe.model.document import Document | ||||
class SchedulerLog(Document): | class SchedulerLog(Document): | ||||
pass | |||||
def onload(self): | |||||
if not self.seen: | |||||
self.seen = 1 | |||||
self.save() | |||||
def set_old_logs_as_seen(): | |||||
frappe.db.sql("""update `tabScheduler Log` set seen=1 | |||||
where ifnull(seen, 0)=0 and datediff(curdate(), creation) > 7""") |
@@ -0,0 +1,11 @@ | |||||
frappe.listview_settings['Scheduler Log'] = { | |||||
add_fields: ["seen"], | |||||
get_indicator: function(doc) { | |||||
if(cint(doc.seen)) { | |||||
return [__("Seen"), "green", "seen,=,1"]; | |||||
} else { | |||||
return [__("Not Seen"), "red", "seen,=,0"]; | |||||
} | |||||
}, | |||||
order_by: "seen asc, modified desc", | |||||
}; |
@@ -0,0 +1,12 @@ | |||||
# -*- coding: utf-8 -*- | |||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors | |||||
# See license.txt | |||||
from __future__ import unicode_literals | |||||
import frappe | |||||
import unittest | |||||
# test_records = frappe.get_test_records('Scheduler Log') | |||||
class TestSchedulerLog(unittest.TestCase): | |||||
pass |
@@ -6,6 +6,9 @@ import frappe | |||||
def get_notification_config(): | def get_notification_config(): | ||||
return { | return { | ||||
"for_doctype": { | |||||
"Scheduler Log": {"seen": 0}, | |||||
}, | |||||
"for_module_doctypes": { | "for_module_doctypes": { | ||||
"ToDo": "To Do", | "ToDo": "To Do", | ||||
"Event": "Calendar", | "Event": "Calendar", | ||||
@@ -119,6 +119,7 @@ scheduler_events = { | |||||
"daily": [ | "daily": [ | ||||
"frappe.email.bulk.clear_outbox", | "frappe.email.bulk.clear_outbox", | ||||
"frappe.desk.notifications.clear_notifications", | "frappe.desk.notifications.clear_notifications", | ||||
"frappe.core.doctype.scheduler_log.scheduler_log.set_old_logs_as_seen", | |||||
"frappe.desk.doctype.event.event.send_event_digest", | "frappe.desk.doctype.event.event.send_event_digest", | ||||
"frappe.sessions.clear_expired_sessions", | "frappe.sessions.clear_expired_sessions", | ||||
"frappe.email.doctype.email_alert.email_alert.trigger_daily_alerts", | "frappe.email.doctype.email_alert.email_alert.trigger_daily_alerts", | ||||
@@ -79,3 +79,4 @@ execute:frappe.db.sql("update tabUser set new_password='' where ifnull(new_passw | |||||
frappe.patches.v5_0.fix_text_editor_file_urls | frappe.patches.v5_0.fix_text_editor_file_urls | ||||
execute:frappe.db.sql("update `tabComment` set comment_type='Comment' where comment_doctype='Blog Post' and ifnull(comment_type, '')=''") | execute:frappe.db.sql("update `tabComment` set comment_type='Comment' where comment_doctype='Blog Post' and ifnull(comment_type, '')=''") | ||||
frappe.patches.v5_0.modify_session | frappe.patches.v5_0.modify_session | ||||
frappe.patches.v5_0.expire_old_scheduler_logs |
@@ -0,0 +1,7 @@ | |||||
import frappe | |||||
def execute(): | |||||
frappe.reload_doctype("Scheduler Log") | |||||
from frappe.core.doctype.scheduler_log.scheduler_log import set_old_logs_as_seen | |||||
set_old_logs_as_seen() |
@@ -15,7 +15,8 @@ frappe.ui.form.on = frappe.ui.form.on_change = function(doctype, fieldname, hand | |||||
// add last handler to events so it can be called as | // add last handler to events so it can be called as | ||||
// frm.events.handler(frm) | // frm.events.handler(frm) | ||||
cur_frm.events[fieldname] = handler; | |||||
if(cur_frm && cur_frm.doctype===doctype) | |||||
cur_frm.events[fieldname] = handler; | |||||
} | } | ||||
if (!handler && $.isPlainObject(fieldname)) { | if (!handler && $.isPlainObject(fieldname)) { | ||||
@@ -12,10 +12,16 @@ $.extend(frappe.datetime, { | |||||
return moment.tz(date, sys_defaults.time_zone).utc() | return moment.tz(date, sys_defaults.time_zone).utc() | ||||
.utcOffset(moment.user_utc_offset).format(moment.defaultDatetimeFormat); | .utcOffset(moment.user_utc_offset).format(moment.defaultDatetimeFormat); | ||||
}, | }, | ||||
convert_to_system_tz: function(date) { | convert_to_system_tz: function(date) { | ||||
return moment(date).utc() | return moment(date).utc() | ||||
.utcOffset(moment.system_utc_offset).format(moment.defaultDatetimeFormat); | .utcOffset(moment.system_utc_offset).format(moment.defaultDatetimeFormat); | ||||
}, | }, | ||||
is_timezone_same: function() { | |||||
return moment().tz(sys_defaults.time_zone).utcOffset() === moment().utcOffset(); | |||||
}, | |||||
str_to_obj: function(d) { | str_to_obj: function(d) { | ||||
return moment(d, moment.defaultDatetimeFormat)._d; | return moment(d, moment.defaultDatetimeFormat)._d; | ||||
}, | }, | ||||