The license.txt file has been replaced with LICENSE for quite a while now. INAL but it didn't seem accurate to say "hey, checkout license.txt although there's no such file". Apart from this, there were inconsistencies in the headers altogether...this change brings consistency.
54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# License: MIT. See LICENSE
|
|
|
|
import frappe
|
|
from frappe import _
|
|
import json
|
|
|
|
@frappe.whitelist()
|
|
def update_event(args, field_map):
|
|
"""Updates Event (called via calendar) based on passed `field_map`"""
|
|
args = frappe._dict(json.loads(args))
|
|
field_map = frappe._dict(json.loads(field_map))
|
|
w = frappe.get_doc(args.doctype, args.name)
|
|
w.set(field_map.start, args[field_map.start])
|
|
w.set(field_map.end, args.get(field_map.end))
|
|
w.save()
|
|
|
|
def get_event_conditions(doctype, filters=None):
|
|
"""Returns SQL conditions with user permissions and filters for event queries"""
|
|
from frappe.desk.reportview import get_filters_cond
|
|
if not frappe.has_permission(doctype):
|
|
frappe.throw(_("Not Permitted"), frappe.PermissionError)
|
|
|
|
return get_filters_cond(doctype, filters, [], with_match_conditions = True)
|
|
|
|
@frappe.whitelist()
|
|
def get_events(doctype, start, end, field_map, filters=None, fields=None):
|
|
field_map = frappe._dict(json.loads(field_map))
|
|
fields = frappe.parse_json(fields)
|
|
|
|
doc_meta = frappe.get_meta(doctype)
|
|
for d in doc_meta.fields:
|
|
if d.fieldtype == "Color":
|
|
field_map.update({
|
|
"color": d.fieldname
|
|
})
|
|
|
|
filters = json.loads(filters) if filters else []
|
|
|
|
if not fields:
|
|
fields = [field_map.start, field_map.end, field_map.title, 'name']
|
|
|
|
if field_map.color:
|
|
fields.append(field_map.color)
|
|
|
|
start_date = "ifnull(%s, '0001-01-01 00:00:00')" % field_map.start
|
|
end_date = "ifnull(%s, '2199-12-31 00:00:00')" % field_map.end
|
|
|
|
filters += [
|
|
[doctype, start_date, '<=', end],
|
|
[doctype, end_date, '>=', start],
|
|
]
|
|
fields = list({field for field in fields if field})
|
|
return frappe.get_list(doctype, fields=fields, filters=filters)
|