diff --git a/frappe/__init__.py b/frappe/__init__.py index 220199eb13..f018f4c742 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json from .exceptions import * from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template -__version__ = '10.0.11' +__version__ = '10.0.12' __title__ = "Frappe Framework" local = Local() diff --git a/frappe/core/doctype/communication/communication.py b/frappe/core/doctype/communication/communication.py index 70ce25ae9f..1e8bac622f 100644 --- a/frappe/core/doctype/communication/communication.py +++ b/frappe/core/doctype/communication/communication.py @@ -70,7 +70,8 @@ class Communication(Document): if not (self.reference_doctype and self.reference_name): return - if self.reference_doctype == "Communication" and self.sent_or_received == "Sent": + if self.reference_doctype == "Communication" and self.sent_or_received == "Sent" and \ + self.communication_type != 'Comment': frappe.db.set_value("Communication", self.reference_name, "status", "Replied") if self.communication_type in ("Communication", "Comment"): diff --git a/frappe/core/doctype/communication/email.py b/frappe/core/doctype/communication/email.py index f37e351428..bac3c4ed35 100755 --- a/frappe/core/doctype/communication/email.py +++ b/frappe/core/doctype/communication/email.py @@ -374,9 +374,6 @@ def get_bcc(doc, recipients=None, fetched_from_email_account=False): bcc.append(get_owner_email(doc)) bcc += get_assignees(doc) - if getattr(doc, "send_me_a_copy", False) and doc.sender not in bcc: - bcc.append(doc.sender) - if bcc: exclude = [] exclude += [d[0] for d in frappe.db.get_all("User", ["name"], {"thread_notify": 0}, as_list=True)] diff --git a/frappe/core/doctype/feedback_trigger/feedback_trigger.py b/frappe/core/doctype/feedback_trigger/feedback_trigger.py index e40f668d58..e2265913ad 100644 --- a/frappe/core/doctype/feedback_trigger/feedback_trigger.py +++ b/frappe/core/doctype/feedback_trigger/feedback_trigger.py @@ -116,7 +116,8 @@ def get_feedback_request_details(reference_doctype, reference_name, trigger="Man frappe.msgprint(_("At least one reply is mandatory before requesting feedback")) return None - if recipients and frappe.safe_eval(feedback_trigger.condition, None, context): + if recipients and (not feedback_trigger.condition or \ + frappe.safe_eval(feedback_trigger.condition, None, context)): subject = feedback_trigger.subject context.update({ "feedback_trigger": feedback_trigger }) diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 6e558b87dd..5349823a2c 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -308,7 +308,7 @@ class DatabaseQuery(object): if f.operator.lower() == 'between' and \ (f.fieldname in ('creation', 'modified') or (df and (df.fieldtype=="Date" or df.fieldtype=="Datetime"))): - value = get_between_date_filter(f.value) + value = get_between_date_filter(f.value, df) fallback = "'0000-00-00 00:00:00'" elif df and df.fieldtype=="Date": @@ -584,20 +584,27 @@ def is_parent_only_filter(doctype, filters): return only_parent_doctype -def get_between_date_filter(value): +def get_between_date_filter(value, df=None): ''' return the formattted date as per the given example [u'2017-11-01', u'2017-11-03'] => '2017-11-01 00:00:00.000000' AND '2017-11-04 00:00:00.000000' ''' from_date = None to_date = None + date_format = "%Y-%m-%d %H:%M:%S.%f" + + if df: + date_format = "%Y-%m-%d %H:%M:%S.%f" if df.fieldtype == 'Datetime' else "%Y-%m-%d" if value and isinstance(value, (list, tuple)): if len(value) >= 1: from_date = value[0] if len(value) >= 2: to_date = value[1] + if not df or (df and df.fieldtype == 'Datetime'): + to_date = add_to_date(to_date,days=1) + data = "'%s' AND '%s'" % ( - get_datetime(from_date).strftime("%Y-%m-%d %H:%M:%S.%f"), - add_to_date(get_datetime(to_date),days=1).strftime("%Y-%m-%d %H:%M:%S.%f")) + get_datetime(from_date).strftime(date_format), + get_datetime(to_date).strftime(date_format)) return data