diff --git a/frappe/email/queue.py b/frappe/email/queue.py index bc02c6be32..b593dd9a21 100755 --- a/frappe/email/queue.py +++ b/frappe/email/queue.py @@ -3,9 +3,8 @@ import frappe from frappe import _, msgprint -from frappe.query_builder import DocType, Interval -from frappe.query_builder.functions import Now from frappe.utils import cint, get_url, now_datetime +from frappe.utils.data import getdate from frappe.utils.verified_command import get_signed_params, verify_request @@ -16,26 +15,17 @@ def get_emails_sent_this_month(email_account=None): if email_account=None, email account filter is not applied while counting """ - q = """ - SELECT - COUNT(*) - FROM - `tabEmail Queue` - WHERE - `status`='Sent' - AND - EXTRACT(YEAR_MONTH FROM `creation`) = EXTRACT(YEAR_MONTH FROM NOW()) - """ + today = getdate() + month_start = today.replace(day=1) - q_args = {} - if email_account is not None: - if email_account: - q += " AND email_account = %(email_account)s" - q_args["email_account"] = email_account - else: - q += " AND (email_account is null OR email_account='')" + filters = { + "status": "Sent", + "creation": [">=", str(month_start)], + } + if email_account: + filters["email_account"] = email_account - return frappe.db.sql(q, q_args)[0][0] + return frappe.db.count("Email Queue", filters=filters) def get_emails_sent_today(email_account=None): diff --git a/frappe/utils/__init__.py b/frappe/utils/__init__.py index e2ec445be4..f84ad5a0da 100644 --- a/frappe/utils/__init__.py +++ b/frappe/utils/__init__.py @@ -748,7 +748,7 @@ def get_site_info(): kwargs = { "fields": ["user", "creation", "full_name"], - "filters": {"Operation": "Login", "Status": "Success"}, + "filters": {"operation": "Login", "status": "Success"}, "limit": "10", }