rename Profile to User frappe/frappe#470

This commit is contained in:
Rushabh Mehta 2014-03-11 16:15:05 +05:30
parent c379c78fec
commit 7c932003ed
62 changed files with 196 additions and 196 deletions

View File

@ -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"}
}

View File

@ -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
},
{

View File

@ -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,

View File

@ -42,7 +42,7 @@ pscript['onload_Accounts Browser'] = function(wrapper){
'</ol>'+
'<p>'+frappe._('Please setup your chart of accounts before you start Accounting Entries')+'</p></div>').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) {

View File

@ -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')

View File

@ -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();
}

View File

@ -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)

View File

@ -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",

View File

@ -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);

View File

@ -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
},
{

View File

@ -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")

View File

@ -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",

View File

@ -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")

View File

@ -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

View File

@ -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
},
{

View File

@ -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)

View File

@ -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() {

View File

@ -5,9 +5,9 @@
frappe.provide('erpnext.toolbar');
erpnext.toolbar.setup = function() {
// profile
// user
var $user = $('#toolbar-user');
$user.append('<li><a href="#Form/Profile/'+user+'"><i class="icon-fixed-width icon-user"></i> '
$user.append('<li><a href="#Form/User/'+user+'"><i class="icon-fixed-width icon-user"></i> '
+frappe._("My Settings")+'...</a></li>');
$user.append('<li class="divider"></li>');
$user.append('<li><a href="https://erpnext.com/manual" target="_blank">\

View File

@ -12,14 +12,14 @@ erpnext.LeadController = frappe.ui.form.Controller.extend({
},
onload: function() {
if(cur_frm.fields_dict.lead_owner.df.options.match(/^Profile/)) {
if(cur_frm.fields_dict.lead_owner.df.options.match(/^User/)) {
cur_frm.fields_dict.lead_owner.get_query = function(doc, cdt, cdn) {
return { query:"frappe.core.doctype.profile.profile.profile_query" } }
return { query:"frappe.core.doctype.user.user.user_query" } }
}
if(cur_frm.fields_dict.contact_by.df.options.match(/^Profile/)) {
if(cur_frm.fields_dict.contact_by.df.options.match(/^User/)) {
cur_frm.fields_dict.contact_by.get_query = function(doc, cdt, cdn) {
return { query:"frappe.core.doctype.profile.profile.profile_query" } }
return { query:"frappe.core.doctype.user.user.user_query" } }
}
if(in_list(user_roles,'System Manager')) {

View File

@ -2,7 +2,7 @@
{
"creation": "2013-04-10 11:45:37",
"docstatus": 0,
"modified": "2014-01-20 17:48:53",
"modified": "2014-01-20 17:48:54",
"modified_by": "Administrator",
"owner": "Administrator"
},
@ -171,7 +171,7 @@
"label": "Lead Owner",
"oldfieldname": "lead_owner",
"oldfieldtype": "Link",
"options": "Profile",
"options": "User",
"search_index": 1
},
{
@ -190,7 +190,7 @@
"label": "Next Contact By",
"oldfieldname": "contact_by",
"oldfieldtype": "Link",
"options": "Profile",
"options": "User",
"print_hide": 0,
"reqd": 0,
"width": "100px"

View File

@ -45,8 +45,8 @@ erpnext.selling.Opportunity = frappe.ui.form.Controller.extend({
setup_queries: function() {
var me = this;
if(this.frm.fields_dict.contact_by.df.options.match(/^Profile/)) {
this.frm.set_query("contact_by", erpnext.queries.profile);
if(this.frm.fields_dict.contact_by.df.options.match(/^User/)) {
this.frm.set_query("contact_by", erpnext.queries.user);
}
this.frm.set_query("customer_address", function() {

View File

@ -2,7 +2,7 @@
{
"creation": "2013-03-07 18:50:30",
"docstatus": 0,
"modified": "2014-01-20 17:48:58",
"modified": "2014-01-20 17:48:59",
"modified_by": "Administrator",
"owner": "Administrator"
},
@ -400,7 +400,7 @@
"label": "Next Contact By",
"oldfieldname": "contact_by",
"oldfieldtype": "Link",
"options": "Profile",
"options": "User",
"read_only": 0,
"width": "75px"
},

View File

@ -281,10 +281,10 @@ class TestSalesOrder(unittest.TestCase):
def test_warehouse_user(self):
frappe.defaults.add_default("Warehouse", "_Test Warehouse 1 - _TC1", "test@example.com", "Restriction")
frappe.bean("Profile", "test@example.com").get_controller()\
frappe.bean("User", "test@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
frappe.bean("Profile", "test2@example.com").get_controller()\
frappe.bean("User", "test2@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
frappe.set_user("test@example.com")

View File

@ -57,8 +57,8 @@ erpnext.SalesChart = Class.extend({
var me = this;
me.ctype = ctype;
me.can_read = frappe.model.can_read(this.ctype);
me.can_create = frappe.boot.profile.can_create.indexOf(this.ctype) !== -1 ||
frappe.boot.profile.in_create.indexOf(this.ctype) !== -1;
me.can_create = frappe.boot.user.can_create.indexOf(this.ctype) !== -1 ||
frappe.boot.user.in_create.indexOf(this.ctype) !== -1;
me.can_write = frappe.model.can_write(this.ctype);
me.can_delete = frappe.model.can_delete(this.ctype);

View File

@ -11,7 +11,7 @@
"is_standard": "Yes",
"module": "Selling",
"name": "__common__",
"query": "SELECT\n `tabLead`.name as \"Lead Id:Link/Lead:120\",\n `tabLead`.lead_name as \"Lead Name::120\",\n\t`tabLead`.company_name as \"Company Name::120\",\n\t`tabLead`.status as \"Status::120\",\n\tconcat_ws(', ', \n\t\ttrim(',' from `tabAddress`.address_line1), \n\t\ttrim(',' from tabAddress.address_line2), \n\t\ttabAddress.state, tabAddress.pincode, tabAddress.country\n\t) as 'Address::180',\n\t`tabLead`.phone as \"Phone::100\",\n\t`tabLead`.mobile_no as \"Mobile No::100\",\n\t`tabLead`.email_id as \"Email Id::120\",\n\t`tabLead`.lead_owner as \"Lead Owner::120\",\n\t`tabLead`.source as \"Source::120\",\n\t`tabLead`.territory as \"Territory::120\",\n `tabLead`.owner as \"Owner:Link/Profile:120\"\nFROM\n\t`tabLead`\n\tleft join `tabAddress` on (\n\t\t`tabAddress`.lead=`tabLead`.name\n\t)\nWHERE\n\t`tabLead`.docstatus<2\nORDER BY\n\t`tabLead`.name asc",
"query": "SELECT\n `tabLead`.name as \"Lead Id:Link/Lead:120\",\n `tabLead`.lead_name as \"Lead Name::120\",\n\t`tabLead`.company_name as \"Company Name::120\",\n\t`tabLead`.status as \"Status::120\",\n\tconcat_ws(', ', \n\t\ttrim(',' from `tabAddress`.address_line1), \n\t\ttrim(',' from tabAddress.address_line2), \n\t\ttabAddress.state, tabAddress.pincode, tabAddress.country\n\t) as 'Address::180',\n\t`tabLead`.phone as \"Phone::100\",\n\t`tabLead`.mobile_no as \"Mobile No::100\",\n\t`tabLead`.email_id as \"Email Id::120\",\n\t`tabLead`.lead_owner as \"Lead Owner::120\",\n\t`tabLead`.source as \"Source::120\",\n\t`tabLead`.territory as \"Territory::120\",\n `tabLead`.owner as \"Owner:Link/User:120\"\nFROM\n\t`tabLead`\n\tleft join `tabAddress` on (\n\t\t`tabAddress`.lead=`tabLead`.name\n\t)\nWHERE\n\t`tabLead`.docstatus<2\nORDER BY\n\t`tabLead`.name asc",
"ref_doctype": "Lead",
"report_name": "Lead Details",
"report_type": "Query Report"

View File

@ -184,7 +184,7 @@ class DocType(TransactionBase):
if m['approving_user']:
app_specific_user.append(m['approving_user'])
elif m['approving_role']:
user_lst = [z[0] for z in frappe.db.sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
user_lst = [z[0] for z in frappe.db.sql("select distinct t1.name from `tabUser` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
for x in user_lst:
if not x in app_user:
app_user.append(x)

View File

@ -65,11 +65,11 @@ cur_frm.cscript.transaction = function(doc, cdt, cdn){
}
cur_frm.fields_dict.system_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" }
}
cur_frm.fields_dict.approving_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" }
}
cur_frm.fields_dict['approving_role'].get_query = cur_frm.fields_dict['system_role'].get_query;

View File

@ -2,7 +2,7 @@
{
"creation": "2013-01-10 16:34:22",
"docstatus": 0,
"modified": "2014-01-20 17:48:24",
"modified": "2014-01-20 17:48:25",
"modified_by": "Administrator",
"owner": "Administrator"
},
@ -102,7 +102,7 @@
"label": "Applicable To (User)",
"oldfieldname": "system_user",
"oldfieldtype": "Link",
"options": "Profile"
"options": "User"
},
{
"description": "This will be used for setting rule in HR module",
@ -142,7 +142,7 @@
"label": "Approving User",
"oldfieldname": "approving_user",
"oldfieldtype": "Link",
"options": "Profile"
"options": "User"
},
{
"doctype": "DocField",

View File

@ -162,7 +162,7 @@ cur_frm.cscript.delete_doc = function(doctype, name) {
// Render List
cur_frm.cscript.render_list = function(doc, doctype, wrapper, ListView, make_new_doc) {
frappe.model.with_doctype(doctype, function(r) {
if((r && r['403']) || frappe.boot.profile.all_read.indexOf(doctype)===-1) {
if((r && r['403']) || frappe.boot.user.all_read.indexOf(doctype)===-1) {
return;
}
var RecordListView = frappe.views.RecordListView.extend({

View File

@ -1,4 +1,4 @@
table.profile-list {
table.user-list {
text-align: left;
margin: auto;
line-height: 250%;

View File

@ -48,8 +48,8 @@ cur_frm.cscript.refresh = function(doc, dt, dn) {
}
cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
// Get profile list
return $c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) {
// Get user list
return $c_obj(make_doclist(dt, dn), 'get_users', '', function(r, rt) {
if(r.exc) {
msgprint(r.exc);
} else {
@ -60,10 +60,10 @@ cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
width: 400
});
var dialog_div = $a(d.body, 'div', 'dialog-div', '', '');
var tab = make_table(dialog_div, r.profile_list.length+2, 2, '', ['15%', '85%']);
tab.className = 'profile-list';
var tab = make_table(dialog_div, r.user_list.length+2, 2, '', ['15%', '85%']);
tab.className = 'user-list';
var add_or_update = 'Add';
$.each(r.profile_list, function(i, v) {
$.each(r.user_list, function(i, v) {
var check = $a_input($td(tab, i+1, 0), 'checkbox');
check.value = v.name;
if(v.checked==1) {
@ -75,18 +75,18 @@ cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
if(v.enabled==0) {
v.name = repl("<span style='color: red'> %(name)s (disabled user)</span>", {name: v.name});
}
var profile = $a($td(tab, i+1, 1), 'span', '', '', v.name);
//profile.onclick = function() { check.checked = !check.checked; }
var user = $a($td(tab, i+1, 1), 'span', '', '', v.name);
//user.onclick = function() { check.checked = !check.checked; }
});
// Display add recipients button
if(r.profile_list.length>15) {
if(r.user_list.length>15) {
$btn($td(tab, 0, 1), add_or_update + ' Recipients', function() {
cur_frm.cscript.add_to_rec_list(doc, tab, r.profile_list.length);
cur_frm.cscript.add_to_rec_list(doc, tab, r.user_list.length);
});
}
$btn($td(tab, r.profile_list.length+1, 1), add_or_update + ' Recipients', function() {
cur_frm.cscript.add_to_rec_list(doc, tab, r.profile_list.length);
$btn($td(tab, r.user_list.length+1, 1), add_or_update + ' Recipients', function() {
cur_frm.cscript.add_to_rec_list(doc, tab, r.user_list.length);
});
cur_frm.rec_dialog = d;
@ -96,7 +96,7 @@ cur_frm.cscript.addremove_recipients = function(doc, dt, dn) {
}
cur_frm.cscript.add_to_rec_list = function(doc, tab, length) {
// add checked profiles to list of recipients
// add checked users to list of recipients
var rec_list = [];
for(var i = 1; i <= length; i++) {
var input = $($td(tab, i, 0)).find('input');

View File

@ -52,10 +52,10 @@ class DocType(DocListController):
self.currency = frappe.db.get_value("Company", self.doc.company,
"default_currency")
def get_profiles(self):
"""get list of profiles"""
profile_list = frappe.db.sql("""
select name, enabled from tabProfile
def get_users(self):
"""get list of users"""
user_list = frappe.db.sql("""
select name, enabled from tabUser
where docstatus=0 and name not in ('Administrator', 'Guest')
and user_type = "System User"
order by enabled desc, name asc""", as_dict=1)
@ -64,14 +64,14 @@ class DocType(DocListController):
recipient_list = self.doc.recipient_list.split("\n")
else:
recipient_list = []
for p in profile_list:
for p in user_list:
p["checked"] = p["name"] in recipient_list and 1 or 0
frappe.response['profile_list'] = profile_list
frappe.response['user_list'] = user_list
def send(self):
# send email only to enabled users
valid_users = [p[0] for p in frappe.db.sql("""select name from `tabProfile`
valid_users = [p[0] for p in frappe.db.sql("""select name from `tabUser`
where enabled=1""")]
recipients = filter(lambda r: r in valid_users,
self.doc.recipient_list.split("\n"))

View File

@ -23,9 +23,9 @@ class DocType(DocTypeNestedSet):
self.validate_one_root()
def get_email_id(self):
profile = frappe.db.get_value("Employee", self.doc.employee, "user_id")
if not profile:
frappe.throw("User ID (Profile) not set for Employee %s" % self.doc.employee)
user = frappe.db.get_value("Employee", self.doc.employee, "user_id")
if not user:
frappe.throw("User ID not set for Employee %s" % self.doc.employee)
else:
return frappe.db.get_value("Profile", profile, "email") or profile
return frappe.db.get_value("User", user, "email") or user

View File

@ -67,16 +67,16 @@ frappe.pages['setup-wizard'].onload = function(wrapper) {
reqd:1, "description":"Your Login Id", "options":"Email"},
{"fieldname": "password", "label": frappe._("Password"), "fieldtype": "Password",
reqd:1},
{fieldtype:"Attach Image", fieldname:"attach_profile",
label:"Attach Your Profile..."},
{fieldtype:"Attach Image", fieldname:"attach_user",
label:"Attach Your User..."},
],
help: frappe._('The first user will become the System Manager (you can change that later).'),
onload: function(slide) {
if(user!=="Administrator") {
slide.form.fields_dict.password.$wrapper.toggle(false);
slide.form.fields_dict.email.$wrapper.toggle(false);
slide.form.fields_dict.first_name.set_input(frappe.boot.profile.first_name);
slide.form.fields_dict.last_name.set_input(frappe.boot.profile.last_name);
slide.form.fields_dict.first_name.set_input(frappe.boot.user.first_name);
slide.form.fields_dict.last_name.set_input(frappe.boot.user.last_name);
delete slide.form.fields_dict.email;
delete slide.form.fields_dict.password;

View File

@ -19,7 +19,7 @@ def setup_account(args=None):
args = json.loads(args)
args = frappe._dict(args)
update_profile_name(args)
update_user_name(args)
create_fiscal_year_and_company(args)
set_defaults(args)
create_territories()
@ -41,12 +41,12 @@ def setup_account(args=None):
return "okay"
def update_profile_name(args):
def update_user_name(args):
if args.get("email"):
args['name'] = args.get("email")
frappe.flags.mute_emails = True
frappe.bean({
"doctype":"Profile",
"doctype":"User",
"email": args.get("email"),
"first_name": args.get("first_name"),
"last_name": args.get("last_name")
@ -58,16 +58,16 @@ def update_profile_name(args):
else:
args['name'] = frappe.session.user
# Update Profile
# Update User
if not args.get('last_name') or args.get('last_name')=='None':
args['last_name'] = None
frappe.db.sql("""update `tabProfile` SET first_name=%(first_name)s,
frappe.db.sql("""update `tabUser` SET first_name=%(first_name)s,
last_name=%(last_name)s WHERE name=%(name)s""", args)
if args.get("attach_profile"):
filename, filetype, content = args.get("attach_profile").split(",")
fileurl = save_file(filename, content, "Profile", args.get("name"), decode=True).file_name
frappe.db.set_value("Profile", args.get("name"), "user_image", fileurl)
if args.get("attach_user"):
filename, filetype, content = args.get("attach_user").split(",")
fileurl = save_file(filename, content, "User", args.get("name"), decode=True).file_name
frappe.db.set_value("User", args.get("name"), "user_image", fileurl)
add_all_roles_to(args.get("name"))
@ -176,7 +176,7 @@ def create_feed_and_todo():
'ERNext Setup Complete!', '#6B24B3')
def create_email_digest():
from frappe.profile import get_system_managers
from frappe.utils.user import get_system_managers
system_managers = get_system_managers(only_name=True)
if not system_managers:
return
@ -335,10 +335,10 @@ def create_letter_head(args):
def add_all_roles_to(name):
profile = frappe.doc("Profile", name)
user = frappe.doc("User", name)
for role in frappe.db.sql("""select name from tabRole"""):
if role[0] not in ["Administrator", "Guest", "All", "Customer", "Supplier", "Partner"]:
d = profile.addchild("user_roles", "UserRole")
d = user.addchild("user_roles", "UserRole")
d.role = role[0]
d.insert()

File diff suppressed because one or more lines are too long

View File

@ -16,13 +16,13 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# default settings that can be made for a profile.
# default settings that can be made for a user.
from __future__ import unicode_literals
import frappe
product_name = "ERPNext"
profile_defaults = {
user_defaults = {
"Company": "company",
"Territory": "territory"
}

View File

@ -14,9 +14,9 @@ def on_session_creation(login_manager):
if frappe.session['user'] not in ('Guest'):
# create feed
from frappe.utils import nowtime
from frappe.profile import get_user_fullname
from frappe.utils.user import get_user_fullname
frappe.db.begin()
make_feed('Login', 'Profile', login_manager.user, login_manager.user,
make_feed('Login', 'User', login_manager.user, login_manager.user,
'%s logged in at %s' % (get_user_fullname(login_manager.user), nowtime()),
login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
frappe.db.commit()

View File

@ -68,7 +68,7 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
this.show_general_ledger();
if(this.frm.doc.docstatus === 1 &&
frappe.boot.profile.can_create.indexOf("Journal Voucher")!==-1) {
frappe.boot.user.can_create.indexOf("Journal Voucher")!==-1) {
if(this.frm.doc.purpose === "Sales Return") {
this.frm.add_custom_button(frappe._("Make Credit Note"), function() { me.make_return_jv(); });
this.add_excise_button();

View File

@ -765,7 +765,7 @@ class TestStockEntry(unittest.TestCase):
def test_warehouse_company_validation(self):
set_perpetual_inventory(0)
self._clear_stock_account_balance()
frappe.bean("Profile", "test2@example.com").get_controller()\
frappe.bean("User", "test2@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
frappe.set_user("test2@example.com")
@ -783,9 +783,9 @@ class TestStockEntry(unittest.TestCase):
frappe.defaults.add_default("Warehouse", "_Test Warehouse 1 - _TC1", "test@example.com", "Restriction")
frappe.defaults.add_default("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com", "Restriction")
frappe.bean("Profile", "test@example.com").get_controller()\
frappe.bean("User", "test@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
frappe.bean("Profile", "test2@example.com").get_controller()\
frappe.bean("User", "test2@example.com").get_controller()\
.add_roles("Sales User", "Sales Manager", "Material User", "Material Manager")
frappe.set_user("test@example.com")

View File

@ -20,7 +20,7 @@
"in_list_view": 1,
"label": "User",
"name": "__common__",
"options": "Profile",
"options": "User",
"parent": "Warehouse User",
"parentfield": "fields",
"parenttype": "DocType",

View File

@ -289,7 +289,7 @@ def send_email_notification(mr_list):
""" Notify user about auto creation of indent"""
email_list = frappe.db.sql_list("""select distinct r.parent
from tabUserRole r, tabProfile p
from tabUserRole r, tabUser p
where p.name = r.parent and p.enabled = 1 and p.docstatus < 2
and r.role in ('Purchase Manager','Material Manager')
and p.name not in ('Administrator', 'All', 'Guest')""")
@ -320,5 +320,5 @@ def notify_errors(exceptions_list):
Regards,
Administrator""" % ("\n\n".join(["\n".join(msg) for msg in exceptions_list]),)
from frappe.profile import get_system_managers
from frappe.utils.user import get_system_managers
sendmail(get_system_managers(), subject=subject, msg=msg)

View File

@ -2,7 +2,7 @@
{
"creation": "2013-01-10 16:34:30",
"docstatus": 0,
"modified": "2014-01-20 17:48:34",
"modified": "2014-01-20 17:48:35",
"modified_by": "Administrator",
"owner": "harshada@webnotestech.com"
},
@ -250,7 +250,7 @@
"no_copy": 1,
"oldfieldname": "resolved_by",
"oldfieldtype": "Link",
"options": "Profile",
"options": "User",
"search_index": 1
},
{

View File

@ -15,7 +15,7 @@ cur_frm.cscript.onload = function(doc) {
cur_frm.cscript.refresh = function(doc) {
erpnext.hide_naming_series();
if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved
&& inList(frappe.boot.profile.can_write, doc.doctype)) {
&& inList(frappe.boot.user.can_write, doc.doctype)) {
cur_frm.add_custom_button(frappe._('Send'), function() {
return $c_obj(make_doclist(doc.doctype, doc.name), 'send_emails', '', function(r) {
cur_frm.refresh();

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,يوصى به Itemwise إعادة ترتيب
JV,JV
Job Applicant,طالب العمل
Job Opening,افتتاح العمل
Job Profile,العمل الشخصي
Job User,العمل الشخصي
Job Title,المسمى الوظيفي
"Job profile, qualifications required etc.",العمل الشخصي، المؤهلات المطلوبة الخ.
"Job User, qualifications required etc.",العمل الشخصي، المؤهلات المطلوبة الخ.
Jobs Email Settings,إعدادات البريد الإلكتروني وظائف
Journal Entries,مجلة مقالات
Journal Entry,إدخال دفتر اليومية
@ -1678,7 +1678,7 @@ Ordered Quantity,أمرت الكمية
Orders released for production.,أوامر الإفراج عن الإنتاج.
Organization,منظمة
Organization Name,اسم المنظمة
Organization Profile,الملف الشخصي المنظمة
Organization User,الملف الشخصي المنظمة
Other,آخر
Other Details,تفاصيل أخرى
Out Qty,من الكمية

1 (Half Day) (نصف يوم)
1304 Landed Cost Item هبطت تكلفة السلعة
1305 Landed Cost Items بنود التكاليف سقطت
1306 Landed Cost Purchase Receipt هبطت استلام تكلفة الشراء
1307 Landed Cost Purchase Receipts هبطت إيصالات تكلفة الشراء
1308 Landed Cost Wizard هبطت تكلفة معالج
1309 Last Name اسم العائلة
1310 Last Purchase Rate مشاركة الشراء قيم
1311 Latest آخر
1312 Latest Updates أحدث تحديثات
1678 PL or BS PL أو BS
1679 PO PO
1680 PO Date PO التسجيل
1681 PO No ص لا
1682 POP3 Mail Server POP3 خادم البريد
1683 POP3 Mail Settings إعدادات البريد POP3
1684 POP3 mail server (e.g. pop.gmail.com) POP3 خادم البريد (على سبيل المثال pop.gmail.com)

View File

@ -1352,9 +1352,9 @@ Itemwise Recommended Reorder Level,Itemwise Empfohlene Meldebestand
JV,JV
Job Applicant,Job Applicant
Job Opening,Stellenangebot
Job Profile,Job Profil
Job User,Job Profil
Job Title,Berufsbezeichnung
"Job profile, qualifications required etc.","Job-Profil, etc. erforderlichen Qualifikationen."
"Job User, qualifications required etc.","Job-Profil, etc. erforderlichen Qualifikationen."
Jobs Email Settings,Jobs per E-Mail Einstellungen
Journal Entries,Journal Entries
Journal Entry,Journal Entry
@ -1752,7 +1752,7 @@ Ordered Quantity,Bestellte Menge
Orders released for production.,Bestellungen für die Produktion freigegeben.
Organization,Organisation
Organization Name,Name der Organisation
Organization Profile,Organisation Profil
Organization User,Organisation Profil
Other,Andere
Other Details,Weitere Details
Out Qty,out Menge

1 (Half Day) (Halber Tag)
1352 Landed Cost Purchase Receipt Landed Cost Kaufbeleg
1353 Landed Cost Purchase Receipts Landed Cost Kaufbelege
1354 Landed Cost Wizard Landed Cost Wizard
1355 Last Name Nachname
1356 Last Purchase Rate Last Purchase Rate
1357 Last updated by Zuletzt aktualisiert von
1358 Latest neueste
1359 Latest Updates Neueste Updates
1360 Lead Führen
1752 PO No PO Nein
1753 POP3 Mail Server POP3 Mail Server
1754 POP3 Mail Settings POP3-Mail-Einstellungen
1755 POP3 mail server (e.g. pop.gmail.com) POP3-Mail-Server (pop.gmail.com beispielsweise)
1756 POP3 server e.g. (pop.gmail.com) POP3-Server beispielsweise (pop.gmail.com)
1757 POS Setting POS Setting
1758 POS View POS anzeigen

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise Συνιστάται Αναδιάτ
JV,JV
Job Applicant,Αιτών εργασία
Job Opening,Άνοιγμα θέσεων εργασίας
Job Profile,Προφίλ Εργασίας
Job User,Προφίλ Εργασίας
Job Title,Τίτλος εργασίας
"Job profile, qualifications required etc.","Προφίλ δουλειά, προσόντα που απαιτούνται κ.λπ."
"Job User, qualifications required etc.","Προφίλ δουλειά, προσόντα που απαιτούνται κ.λπ."
Jobs Email Settings,Εργασία Ρυθμίσεις Email
Journal Entries,Εφημερίδα Καταχωρήσεις
Journal Entry,Journal Entry
@ -1678,7 +1678,7 @@ Ordered Quantity,Διέταξε ποσότητα
Orders released for production.,Παραγγελίες κυκλοφόρησε για την παραγωγή.
Organization,οργάνωση
Organization Name,Όνομα Οργανισμού
Organization Profile,Προφίλ Οργανισμού
Organization User,Προφίλ Οργανισμού
Other,Άλλος
Other Details,Άλλες λεπτομέρειες
Out Qty,out Ποσότητα

1 (Half Day) (Μισή ημέρα)
1304 Landed Cost Item Προσγειώθηκε στοιχείο κόστους
1305 Landed Cost Items Προσγειώθηκε στοιχεία κόστους
1306 Landed Cost Purchase Receipt Προσγειώθηκε Παραλαβή κόστος αγοράς
1307 Landed Cost Purchase Receipts Προσγειώθηκε Εισπράξεις κόστος αγοράς
1308 Landed Cost Wizard Προσγειώθηκε Οδηγός Κόστος
1309 Last Name Επώνυμο
1310 Last Purchase Rate Τελευταία Τιμή Αγοράς
1311 Latest αργότερο
1312 Latest Updates Τελευταίες ενημερώσεις
1678 PL or BS PL ή BS
1679 PO PO
1680 PO Date PO Ημερομηνία
1681 PO No PO Όχι
1682 POP3 Mail Server POP3 διακομιστή αλληλογραφίας
1683 POP3 Mail Settings Ρυθμίσεις POP3 Mail
1684 POP3 mail server (e.g. pop.gmail.com) POP3 διακομιστή αλληλογραφίας (π.χ. pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise Recomendado Nivel de Reabastecimient
JV,JV
Job Applicant,Solicitante de empleo
Job Opening,Job Opening
Job Profile,Job perfil
Job User,Job perfil
Job Title,Título del trabajo
"Job profile, qualifications required etc.","Perfil de trabajo, calificaciones requeridas, etc"
"Job User, qualifications required etc.","Perfil de trabajo, calificaciones requeridas, etc"
Jobs Email Settings,Trabajos Configuración del correo electrónico
Journal Entries,Entradas de diario
Journal Entry,Asientos de diario
@ -1678,7 +1678,7 @@ Ordered Quantity,Cantidad ordenada
Orders released for production.,Los pedidos a producción.
Organization,organización
Organization Name,Nombre de la organización
Organization Profile,Perfil de la organización
Organization User,Perfil de la organización
Other,Otro
Other Details,Otros detalles
Out Qty,Salir Cant.

1 (Half Day) (Medio día)
1304 Landed Cost Item Landed Cost artículo
1305 Landed Cost Items Landed Cost Artículos
1306 Landed Cost Purchase Receipt Landed Cost recibo de compra
1307 Landed Cost Purchase Receipts Landed Cost recibos de compra
1308 Landed Cost Wizard Landed Cost Asistente
1309 Last Name Apellido
1310 Last Purchase Rate Tarifa de Último
1311 Latest más reciente
1312 Latest Updates Lo más reciente
1678 PL or BS PL o BS
1679 PO Correos
1680 PO Date PO Fecha
1681 PO No PO No
1682 POP3 Mail Server Servidor de correo POP3
1683 POP3 Mail Settings Configuración de correo POP3
1684 POP3 mail server (e.g. pop.gmail.com) POP3 del servidor de correo (por ejemplo pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise recommandée SEUIL DE COMMANDE
JV,JV
Job Applicant,Demandeur d&#39;emploi
Job Opening,Offre d&#39;emploi
Job Profile,Profil d&#39;emploi
Job User,Profil d&#39;emploi
Job Title,Titre d&#39;emploi
"Job profile, qualifications required etc.","Profil de poste, qualifications requises, etc"
"Job User, qualifications required etc.","Profil de poste, qualifications requises, etc"
Jobs Email Settings,Paramètres de messagerie Emploi
Journal Entries,Journal Entries
Journal Entry,Journal Entry
@ -1678,7 +1678,7 @@ Ordered Quantity,Quantité commandée
Orders released for production.,Commandes validé pour la production.
Organization,organisation
Organization Name,Nom de l'organisme
Organization Profile,Profil de l&#39;organisation
Organization User,Profil de l&#39;organisation
Other,Autre
Other Details,Autres détails
Out Qty,out Quantité

1 (Half Day) (Demi-journée)
1304 Landed Cost Item Article coût en magasin
1305 Landed Cost Items Articles prix au débarquement
1306 Landed Cost Purchase Receipt Landed Cost reçu d&#39;achat
1307 Landed Cost Purchase Receipts Landed Cost reçus d&#39;achat
1308 Landed Cost Wizard Assistant coût en magasin
1309 Last Name Nom de famille
1310 Last Purchase Rate Purchase Rate Dernière
1311 Latest dernier
1312 Latest Updates dernières mises à jour
1678 PL or BS PL ou BS
1679 PO PO
1680 PO Date date de PO
1681 PO No PO Non
1682 POP3 Mail Server Serveur de messagerie POP3
1683 POP3 Mail Settings Paramètres de messagerie POP3
1684 POP3 mail server (e.g. pop.gmail.com) POP3 serveur de messagerie (par exemple pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise स्तर Reorder अनुशं
JV,जेवी
Job Applicant,नौकरी आवेदक
Job Opening,नौकरी खोलने
Job Profile,नौकरी प्रोफाइल
Job User,नौकरी प्रोफाइल
Job Title,कार्य शीर्षक
"Job profile, qualifications required etc.","नौकरी प्रोफाइल योग्यता, आदि की आवश्यकता"
"Job User, qualifications required etc.","नौकरी प्रोफाइल योग्यता, आदि की आवश्यकता"
Jobs Email Settings,नौकरियां ईमेल सेटिंग
Journal Entries,जर्नल प्रविष्टियां
Journal Entry,जर्नल प्रविष्टि
@ -1678,7 +1678,7 @@ Ordered Quantity,आदेशित मात्रा
Orders released for production.,उत्पादन के लिए आदेश जारी किया.
Organization,संगठन
Organization Name,संगठन का नाम
Organization Profile,संगठन प्रोफाइल
Organization User,संगठन प्रोफाइल
Other,अन्य
Other Details,अन्य विवरण
Out Qty,मात्रा बाहर

1 (Half Day) (आधे दिन)
1304 Landed Cost Item आयातित माल की लागत मद
1305 Landed Cost Items आयातित माल की लागत आइटम
1306 Landed Cost Purchase Receipt आयातित माल की लागत खरीद रसीद
1307 Landed Cost Purchase Receipts उतरा लागत खरीद रसीद
1308 Landed Cost Wizard आयातित माल की लागत विज़ार्ड
1309 Last Name सरनेम
1310 Last Purchase Rate पिछले खरीद दर
1311 Latest नवीनतम
1312 Latest Updates ताजा अपडेट
1678 PL or BS पी एल या बी एस
1679 PO पीओ
1680 PO Date पीओ तिथि
1681 PO No पीओ नहीं
1682 POP3 Mail Server POP3 मेल सर्वर
1683 POP3 Mail Settings POP3 मेल सेटिंग्स
1684 POP3 mail server (e.g. pop.gmail.com) POP3 मेल सर्वर (जैसे pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise Preporučio redoslijeda Level
JV,JV
Job Applicant,Posao podnositelj
Job Opening,Posao Otvaranje
Job Profile,Posao Profil
Job User,Posao Profil
Job Title,Titula
"Job profile, qualifications required etc.","Posao profil, kvalifikacije potrebne, itd."
"Job User, qualifications required etc.","Posao profil, kvalifikacije potrebne, itd."
Jobs Email Settings,Poslovi Postavke e-pošte
Journal Entries,Časopis upisi
Journal Entry,Časopis Stupanje
@ -1678,7 +1678,7 @@ Ordered Quantity,Količina Ž
Orders released for production.,Narudžbe objavljen za proizvodnju.
Organization,organizacija
Organization Name,Naziv organizacije
Organization Profile,Organizacija Profil
Organization User,Organizacija Profil
Other,Drugi
Other Details,Ostali podaci
Out Qty,Od kol

1 (Half Day) (Poludnevni)
1304 Landed Cost Item Sletio Troškovi artikla
1305 Landed Cost Items Sletio troškova Proizvodi
1306 Landed Cost Purchase Receipt Sletio Trošak Kupnja Potvrda
1307 Landed Cost Purchase Receipts Sletio troškova kupnje Primici
1308 Landed Cost Wizard Sletio Trošak Čarobnjak
1309 Last Name Prezime
1310 Last Purchase Rate Zadnja Kupnja Ocijenite
1311 Latest najnoviji
1312 Latest Updates najnovija ažuriranja
1678 PL or BS PL ili BS
1679 PO PO
1680 PO Date PO Datum
1681 PO No PO Nema
1682 POP3 Mail Server POP3 Mail Server
1683 POP3 Mail Settings POP3 Mail Postavke
1684 POP3 mail server (e.g. pop.gmail.com) POP3 mail server (npr. pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise consigliata riordino Livello
JV,JV
Job Applicant,Candidato di lavoro
Job Opening,Apertura di lavoro
Job Profile,Profilo di lavoro
Job User,Profilo di lavoro
Job Title,Professione
"Job profile, qualifications required etc.","Profilo professionale, le qualifiche richieste, ecc"
"Job User, qualifications required etc.","Profilo professionale, le qualifiche richieste, ecc"
Jobs Email Settings,Impostazioni email Lavoro
Journal Entries,Prime note
Journal Entry,Journal Entry
@ -1678,7 +1678,7 @@ Ordered Quantity,Ordinato Quantità
Orders released for production.,Gli ordini rilasciati per la produzione.
Organization,organizzazione
Organization Name,Nome organizzazione
Organization Profile,Profilo dell&#39;organizzazione
Organization User,Profilo dell&#39;organizzazione
Other,Altro
Other Details,Altri dettagli
Out Qty,out Quantità

1 (Half Day) (Mezza Giornata)
1304 Landed Cost Item Landed Cost articolo
1305 Landed Cost Items Landed voci di costo
1306 Landed Cost Purchase Receipt Landed Cost ricevuta di acquisto
1307 Landed Cost Purchase Receipts Sbarcati costo di acquisto Receipts
1308 Landed Cost Wizard Wizard Landed Cost
1309 Last Name Cognome
1310 Last Purchase Rate Ultimo Purchase Rate
1311 Latest ultimo
1312 Latest Updates Ultimi aggiornamenti
1678 PL or BS PL o BS
1679 PO PO
1680 PO Date PO Data
1681 PO No PO No
1682 POP3 Mail Server POP3 Mail Server
1683 POP3 Mail Settings Impostazioni di posta POP3
1684 POP3 mail server (e.g. pop.gmail.com) POP3 server di posta (ad esempio pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise Aanbevolen Reorder Niveau
JV,JV
Job Applicant,Sollicitant
Job Opening,Vacature
Job Profile,Functieprofiel
Job User,Functieprofiel
Job Title,Functie
"Job profile, qualifications required etc.","Functieprofiel, kwalificaties, etc. nodig"
"Job User, qualifications required etc.","Functieprofiel, kwalificaties, etc. nodig"
Jobs Email Settings,Vacatures E-mailinstellingen
Journal Entries,Journaalposten
Journal Entry,Journal Entry
@ -1678,7 +1678,7 @@ Ordered Quantity,Bestelde hoeveelheid
Orders released for production.,Bestellingen vrijgegeven voor productie.
Organization,organisatie
Organization Name,Naam van de Organisatie
Organization Profile,Organisatie Profiel
Organization User,Organisatie Profiel
Other,Ander
Other Details,Andere Details
Out Qty,out Aantal

1 (Half Day) (Halve dag)
1304 Landed Cost Item Landed Cost Item
1305 Landed Cost Items Landed Cost Items
1306 Landed Cost Purchase Receipt Landed Cost Inkoop Ontvangstbewijs
1307 Landed Cost Purchase Receipts Landed Cost aankoopbonnen
1308 Landed Cost Wizard Landed Cost Wizard
1309 Last Name Achternaam
1310 Last Purchase Rate Laatste Purchase Rate
1311 Latest laatst
1312 Latest Updates Laatste updates
1678 PL or BS PL of BS
1679 PO PO
1680 PO Date PO Datum
1681 PO No PO Geen
1682 POP3 Mail Server POP3-e-mailserver
1683 POP3 Mail Settings POP3-mailinstellingen
1684 POP3 mail server (e.g. pop.gmail.com) POP3-mailserver (bv pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise Recomendado nível de reposição
JV,JV
Job Applicant,Candidato a emprego
Job Opening,Vaga de emprego
Job Profile,Perfil da vaga
Job User,Perfil da vaga
Job Title,Cargo
"Job profile, qualifications required etc.","Perfil da vaga, qualificações exigidas, etc"
"Job User, qualifications required etc.","Perfil da vaga, qualificações exigidas, etc"
Jobs Email Settings,Configurações do e-mail de empregos
Journal Entries,Lançamentos do livro Diário
Journal Entry,Lançamento do livro Diário
@ -1678,7 +1678,7 @@ Ordered Quantity,Quantidade encomendada
Orders released for production.,Ordens liberadas para produção.
Organization,organização
Organization Name,Nome da Organização
Organization Profile,Perfil da Organização
Organization User,Perfil da Organização
Other,Outro
Other Details,Outros detalhes
Out Qty,Fora Qtde

1 (Half Day) (Meio Dia)
1304 Landed Cost Item Custo de desembarque do Item
1305 Landed Cost Items Custo de desembarque dos Itens
1306 Landed Cost Purchase Receipt Recibo de compra do custo de desembarque
1307 Landed Cost Purchase Receipts Recibos de compra do custo de desembarque
1308 Landed Cost Wizard Assistente de Custo de Desembarque
1309 Last Name Sobrenome
1310 Last Purchase Rate Valor da última compra
1311 Latest Latest
1312 Latest Updates Últimas Atualizações
1678 PL or BS PL ou BS
1679 PO PO
1680 PO Date PO Data
1681 PO No No PO
1682 POP3 Mail Server Servidor de e-mail POP3
1683 POP3 Mail Settings Configurações de e-mail pop3
1684 POP3 mail server (e.g. pop.gmail.com) Servidor de e-mail POP3 (por exemplo, pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise Recomendado nível de reposição
JV,JV
Job Applicant,Candidato a emprego
Job Opening,Abertura de emprego
Job Profile,Perfil trabalho
Job User,Perfil trabalho
Job Title,Cargo
"Job profile, qualifications required etc.","Profissão de perfil, qualificações exigidas, etc"
"Job User, qualifications required etc.","Profissão de perfil, qualificações exigidas, etc"
Jobs Email Settings,E-mail Configurações de empregos
Journal Entries,Jornal entradas
Journal Entry,Journal Entry
@ -1678,7 +1678,7 @@ Ordered Quantity,Quantidade pedida
Orders released for production.,Ordens liberado para produção.
Organization,organisatie
Organization Name,Naam van de Organisatie
Organization Profile,Perfil da Organização
Organization User,Perfil da Organização
Other,Outro
Other Details,Outros detalhes
Out Qty,out Aantal

1 (Half Day) (Meio Dia)
1304 Landed Cost Item Item de custo Landed
1305 Landed Cost Items Desembarcaram itens de custo
1306 Landed Cost Purchase Receipt Recibo de compra Landed Cost
1307 Landed Cost Purchase Receipts Recibos de compra desembarcaram Custo
1308 Landed Cost Wizard Assistente de Custo Landed
1309 Last Name Sobrenome
1310 Last Purchase Rate Compra de última
1311 Latest laatst
1312 Latest Updates Laatste updates
1678 PL or BS PL of BS
1679 PO PO
1680 PO Date PO Datum
1681 PO No PO Geen
1682 POP3 Mail Server Servidor de correio POP3
1683 POP3 Mail Settings Configurações de mensagens pop3
1684 POP3 mail server (e.g. pop.gmail.com) POP3 servidor de correio (por exemplo pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Препоручени ниво Итемви
JV,ЈВ
Job Applicant,Посао захтева
Job Opening,Посао Отварање
Job Profile,Посао Профил
Job User,Посао Профил
Job Title,Звање
"Job profile, qualifications required etc.","Посао профила, квалификације потребне итд"
"Job User, qualifications required etc.","Посао профила, квалификације потребне итд"
Jobs Email Settings,Послови Емаил подешавања
Journal Entries,Часопис Ентриес
Journal Entry,Јоурнал Ентри
@ -1678,7 +1678,7 @@ Ordered Quantity,Наручено Количина
Orders released for production.,Поруџбине пуштен за производњу.
Organization,организација
Organization Name,Име организације
Organization Profile,Организација Профил
Organization User,Организација Профил
Other,Други
Other Details,Остали детаљи
Out Qty,Од Кол

1 (Half Day) (Полудневни)
1304 Landed Cost Item Слетео Цена артикла
1305 Landed Cost Items Ландед трошкова Артикли
1306 Landed Cost Purchase Receipt Слетео набавну Пријем
1307 Landed Cost Purchase Receipts Ландед набавну Примања
1308 Landed Cost Wizard Слетео Трошкови Чаробњак
1309 Last Name Презиме
1310 Last Purchase Rate Последња куповина Стопа
1311 Latest најновији
1312 Latest Updates Латест Упдатес
1678 PL or BS ПЛ или БС
1679 PO ПО
1680 PO Date ПО Датум
1681 PO No ПО Нема
1682 POP3 Mail Server ПОП3 Маил Сервер
1683 POP3 Mail Settings ПОП3 Маил подешавања
1684 POP3 mail server (e.g. pop.gmail.com) ПОП3 маил сервера (нпр. поп.гмаил.цом)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,இனவாரியாக நிலை ம
JV,கூட்டு தொழில்
Job Applicant,வேலை விண்ணப்பதாரர்
Job Opening,வேலை திறக்கிறது
Job Profile,வேலை செய்தது
Job User,வேலை செய்தது
Job Title,வேலை தலைப்பு
"Job profile, qualifications required etc.","வேலை சுயவிவரத்தை, தகுதிகள் போன்ற தேவை"
"Job User, qualifications required etc.","வேலை சுயவிவரத்தை, தகுதிகள் போன்ற தேவை"
Jobs Email Settings,வேலைகள் மின்னஞ்சல் அமைப்புகள்
Journal Entries,ஜர்னல் பதிவுகள்
Journal Entry,பத்திரிகை நுழைவு
@ -1678,7 +1678,7 @@ Ordered Quantity,உத்தரவிட்டார் அளவு
Orders released for production.,ஆணைகள் உற்பத்தி வெளியிடப்பட்டது.
Organization,அமைப்பு
Organization Name,நிறுவன பெயர்
Organization Profile,அமைப்பு விவரம்
Organization User,அமைப்பு விவரம்
Other,வேறு
Other Details,மற்ற விவரங்கள்
Out Qty,அளவு அவுட்

1 (Half Day) (அரை நாள்)
1304 Landed Cost Item இறங்கினார் செலவு உருப்படி
1305 Landed Cost Items இறங்கினார் செலவு உருப்படிகள்
1306 Landed Cost Purchase Receipt இறங்கினார் செலவு கொள்முதல் ரசீது
1307 Landed Cost Purchase Receipts இறங்கினார் செலவு கொள்முதல் ரசீதுகள்
1308 Landed Cost Wizard இறங்கினார் செலவு செய்யும் விசார்ட்
1309 Last Name கடந்த பெயர்
1310 Last Purchase Rate கடந்த கொள்முதல் விலை
1311 Latest சமீபத்திய
1312 Latest Updates சமீபத்திய மேம்படுத்தல்கள்
1678 PL or BS PL அல்லது BS
1679 PO அஞ்சல்
1680 PO Date அஞ்சல் தேதி
1681 PO No அஞ்சல் இல்லை
1682 POP3 Mail Server POP3 அஞ்சல் சேவையகம்
1683 POP3 Mail Settings POP3 அஞ்சல் அமைப்புகள்
1684 POP3 mail server (e.g. pop.gmail.com) POP3 அஞ்சல் சேவையகம் (எ.கா. pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,แนะนำ Itemwise Reorder ระดั
JV,JV
Job Applicant,ผู้สมัครงาน
Job Opening,เปิดงาน
Job Profile,รายละเอียดงาน
Job User,รายละเอียดงาน
Job Title,ตำแหน่งงาน
"Job profile, qualifications required etc.",งานคุณสมบัติรายละเอียดที่จำเป็น ฯลฯ
"Job User, qualifications required etc.",งานคุณสมบัติรายละเอียดที่จำเป็น ฯลฯ
Jobs Email Settings,งานการตั้งค่าอีเมล
Journal Entries,คอมเมนต์วารสาร
Journal Entry,รายการวารสาร
@ -1678,7 +1678,7 @@ Ordered Quantity,จำนวนสั่ง
Orders released for production.,คำสั่งปล่อยให้การผลิต
Organization,องค์กร
Organization Name,ชื่อองค์กร
Organization Profile,รายละเอียดองค์กร
Organization User,รายละเอียดองค์กร
Other,อื่น ๆ
Other Details,รายละเอียดอื่น ๆ
Out Qty,ออก จำนวน

1 (Half Day) (ครึ่งวัน)
1304 Landed Cost Item รายการค่าใช้จ่ายลง
1305 Landed Cost Items รายการค่าใช้จ่ายลง
1306 Landed Cost Purchase Receipt ค่าใช้จ่ายใบเสร็จรับเงินลงซื้อ
1307 Landed Cost Purchase Receipts รายรับค่าใช้จ่ายซื้อที่ดิน
1308 Landed Cost Wizard ตัวช่วยสร้างต้นทุนที่ดิน
1309 Last Name นามสกุล
1310 Last Purchase Rate อัตราซื้อล่าสุด
1311 Latest ล่าสุด
1312 Latest Updates ปรับปรุงล่าสุด
1678 PL or BS PL หรือ BS
1679 PO PO
1680 PO Date PO วันที่
1681 PO No PO ไม่มี
1682 POP3 Mail Server เซิร์ฟเวอร์จดหมาย POP3
1683 POP3 Mail Settings การตั้งค่า POP3 จดหมาย
1684 POP3 mail server (e.g. pop.gmail.com) เซิร์ฟเวอร์อีเมล POP3 (เช่น pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise推荐级别重新排序
JV,合资公司
Job Applicant,求职者
Job Opening,招聘开幕
Job Profile,工作简介
Job User,工作简介
Job Title,职位
"Job profile, qualifications required etc.",所需的工作概况,学历等。
"Job User, qualifications required etc.",所需的工作概况,学历等。
Jobs Email Settings,乔布斯邮件设置
Journal Entries,日记帐分录
Journal Entry,日记帐分录
@ -1678,7 +1678,7 @@ Ordered Quantity,订购数量
Orders released for production.,发布生产订单。
Organization,组织
Organization Name,组织名称
Organization Profile,组织简介
Organization User,组织简介
Other,其他
Other Details,其他详细信息
Out Qty,输出数量

1 (Half Day) (半天)
1304 Landed Cost Item 到岸成本项目
1305 Landed Cost Items 到岸成本项目
1306 Landed Cost Purchase Receipt 到岸成本外购入库单
1307 Landed Cost Purchase Receipts 到岸成本外购入库单
1308 Landed Cost Wizard 到岸成本向导
1309 Last Name
1310 Last Purchase Rate 最后预订价
1311 Latest 最新
1312 Latest Updates 最新更新
1678 PL or BS PL或BS
1679 PO PO
1680 PO Date PO日期
1681 PO No 订单号码
1682 POP3 Mail Server POP3邮件服务器
1683 POP3 Mail Settings POP3邮件设定
1684 POP3 mail server (e.g. pop.gmail.com) POP3邮件服务器(如:pop.gmail.com)

View File

@ -1304,9 +1304,9 @@ Itemwise Recommended Reorder Level,Itemwise推薦級別重新排序
JV,合資公司
Job Applicant,求職者
Job Opening,招聘開幕
Job Profile,工作簡介
Job User,工作簡介
Job Title,職位
"Job profile, qualifications required etc.",所需的工作概況,學歷等。
"Job User, qualifications required etc.",所需的工作概況,學歷等。
Jobs Email Settings,喬布斯郵件設置
Journal Entries,日記帳分錄
Journal Entry,日記帳分錄
@ -1678,7 +1678,7 @@ Ordered Quantity,訂購數量
Orders released for production.,發布生產訂單。
Organization,組織
Organization Name,組織名稱
Organization Profile,組織簡介
Organization User,組織簡介
Other,其他
Other Details,其他詳細信息
Out Qty,輸出數量

1 (Half Day) (半天)
1304 Landed Cost Item 到岸成本項目
1305 Landed Cost Items 到岸成本項目
1306 Landed Cost Purchase Receipt 到岸成本外購入庫單
1307 Landed Cost Purchase Receipts 到岸成本外購入庫單
1308 Landed Cost Wizard 到岸成本嚮導
1309 Last Name
1310 Last Purchase Rate 最後預訂價
1311 Latest 最新
1312 Latest Updates 最新更新
1678 PL or BS PL或BS
1679 PO PO
1680 PO Date PO日期
1681 PO No 訂單號碼
1682 POP3 Mail Server POP3郵件服務器
1683 POP3 Mail Settings POP3郵件設定
1684 POP3 mail server (e.g. pop.gmail.com) POP3郵件服務器(如:pop.gmail.com)

View File

@ -2,7 +2,7 @@
{
"creation": "2013-05-24 14:24:48",
"docstatus": 0,
"modified": "2013-12-20 19:23:22",
"modified": "2013-12-20 19:23:23",
"modified_by": "Administrator",
"owner": "Administrator"
},
@ -32,7 +32,7 @@
"fieldname": "user",
"fieldtype": "Link",
"label": "User",
"options": "Profile",
"options": "User",
"reqd": 1
},
{

View File

@ -47,7 +47,7 @@ class TransactionBase(StatusUpdater):
"ref_name": self.doc.name
}]
if frappe.db.exists("Profile", self.doc.contact_by):
if frappe.db.exists("User", self.doc.contact_by):
event_doclist.append({
"doctype": "Event User",
"parentfield": "event_individuals",