diff --git a/erpnext/accounts/doctype/pos_setting/pos_setting.js b/erpnext/accounts/doctype/pos_setting/pos_setting.js index f7fcdfe162d..5e7afc65b09 100755 --- a/erpnext/accounts/doctype/pos_setting/pos_setting.js +++ b/erpnext/accounts/doctype/pos_setting/pos_setting.js @@ -74,5 +74,5 @@ cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) cur_frm.fields_dict.user.get_query = function(doc,cdt,cdn) { - return{ query:"frappe.core.doctype.profile.profile.profile_query"} + return{ query:"frappe.core.doctype.user.user.user_query"} } diff --git a/erpnext/accounts/doctype/pos_setting/pos_setting.txt b/erpnext/accounts/doctype/pos_setting/pos_setting.txt index c00e75e7e99..bad0d7eb59a 100755 --- a/erpnext/accounts/doctype/pos_setting/pos_setting.txt +++ b/erpnext/accounts/doctype/pos_setting/pos_setting.txt @@ -2,7 +2,7 @@ { "creation": "2013-05-24 12:15:51", "docstatus": 0, - "modified": "2014-01-29 13:08:24", + "modified": "2014-01-29 13:08:25", "modified_by": "Administrator", "owner": "Administrator" }, @@ -48,7 +48,7 @@ "label": "User", "oldfieldname": "user", "oldfieldtype": "Link", - "options": "Profile", + "options": "User", "read_only": 0 }, { diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index a24b844aaec..d0c69fcf82d 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -744,9 +744,9 @@ def send_notification(new_rv): message = get_html(new_rv.doc, new_rv.doclist, "SalesInvoice")) def notify_errors(inv, customer, owner): - from frappe.profile import get_system_managers + from frappe.utils.user import get_system_managers - frappe.sendmail(recipients=get_system_managers() + [frappe.db.get_value("Profile", owner, "email")], + frappe.sendmail(recipients=get_system_managers() + [frappe.db.get_value("User", owner, "email")], subject="[Urgent] Error while creating recurring invoice for %s" % inv, message = frappe.get_template("template/emails/recurring_invoice_failed.html").render({ "name": inv, diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js index e5b04ddd37a..50345d71cab 100644 --- a/erpnext/accounts/page/accounts_browser/accounts_browser.js +++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js @@ -42,7 +42,7 @@ pscript['onload_Accounts Browser'] = function(wrapper){ ''+ '
'+frappe._('Please setup your chart of accounts before you start Accounting Entries')+'
').appendTo(main); - if (frappe.boot.profile.can_create.indexOf("Company") !== -1) { + if (frappe.boot.user.can_create.indexOf("Company") !== -1) { wrapper.appframe.add_button(frappe._('New Company'), function() { newdoc('Company'); }, 'icon-plus'); } @@ -137,7 +137,7 @@ erpnext.AccountsChart = Class.extend({ { condition: function(node) { return !node.root && me.ctype === 'Account' - && frappe.boot.profile.can_read.indexOf("GL Entry") !== -1 + && frappe.boot.user.can_read.indexOf("GL Entry") !== -1 }, label: __("View Ledger"), click: function(node, btn) { diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js index f3f2e0499ba..fe0d70b83ee 100644 --- a/erpnext/home/page/activity/activity.js +++ b/erpnext/home/page/activity/activity.js @@ -23,7 +23,7 @@ frappe.pages['activity'].onload = function(wrapper) { wrapper.appframe.set_title_right("Refresh", function() { list.run(); }); // Build Report Button - if(frappe.boot.profile.can_get_report.indexOf("Feed")!=-1) { + if(frappe.boot.user.can_get_report.indexOf("Feed")!=-1) { wrapper.appframe.add_primary_action(frappe._('Build Report'), function() { frappe.set_route('Report', "Feed"); }, 'icon-th') diff --git a/erpnext/hr/doctype/employee/employee.js b/erpnext/hr/doctype/employee/employee.js index 80150f1589c..c27a4c56a22 100644 --- a/erpnext/hr/doctype/employee/employee.js +++ b/erpnext/hr/doctype/employee/employee.js @@ -5,7 +5,7 @@ frappe.provide("erpnext.hr"); erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({ setup: function() { this.frm.fields_dict.user_id.get_query = function(doc, cdt, cdn) { - return { query:"frappe.core.doctype.profile.profile.profile_query"} } + return { query:"frappe.core.doctype.user.user.user_query"} } this.frm.fields_dict.reports_to.get_query = function(doc, cdt, cdn) { return { query: "erpnext.controllers.queries.employee_query"} } }, @@ -33,8 +33,8 @@ erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({ callback: function(r) { var df = frappe.meta.get_docfield("Employee Leave Approver", "leave_approver", me.frm.doc.name); - df.options = $.map(r.message, function(profile) { - return {value: profile, label: frappe.user_info(profile).fullname}; + df.options = $.map(r.message, function(user) { + return {value: user, label: frappe.user_info(user).fullname}; }); me.frm.fields_dict.employee_leave_approvers.refresh(); } diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py index 5838116a882..7c836f0352b 100644 --- a/erpnext/hr/doctype/employee/employee.py +++ b/erpnext/hr/doctype/employee/employee.py @@ -42,7 +42,7 @@ class DocType(DocListController): if self.doc.user_id: self.restrict_user() self.update_user_default() - self.update_profile() + self.update_user() self.update_dob_event() self.restrict_leave_approver() @@ -71,47 +71,47 @@ class DocType(DocListController): frappe.defaults.add_default("Employee", self.doc.name, user, "Restriction") - def update_profile(self): + def update_user(self): # add employee role if missing if not "Employee" in frappe.db.sql_list("""select role from tabUserRole where parent=%s""", self.doc.user_id): - from frappe.profile import add_role + from frappe.utils.user import add_role add_role(self.doc.user_id, "Employee") - profile_wrapper = frappe.bean("Profile", self.doc.user_id) + user_wrapper = frappe.bean("User", self.doc.user_id) - # copy details like Fullname, DOB and Image to Profile + # copy details like Fullname, DOB and Image to User if self.doc.employee_name: employee_name = self.doc.employee_name.split(" ") if len(employee_name) >= 3: - profile_wrapper.doc.last_name = " ".join(employee_name[2:]) - profile_wrapper.doc.middle_name = employee_name[1] + user_wrapper.doc.last_name = " ".join(employee_name[2:]) + user_wrapper.doc.middle_name = employee_name[1] elif len(employee_name) == 2: - profile_wrapper.doc.last_name = employee_name[1] + user_wrapper.doc.last_name = employee_name[1] - profile_wrapper.doc.first_name = employee_name[0] + user_wrapper.doc.first_name = employee_name[0] if self.doc.date_of_birth: - profile_wrapper.doc.birth_date = self.doc.date_of_birth + user_wrapper.doc.birth_date = self.doc.date_of_birth if self.doc.gender: - profile_wrapper.doc.gender = self.doc.gender + user_wrapper.doc.gender = self.doc.gender if self.doc.image: - if not profile_wrapper.doc.user_image == self.doc.image: - profile_wrapper.doc.user_image = self.doc.image + if not user_wrapper.doc.user_image == self.doc.image: + user_wrapper.doc.user_image = self.doc.image try: frappe.doc({ "doctype": "File Data", "file_name": self.doc.image, - "attached_to_doctype": "Profile", + "attached_to_doctype": "User", "attached_to_name": self.doc.user_id }).insert() except frappe.DuplicateEntryError, e: # already exists pass - profile_wrapper.ignore_permissions = True - profile_wrapper.save() + user_wrapper.ignore_permissions = True + user_wrapper.save() def validate_date(self): if self.doc.date_of_birth and self.doc.date_of_joining and getdate(self.doc.date_of_birth) >= getdate(self.doc.date_of_joining): @@ -143,7 +143,7 @@ class DocType(DocListController): throw(_("Please enter relieving date.")) def validate_for_enabled_user_id(self): - enabled = frappe.db.sql("""select name from `tabProfile` where + enabled = frappe.db.sql("""select name from `tabUser` where name=%s and enabled=1""", self.doc.user_id) if not enabled: throw("{id}: {user_id} {msg}".format(**{ @@ -164,11 +164,11 @@ class DocType(DocListController): })) def validate_employee_leave_approver(self): - from frappe.profile import Profile + from frappe.utils.user import User from erpnext.hr.doctype.leave_application.leave_application import InvalidLeaveApproverError for l in self.doclist.get({"parentfield": "employee_leave_approvers"}): - if "Leave Approver" not in Profile(l.leave_approver).get_roles(): + if "Leave Approver" not in User(l.leave_approver).get_roles(): throw(_("Invalid Leave Approver") + ": \"" + l.leave_approver + "\"", exc=InvalidLeaveApproverError) diff --git a/erpnext/hr/doctype/employee/employee.txt b/erpnext/hr/doctype/employee/employee.txt index 795f4de4afe..bc21ff95a0e 100644 --- a/erpnext/hr/doctype/employee/employee.txt +++ b/erpnext/hr/doctype/employee/employee.txt @@ -2,7 +2,7 @@ { "creation": "2013-03-07 09:04:18", "docstatus": 0, - "modified": "2014-02-03 18:06:03", + "modified": "2014-02-03 18:06:04", "modified_by": "Administrator", "owner": "Administrator" }, @@ -126,7 +126,7 @@ "fieldname": "user_id", "fieldtype": "Link", "label": "User ID", - "options": "Profile" + "options": "User" }, { "doctype": "DocField", diff --git a/erpnext/hr/doctype/leave_application/leave_application.js b/erpnext/hr/doctype/leave_application/leave_application.js index 87c0e0f5fe3..2a6223af44f 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.js +++ b/erpnext/hr/doctype/leave_application/leave_application.js @@ -16,8 +16,8 @@ cur_frm.cscript.onload = function(doc, dt, dn) { method: "erpnext.hr.utils.get_leave_approver_list", callback: function(r) { cur_frm.set_df_property("leave_approver", "options", $.map(r.message, - function(profile) { - return {value: profile, label: frappe.user_info(profile).fullname}; + function(user) { + return {value: user, label: frappe.user_info(user).fullname}; })); if(leave_approver) cur_frm.set_value("leave_approver", leave_approver); cur_frm.cscript.get_leave_balance(cur_frm.doc); diff --git a/erpnext/hr/doctype/leave_application/leave_application.txt b/erpnext/hr/doctype/leave_application/leave_application.txt index 038c29ddef5..b56a0ed1204 100644 --- a/erpnext/hr/doctype/leave_application/leave_application.txt +++ b/erpnext/hr/doctype/leave_application/leave_application.txt @@ -2,7 +2,7 @@ { "creation": "2013-02-20 11:18:11", "docstatus": 0, - "modified": "2014-01-20 17:48:55", + "modified": "2014-01-20 17:48:56", "modified_by": "Administrator", "owner": "Administrator" }, @@ -55,7 +55,7 @@ "fieldname": "leave_approver", "fieldtype": "Select", "label": "Leave Approver", - "options": "link:Profile", + "options": "link:User", "permlevel": 0 }, { diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py index 56381fcc267..30f0cb7db9e 100644 --- a/erpnext/hr/doctype/leave_application/test_leave_application.py +++ b/erpnext/hr/doctype/leave_application/test_leave_application.py @@ -41,7 +41,7 @@ class TestLeaveApplication(unittest.TestCase): def test_block_list(self): self._clear_roles() - from frappe.profile import add_role + from frappe.utils.user import add_role add_role("test1@example.com", "HR User") frappe.db.set_value("Department", "_Test Department", @@ -64,7 +64,7 @@ class TestLeaveApplication(unittest.TestCase): self._clear_roles() self._clear_applications() - from frappe.profile import add_role + from frappe.utils.user import add_role add_role("test@example.com", "Employee") add_role("test2@example.com", "Leave Approver") @@ -80,7 +80,7 @@ class TestLeaveApplication(unittest.TestCase): def test_global_block_list(self): self._clear_roles() - from frappe.profile import add_role + from frappe.utils.user import add_role add_role("test1@example.com", "Employee") add_role("test@example.com", "Leave Approver") @@ -105,7 +105,7 @@ class TestLeaveApplication(unittest.TestCase): def test_leave_approval(self): self._clear_roles() - from frappe.profile import add_role + from frappe.utils.user import add_role add_role("test@example.com", "Employee") add_role("test1@example.com", "Leave Approver") add_role("test2@example.com", "Leave Approver") diff --git a/erpnext/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt b/erpnext/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt index 94fd3de7962..ea548004ce4 100644 --- a/erpnext/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt +++ b/erpnext/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt @@ -2,7 +2,7 @@ { "creation": "2013-02-22 01:27:47", "docstatus": 0, - "modified": "2013-12-20 19:23:19", + "modified": "2013-12-20 19:23:18", "modified_by": "Administrator", "owner": "Administrator" }, @@ -19,7 +19,7 @@ "in_list_view": 1, "label": "Allow User", "name": "__common__", - "options": "Profile", + "options": "User", "parent": "Leave Block List Allow", "parentfield": "fields", "parenttype": "DocType", diff --git a/erpnext/patches/4_0/move_warehouse_user_to_restrictions.py b/erpnext/patches/4_0/move_warehouse_user_to_restrictions.py index d199a42669a..16d3b29c961 100644 --- a/erpnext/patches/4_0/move_warehouse_user_to_restrictions.py +++ b/erpnext/patches/4_0/move_warehouse_user_to_restrictions.py @@ -6,8 +6,8 @@ import frappe def execute(): from frappe.core.page.user_properties import user_properties - for warehouse, profile in frappe.db.sql("""select parent, user from `tabWarehouse User`"""): - user_properties.add(profile, "Warehouse", warehouse) + for warehouse, user in frappe.db.sql("""select parent, user from `tabWarehouse User`"""): + user_properties.add(user, "Warehouse", warehouse) frappe.delete_doc("DocType", "Warehouse User") frappe.reload_doc("stock", "doctype", "warehouse") \ No newline at end of file diff --git a/erpnext/patches/4_0/update_user_properties.py b/erpnext/patches/4_0/update_user_properties.py index 5070bfdf1a7..6dac125c1cb 100644 --- a/erpnext/patches/4_0/update_user_properties.py +++ b/erpnext/patches/4_0/update_user_properties.py @@ -42,10 +42,10 @@ def update_user_match(): meta = frappe.get_doctype(doctype) # for each user with roles of this doctype, check if match condition applies - for profile in frappe.db.sql_list("""select name from `tabProfile` + for user in frappe.db.sql_list("""select name from `tabUser` where enabled=1 and user_type='System User'"""): - user_roles = frappe.get_roles(profile) + user_roles = frappe.get_roles(user) perms = meta.get({"doctype": "DocPerm", "permlevel": 0, "role": ["in", [["All"] + user_roles]], "read": 1}) @@ -69,9 +69,9 @@ def update_user_match(): # add that doc's restriction to that user for match in user_matches: for name in frappe.db.sql_list("""select name from `tab{doctype}` - where `{field}`=%s""".format(doctype=doctype, field=match.split(":")[0]), profile): + where `{field}`=%s""".format(doctype=doctype, field=match.split(":")[0]), user): - frappe.defaults.add_default(doctype, name, profile, "Restriction") + frappe.defaults.add_default(doctype, name, user, "Restriction") def add_employee_restrictions_to_leave_approver(): from frappe.core.page.user_properties import user_properties diff --git a/erpnext/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt b/erpnext/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt index 973fc576b71..3531a877dff 100644 --- a/erpnext/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt +++ b/erpnext/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt @@ -2,7 +2,7 @@ { "creation": "2013-03-05 09:11:06", "docstatus": 0, - "modified": "2013-12-20 19:21:53", + "modified": "2013-12-20 19:21:54", "modified_by": "Administrator", "owner": "Administrator" }, @@ -40,7 +40,7 @@ "fieldname": "created_by", "fieldtype": "Link", "label": "Created By", - "options": "Profile", + "options": "User", "read_only": 1 }, { diff --git a/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py b/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py index be3d6ce5589..c652ca79acd 100644 --- a/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py +++ b/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -15,7 +15,7 @@ def execute(filters=None): "To Datetime::140", "Hours::70", "Activity Type::120", "Task:Link/Task:150", "Task Subject::180", "Project:Link/Project:120", "Status::70"] - profile_map = get_profile_map() + user_map = get_user_map() task_map = get_task_map() conditions = build_conditions(filters) @@ -23,17 +23,17 @@ def execute(filters=None): where docstatus < 2 %s order by owner asc""" % (conditions, ), filters, as_dict=1) if time_logs: - profiles = [time_logs[0].owner] + users = [time_logs[0].owner] data = [] total_hours = total_employee_hours = count = 0 for tl in time_logs: - if tl.owner not in profiles: - profiles.append(tl.owner) + if tl.owner not in users: + users.append(tl.owner) data.append(["", "", "", "Total", total_employee_hours, "", "", "", "", ""]) total_employee_hours = 0 - data.append([tl.name, profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, + data.append([tl.name, user_map[tl.owner], tl.from_time, tl.to_time, tl.hours, tl.activity_type, tl.task, task_map.get(tl.task), tl.project, tl.status]) count += 1 @@ -48,15 +48,15 @@ def execute(filters=None): return columns, data -def get_profile_map(): - profiles = frappe.db.sql("""select name, +def get_user_map(): + users = frappe.db.sql("""select name, concat(first_name, if(last_name, (' ' + last_name), '')) as fullname - from tabProfile""", as_dict=1) - profile_map = {} - for p in profiles: - profile_map.setdefault(p.name, []).append(p.fullname) + from tabUser""", as_dict=1) + user_map = {} + for p in users: + user_map.setdefault(p.name, []).append(p.fullname) - return profile_map + return user_map def get_task_map(): tasks = frappe.db.sql("""select name, subject from tabTask""", as_dict=1) diff --git a/erpnext/public/js/queries.js b/erpnext/public/js/queries.js index 86db28e79b2..966b27dd1a9 100644 --- a/erpnext/public/js/queries.js +++ b/erpnext/public/js/queries.js @@ -1,11 +1,11 @@ // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -// searches for enabled profiles +// searches for enabled users frappe.provide("erpnext.queries"); $.extend(erpnext.queries, { - profile: function() { - return { query: "frappe.core.doctype.profile.profile.profile_query" }; + user: function() { + return { query: "frappe.core.doctype.user.user.user_query" }; }, lead: function() { diff --git a/erpnext/public/js/toolbar.js b/erpnext/public/js/toolbar.js index 53efe30dad7..c0645e39a97 100644 --- a/erpnext/public/js/toolbar.js +++ b/erpnext/public/js/toolbar.js @@ -5,9 +5,9 @@ frappe.provide('erpnext.toolbar'); erpnext.toolbar.setup = function() { - // profile + // user var $user = $('#toolbar-user'); - $user.append('