refactor: moved from raw queries to frappe orm in

core
This commit is contained in:
Aradhya-Tripathi 2021-07-21 19:15:38 +05:30
parent 3e2acb1cb6
commit fa6cb14ee5
10 changed files with 106 additions and 50 deletions

View file

@ -27,12 +27,15 @@ def update_feed(doc, method=None):
feed = frappe._dict(feed)
doctype = feed.doctype or doc.doctype
name = feed.name or doc.name
# delete earlier feed
frappe.db.sql("""delete from `tabActivity Log`
where
reference_doctype=%s and reference_name=%s
and link_doctype=%s""", (doctype, name,feed.link_doctype))
frappe.db.delete(doctype="Activity Log", conditions={"reference_doctype": doctype,
"reference_name": name,
"link_doctype": name.feed.link_doctype})
# frappe.db.sql("""delete from `tabActivity Log`
# where
# reference_doctype=%s and reference_name=%s
# and link_doctype=%s""", (doctype, name,feed.link_doctype))
frappe.get_doc({
"doctype": "Activity Log",
"reference_doctype": doctype,

View file

@ -34,7 +34,8 @@ class DomainSettings(Document):
all_domains = list((frappe.get_hooks('domains') or {}))
def remove_role(role):
frappe.db.sql('delete from `tabHas Role` where role=%s', role)
frappe.db.delete(doctype="Has Role", conditions={"role": role})
# frappe.db.sql('delete from `tabHas Role` where role=%s', role)
frappe.set_value('Role', role, 'disabled', 1)
for domain in all_domains:

View file

@ -13,6 +13,7 @@ class LogSettings(Document):
self.clear_email_queue()
def clear_error_logs(self):
# frappe.db.delete(doctype="Error Log", conditions="")
frappe.db.sql(""" DELETE FROM `tabError Log`
WHERE `creation` < (NOW() - INTERVAL '{0}' DAY)
""".format(self.clear_error_log_after))

View file

@ -81,9 +81,14 @@ class TestReport(unittest.TestCase):
self.assertDictEqual({'name': 'Administrator', 'user_type': 'System User', 'email': 'admin@example.com'}, admin_dict)
def test_report_permissions(self):
frappe.set_user('test@example.com')
frappe.db.sql("""delete from `tabHas Role` where parent = %s
and role = 'Test Has Role'""", frappe.session.user, auto_commit=1)
frappe.db.delete(doctype="Has Role", conditions={
"parent": frappe.session.user,
"role": "Test Has Role"
})
# frappe.db.sql("""delete from `tabHas Role` where parent = %s
# and role = 'Test Has Role'""", frappe.session.user, auto_commit=1)
if not frappe.db.exists('Role', 'Test Has Role'):
role = frappe.get_doc({

View file

@ -38,7 +38,8 @@ class Role(Document):
self.set(key, 0)
def remove_roles(self):
frappe.db.sql("delete from `tabHas Role` where role = %s", self.name)
frappe.db.delete(doctype="Has Role", conditions={"role": self.name})
# frappe.db.sql("delete from `tabHas Role` where role = %s", self.name)
frappe.clear_cache()
def on_update(self):

View file

@ -13,7 +13,6 @@ from frappe.model.document import Document
from frappe.utils import get_datetime, now_datetime
from frappe.utils.background_jobs import enqueue, get_jobs
class ScheduledJobType(Document):
def autoname(self):
self.name = ".".join(self.method.split(".")[-2:])
@ -110,7 +109,11 @@ class ScheduledJobType(Document):
return 'long' if ('Long' in self.frequency) else 'default'
def on_trash(self):
frappe.db.sql('delete from `tabScheduled Job Log` where scheduled_job_type=%s', self.name)
frappe.db.delete(doctype="Scheduled Job Log", conditions={
"scheduled_job_type": self.name
})
# frappe.db.sql('delete from `tabScheduled Job Log` where scheduled_job_type=%s', self.name)
@frappe.whitelist()

View file

@ -17,7 +17,7 @@ from frappe.website.utils import is_signup_disabled
from frappe.rate_limiter import rate_limit
from frappe.utils.background_jobs import enqueue
from frappe.core.doctype.user_type.user_type import user_linked_with_permission_on_doctype
from frappe.database.database import Database
STANDARD_USERS = ("Guest", "Administrator")
@ -367,23 +367,30 @@ class User(Document):
if getattr(frappe.local, "login_manager", None):
frappe.local.login_manager.logout(user=self.name)
# delete todos
frappe.db.sql("""DELETE FROM `tabToDo` WHERE `owner`=%s""", (self.name,))
frappe.db.delete("Todo", {"owner": self.name})
# frappe.db.sql("""DELETE FROM `tabToDo` WHERE `owner`=%s""", (self.name,))
frappe.db.sql("""UPDATE `tabToDo` SET `assigned_by`=NULL WHERE `assigned_by`=%s""",
(self.name,))
# delete events
frappe.db.sql("""delete from `tabEvent` where owner=%s
and event_type='Private'""", (self.name,))
frappe.db.delete("Event", {"owner": self.name, "event_type": "Private"})
# frappe.db.sql("""delete from `tabEvent` where owner=%s
# and event_type='Private'""", (self.name,))
# delete shares
frappe.db.sql("""delete from `tabDocShare` where user=%s""", self.name)
frappe.db.delete("DocShare", {"user": self.name})
# frappe.db.sql("""delete from `tabDocShare` where user=%s""", self.name)
# delete messages
frappe.db.sql("""delete from `tabCommunication`
where communication_type in ('Chat', 'Notification')
and reference_doctype='User'
and (reference_name=%s or owner=%s)""", (self.name, self.name))
# TODO: CHANGE THIS FROM ABHISHEK KA PYPIKA
frappe.db.delete("Communication", {
"reference_doctype": "User",
"communication_type": ("in", ("Chat", "Notification")),
})
# frappe.db.sql("""delete from `tabCommunication`
# where communication_type in ('Chat', 'Notification')
# and reference_doctype='User'
# and (reference_name=%s or owner=%s)""", (self.name, self.name))
# unlink contact
frappe.db.sql("""update `tabContact`

View file

@ -10,12 +10,19 @@ import unittest
class TestUserPermission(unittest.TestCase):
def setUp(self):
frappe.db.sql("""DELETE FROM `tabUser Permission`
WHERE `user` in (
'test_bulk_creation_update@example.com',
'test_user_perm1@example.com',
'nested_doc_user@example.com')""")
frappe.delete_doc_if_exists("DocType", "Person")
frappe.db.delete("User Permission", {
"user": ("in", ("test_bulk_creation_update@example.com",
"test_user_perm1@example.com",
"nested_doc_user@example.com"))
})
# frappe.db.sql("""DELETE FROM `tabUser Permission`
# WHERE `user` in (
# 'test_bulk_creation_update@example.com',
# 'test_user_perm1@example.com',
# 'nested_doc_user@example.com')""")
# frappe.delete_doc_if_exists("DocType", "Person")
frappe.db.sql_ddl("DROP TABLE IF EXISTS `tabPerson`")
frappe.delete_doc_if_exists("DocType", "Doc A")
frappe.db.sql_ddl("DROP TABLE IF EXISTS `tabDoc A`")

View file

@ -182,7 +182,11 @@ def clear_user_permissions(user, for_doctype):
frappe.only_for('System Manager')
total = frappe.db.count('User Permission', filters = dict(user=user, allow=for_doctype))
if total:
frappe.db.sql('DELETE FROM `tabUser Permission` WHERE `user`=%s AND `allow`=%s', (user, for_doctype))
frappe.db.delete("User Permission", {
"user": user,
"allow": for_doctype
})
# frappe.db.sql('DELETE FROM `tabUser Permission` WHERE `user`=%s AND `allow`=%s', (user, for_doctype))
frappe.clear_cache()
return total
@ -232,28 +236,50 @@ def insert_user_perm(user, doctype, docname, is_default=0, hide_descendants=0, a
user_perm.insert()
def remove_applicable(perm_applied_docs, user, doctype, docname):
for applicable_for in perm_applied_docs:
frappe.db.sql("""DELETE FROM `tabUser Permission`
WHERE `user`=%s
AND `applicable_for`=%s
AND `allow`=%s
AND `for_value`=%s
""", (user, applicable_for, doctype, docname))
frappe.db.delete("User Permission", {
"user": user,
"applicable_for": applicable_for,
"allow": doctype,
"for_value": docname
})
#
# frappe.db.sql("""DELETE FROM `tabUser Permission`
# WHERE `user`=%s
# AND `applicable_for`=%s
# AND `allow`=%s
# AND `for_value`=%s
# """, (user, applicable_for, doctype, docname))
def remove_apply_to_all(user, doctype, docname):
frappe.db.sql("""DELETE from `tabUser Permission`
WHERE `user`=%s
AND `apply_to_all_doctypes`=1
AND `allow`=%s
AND `for_value`=%s
""",(user, doctype, docname))
frappe.db.delete("User Permission", {
"user": user,
"apply_to_all_doctypes": 1,
"allow": doctype,
"for_value": docname
})
# frappe.db.sql("""DELETE from `tabUser Permission`
# WHERE `user`=%s
# AND `apply_to_all_doctypes`=1
# AND `allow`=%s
# AND `for_value`=%s
# """,(user, doctype, docname))
def update_applicable(already_applied, to_apply, user, doctype, docname):
for applied in already_applied:
if applied not in to_apply:
frappe.db.sql("""DELETE FROM `tabUser Permission`
WHERE `user`=%s
AND `applicable_for`=%s
AND `allow`=%s
AND `for_value`=%s
""",(user, applied, doctype, docname))
frappe.db.delete("User Permission", {
"user": user,
"applicable_for": applied,
"allow": doctype,
"for_value": docname
})
# frappe.db.sql("""DELETE FROM `tabUser Permission`
# WHERE `user`=%s
# AND `applicable_for`=%s
# AND `allow`=%s
# AND `for_value`=%s
# """,(user, applied, doctype, docname))

View file

@ -111,8 +111,10 @@ def remove(doctype, role, permlevel):
setup_custom_perms(doctype)
name = frappe.get_value('Custom DocPerm', dict(parent=doctype, role=role, permlevel=permlevel))
frappe.db.sql('delete from `tabCustom DocPerm` where name=%s', name)
frappe.db.delete("Custom DocPerm", {
"name": name
})
# frappe.db.sql('delete from `tabCustom DocPerm` where name=%s', name)
if not frappe.get_all('Custom DocPerm', dict(parent=doctype)):
frappe.throw(_('There must be atleast one permission rule.'), title=_('Cannot Remove'))