appraisal cleanup, removed un-necessary logic

This commit is contained in:
Rushabh Mehta 2012-11-16 10:37:14 +05:30
parent 5b22fc6b61
commit 04b9579b24
7 changed files with 309 additions and 482 deletions

View File

@ -1,4 +1,9 @@
erpnext.updates = [
["14th November 2012", [
"Appraisal: Cleaned up form and logic. Removed complex and unnecessary approval logic, \
the appraiser can select the template and role and make an appraisal. \
Normal user can see self created Appraisals. HR Manager can see all Appraisals.",
]],
["14th November 2012", [
"Customer Issue: Moved all allocations to 'Assigned' so that there is avoid duplication fo features.",
"Letter Head: Show preview, make upload button more visible.",

View File

@ -15,6 +15,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
cur_frm.add_fetch('employee', 'company', 'company');
cur_frm.add_fetch('employee', 'employee_name', 'employee_name');
cur_frm.cscript.onload = function(doc,cdt,cdn){
if(!doc.status)
@ -24,17 +25,21 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){
}
cur_frm.cscript.onload_post_render = function(doc,cdt,cdn){
if(doc.employee)
cur_frm.cscript.employee(doc,cdt,cdn);
if(doc.__islocal && doc.employee==user_defaults.employee) {
cur_frm.set_value("employee", "");
cur_frm.set_value("employee_name", "")
}
}
cur_frm.cscript.refresh = function(doc,cdt,cdn){
if(user == doc.kra_approver && doc.status == 'Submitted')
unhide_field(['update', 'declare_completed', 'calculate_total_score']);
else hide_field(['update', 'declare_completed', 'calculate_total_score']);
if(!doc.docstatus) unhide_field('fetch_template');
else hide_field('fetch_template');
}
cur_frm.cscript.kra_template = function(doc, dt, dn) {
$c_obj(make_doclist(doc.doctype, doc.name), 'fetch_kra', '',
function() {
cur_frm.refresh();
});
}
@ -48,18 +53,6 @@ cur_frm.cscript.refresh_appraisal_details = function(doc, cdt, cdn){
refresh_field('total_score');
}
cur_frm.cscript.employee = function(doc,cdt,cdn){
if(doc.employee){
$c_obj(make_doclist(doc.doctype, doc.name),'set_approver','', function(r,rt){
if(r.message){
doc.employee_name = r.message['emp_nm'];
Meta.get_field(doc.doctype, 'kra_approver' , doc.name).options = r.message['app_lst'];
refresh_many(['kra_approver','employee_name']);
}
});
}
}
cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
//get_server_fields('calculate_total','','',doc,cdt,cdn,1);
var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
@ -71,67 +64,6 @@ cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
refresh_field('total_score')
}
cur_frm.cscript.declare_completed = function(doc,cdt,cdn){
var declare_completed_dialog;
set_declare_completed_dialog = function() {
declare_completed_dialog = new Dialog(400, 200, 'Declare Completed');
declare_completed_dialog.make_body([
['HTML', 'Message', '<div class = "comment">You wont be able to do any changes after declaring this Appraisal as completed. Are you sure, you want to declare it as completed ?</div>'],
['HTML', 'Response', '<div class = "comment" id="declare_completed_dialog_response"></div>'],
['HTML', 'Declare Completed', '<div></div>']
]);
var declare_completed_btn1 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button');
declare_completed_btn1.innerHTML = 'Yes';
declare_completed_btn1.onclick = function(){ declare_completed_dialog.add(); }
var declare_completed_btn2 = $a($i(declare_completed_dialog.widgets['Declare Completed']), 'button', 'button');
declare_completed_btn2.innerHTML = 'No';
$y(declare_completed_btn2,{marginLeft:'4px'});
declare_completed_btn2.onclick = function(){ declare_completed_dialog.hide();}
declare_completed_dialog.onshow = function() {
$i('declare_completed_dialog_response').innerHTML = '';
}
declare_completed_dialog.refresh_dt = function(){
cur_frm.cscript.refresh(this.doc, this.cdt, this.cdn);
}
declare_completed_dialog.add = function() {
// sending...
$i('declare_completed_dialog_response').innerHTML = 'Processing...';
var m_arg = user+ '~~' + this.msg_nm_lst;
$c_obj(make_doclist(this.doc.doctype, this.doc.name),'declare_completed','', function(r,rt){
if(r.message.status == 'Completed'){
$i('declare_completed_dialog_response').innerHTML = 'Done';
refresh_field('status');
declare_completed_dialog.refresh_dt();
hide_field(['update', 'declare_completed', 'calculate_total_score']);
declare_completed_dialog.hide();
}
else if(r.message.status == 'Incomplete'){
$i('declare_completed_dialog_response').innerHTML = 'Incomplete Appraisal';
}
else if(r.message.status == 'No Score'){
$i('declare_completed_dialog_response').innerHTML = 'Calculate total score';
}
});
}
}
if(!declare_completed_dialog){
set_declare_completed_dialog();
}
declare_completed_dialog.doc = doc;
declare_completed_dialog.cdt = cdt;
declare_completed_dialog.cdn = cdn;
declare_completed_dialog.show();
}
cur_frm.cscript.score = function(doc,cdt,cdn){
var d = locals[cdt][cdn];
if (d.score){

View File

@ -23,7 +23,6 @@ from webnotes.model.doclist import getlist
from webnotes.model.code import get_obj
from webnotes import msgprint
set = webnotes.conn.set
sql = webnotes.conn.sql
@ -39,11 +38,9 @@ class DocType:
return emp_nm
def fetch_kra(self):
if not self.doc.kra_template:
msgprint("Please select Appraisal Template to be be fetched")
raise Exception
self.doclist = self.doc.clear_table(self.doclist,'appraisal_details')
get_obj('DocType Mapper', 'Appraisal Template-Appraisal').dt_map('Appraisal Template', 'Appraisal', self.doc.kra_template, self.doc, self.doclist, "[['Appraisal Template','Appraisal'],['Appraisal Template Goal', 'Appraisal Goal']]")
get_obj('DocType Mapper', 'Appraisal Template-Appraisal').dt_map('Appraisal Template', 'Appraisal',
self.doc.kra_template, self.doc, self.doclist, "[['Appraisal Template','Appraisal'],['Appraisal Template Goal', 'Appraisal Goal']]")
def validate_dates(self):
if getdate(self.doc.start_date) > getdate(self.doc.end_date):
@ -53,107 +50,37 @@ class DocType:
def validate_existing_appraisal(self):
chk = sql("select name from `tabAppraisal` where employee=%s and (status='Submitted' or status='Completed') and ((start_date>=%s and start_date<=%s) or (end_date>=%s and end_date<=%s))",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date))
if chk:
msgprint("You have already created Appraisal "+cstr(chk[0][0])+" in the current date range for employee "+cstr(self.doc.employee_name))
msgprint("You have already created Appraisal "\
+cstr(chk[0][0])+" in the current date range for employee "\
+cstr(self.doc.employee_name))
raise Exception
def validate_curr_appraisal(self):
for d in getlist(self.doclist, 'appraisal_details'):
if d.target_achieved or d.score:
if self.doc.status == 'Draft':
msgprint("Target achieved or Score can be added only for submitted Appraisal")
raise Exception
elif self.doc.status == 'Submitted' and session['user'] != self.doc.kra_approver:
msgprint("Target achieved or Score can be added only by Appraisal Approver")
raise Exception
def validate_fiscal_year(self):
fy=sql("select year_start_date from `tabFiscal Year` where name='%s'"%self.doc.fiscal_year)
ysd=fy and fy[0][0] or ""
yed=add_days(str(ysd),365)
if str(self.doc.start_date) < str(ysd) or str(self.doc.start_date) > str(yed) or str(self.doc.end_date) < str(ysd) or str(self.doc.end_date) > str(yed):
msgprint("Appraisal date range is not within the Fiscal Year selected")
raise Exception
def validate(self):
if not self.doc.status:
self.doc.status = "Draft"
self.validate_dates()
self.validate_existing_appraisal()
self.validate_curr_appraisal()
self.validate_fiscal_year()
def set_approver(self):
errprint('here')
ret={}
approver_lst =[]
emp_nm = self.get_employee_name()
approver_lst1 = get_obj('Authorization Control').get_approver_name(self.doc.doctype,0,self)
if approver_lst1:
approver_lst=approver_lst1
else:
approver_lst = [x[0] for x in sql("select distinct name from `tabProfile` where enabled=1 and name!='Administrator' and name!='Guest' and docstatus!=2")]
ret = {'app_lst':"\n" + "\n".join(approver_lst), 'emp_nm':cstr(emp_nm)}
return ret
self.calculate_total()
def calculate_total(self):
total = 0
total, total_w = 0, 0
for d in getlist(self.doclist, 'appraisal_details'):
if d.score:
total = total + flt(d.score_earned)
ret={'total_score':flt(total)}
return ret
def declare_completed(self):
ret={}
for d in getlist(self.doclist, 'appraisal_details'):
if not d.target_achieved or not d.score or not d.score_earned:
msgprint("Please add 'Target Achieved' and 'Score' for all KPI")
ret = {'status':'Incomplete'}
return ret
d.score_earned = flt(d.score) * flt(d.per_weightage) / 100
total = total + d.score_earned
total_w += flt(d.per_weightage)
if int(total_w) != 100:
msgprint("Total weightage assigned should be 100%. It is :" + str(total_w) + "%",
raise_exception=1)
if not self.doc.total_score:
msgprint("Please calculate total score using button 'Calculate Total Score'")
ret = {'status':'No Score'}
return ret
self.update_appraisal()
#set(self.doc, 'status', 'Completed')
ret = {'status':'Completed'}
return ret
def update_appraisal(self):
for d in getlist(self.doclist, 'appraisal_details'):
if not d.kra or not d.per_weightage:
msgprint("Please remove the extra blank row added")
raise Exception
d.save()
if self.doc.total_score:
set(self.doc,'total_score',self.doc.total_score)
def on_update(self):
set(self.doc, 'status', 'Draft')
def validate_total_weightage(self):
total_w = 0
for d in getlist(self.doclist, 'appraisal_details'):
total_w = flt(total_w) + flt(d.per_weightage)
if flt(total_w)>100 or flt(total_w)<100:
msgprint("Total of weightage assigned to KPI is "+cstr(total_w)+".It should be 100(%)")
raise Exception
def validate_appraisal_detail(self):
if not self.doc.kra_approver:
msgprint("Please mention the name of Approver")
raise Exception
if not getlist(self.doclist, 'appraisal_details'):
msgprint("Please add KRA Details")
raise Exception
self.validate_total_weightage()
if total==0:
msgprint("Total can't be zero. You must atleast give some points!", raise_exception=1)
self.doc.total_score = total
def on_submit(self):
self.validate_appraisal_detail()
set(self.doc, 'status', 'Submitted')
webnotes.conn.set(self.doc, 'status', 'Submitted')
def on_cancel(self):
set(self.doc, 'status', 'Cancelled')
webnotes.conn.set(self.doc, 'status', 'Cancelled')

View File

@ -3,11 +3,11 @@
# These values are common in all dictionaries
{
'creation': '2012-03-27 14:35:53',
'docstatus': 0,
'modified': '2012-03-27 14:45:46',
'modified_by': u'Administrator',
'owner': u'ashwini@webnotestech.com'
u'creation': '2012-11-16 10:33:39',
u'docstatus': 0,
u'modified': '2012-11-16 10:35:01',
u'modified_by': u'Administrator',
u'owner': u'ashwini@webnotestech.com'
},
# These values are common for all DocType
@ -16,21 +16,21 @@
'autoname': u'APRSL.#####',
'colour': u'White:FFF',
'default_print_format': u'Standard',
'doctype': 'DocType',
u'doctype': u'DocType',
'is_submittable': 1,
'module': u'HR',
'name': '__common__',
u'name': u'__common__',
'search_fields': u'status, employee, employee_name',
'section_style': u'Simple',
'server_code_error': u' ',
'show_in_menu': 0,
'version': 161
'version': 1
},
# These values are common for all DocField
{
'doctype': u'DocField',
'name': '__common__',
u'doctype': u'DocField',
u'name': u'__common__',
'parent': u'Appraisal',
'parentfield': u'fields',
'parenttype': u'DocType'
@ -38,8 +38,8 @@
# These values are common for all DocPerm
{
'doctype': u'DocPerm',
'name': '__common__',
u'doctype': u'DocPerm',
u'name': u'__common__',
'parent': u'Appraisal',
'parentfield': u'permissions',
'parenttype': u'DocType',
@ -48,76 +48,13 @@
# DocType, Appraisal
{
'doctype': 'DocType',
'name': u'Appraisal'
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
'doctype': u'DocPerm',
'permlevel': 0,
'role': u'System Manager',
'submit': 1,
'write': 1
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
'doctype': u'DocPerm',
'permlevel': 0,
'role': u'System Manager',
'submit': 1,
'write': 1
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
'doctype': u'DocPerm',
'permlevel': 0,
'role': u'HR Manager',
'submit': 1,
'write': 1
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
'doctype': u'DocPerm',
'permlevel': 0,
'role': u'HR User',
'submit': 1,
'write': 1
},
# DocPerm
{
'doctype': u'DocPerm',
'permlevel': 0,
'role': u'All',
'write': 1
},
# DocPerm
{
'doctype': u'DocPerm',
'permlevel': 1,
'role': u'All'
u'doctype': u'DocType',
u'name': u'Appraisal'
},
# DocField
{
'doctype': u'DocField',
u'doctype': u'DocField',
'fieldname': u'employee_details',
'fieldtype': u'Section Break',
'label': u'Employee Details',
@ -125,11 +62,70 @@
'permlevel': 0
},
# DocField
{
'colour': u'White:FFF',
'description': u'Select template from which you want to get the Goals',
u'doctype': u'DocField',
'fieldname': u'kra_template',
'fieldtype': u'Link',
'label': u'Appraisal Template',
'oldfieldname': u'kra_template',
'oldfieldtype': u'Link',
'options': u'Appraisal Template',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'colour': u'White:FFF',
'depends_on': u'kra_template',
'description': u'Select the Employee for whom you are creating the Appraisal.',
u'doctype': u'DocField',
'fieldname': u'employee',
'fieldtype': u'Link',
'in_filter': 1,
'label': u'For Employee',
'oldfieldname': u'employee',
'oldfieldtype': u'Link',
'options': u'Employee',
'permlevel': 0,
'reqd': 1,
'search_index': 1,
'trigger': u'Client'
},
# DocField
{
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'employee_name',
'fieldtype': u'Data',
'in_filter': 1,
'label': u'For Employee Name',
'oldfieldname': u'employee_name',
'oldfieldtype': u'Data',
'permlevel': 1
},
# DocField
{
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'column_break0',
'fieldtype': u'Column Break',
'oldfieldtype': u'Column Break',
'permlevel': 0,
'width': u'50%'
},
# DocField
{
'colour': u'White:FFF',
'default': u'Draft',
'doctype': u'DocField',
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'status',
'fieldtype': u'Select',
'in_filter': 1,
@ -145,50 +141,115 @@
# DocField
{
'colour': u'White:FFF',
'doctype': u'DocField',
'fieldname': u'employee',
'fieldtype': u'Link',
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'start_date',
'fieldtype': u'Date',
'in_filter': 1,
'label': u'Employee',
'oldfieldname': u'employee',
'oldfieldtype': u'Link',
'options': u'Employee',
'permlevel': 0,
'reqd': 1,
'search_index': 1,
'trigger': u'Client'
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'employee_name',
'fieldtype': u'Data',
'in_filter': 1,
'label': u'Employee Name',
'oldfieldname': u'employee_name',
'oldfieldtype': u'Data',
'permlevel': 1
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'fiscal_year',
'fieldtype': u'Select',
'in_filter': 1,
'label': u'Fiscal Year',
'oldfieldname': u'fiscal_year',
'oldfieldtype': u'Select',
'options': u'link:Fiscal Year',
'label': u'Start Date',
'oldfieldname': u'start_date',
'oldfieldtype': u'Date',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': u'DocField',
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'end_date',
'fieldtype': u'Date',
'in_filter': 1,
'label': u'End Date',
'oldfieldname': u'end_date',
'oldfieldtype': u'Date',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'section_break0',
'fieldtype': u'Section Break',
'label': u'Goals',
'oldfieldtype': u'Section Break',
'options': u'Simple',
'permlevel': 0
},
# DocField
{
'allow_on_submit': 0,
'colour': u'White:FFF',
u'doctype': u'DocField',
'fieldname': u'appraisal_details',
'fieldtype': u'Table',
'label': u'Appraisal Goals',
'oldfieldname': u'appraisal_details',
'oldfieldtype': u'Table',
'options': u'Appraisal Goal',
'permlevel': 0
},
# DocField
{
'allow_on_submit': 0,
u'doctype': u'DocField',
'fieldname': u'calculate_total_score',
'fieldtype': u'Button',
'label': u'Calculate Total Score',
'oldfieldtype': u'Button',
'options': u'calculate_total',
'permlevel': 0
},
# DocField
{
u'doctype': u'DocField',
'fieldname': u'total_score',
'fieldtype': u'Currency',
'label': u'Total Score (Out of 5)',
'no_copy': 1,
'oldfieldname': u'total_score',
'oldfieldtype': u'Currency',
'permlevel': 1
},
# DocField
{
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'section_break1',
'fieldtype': u'Section Break',
'permlevel': 0
},
# DocField
{
'colour': u'White:FFF',
'description': u'Any other comments, noteworthy effort that should go in the records.',
u'doctype': u'DocField',
'fieldname': u'comments',
'fieldtype': u'Text',
'label': u'Comments',
'permlevel': 0
},
# DocField
{
'depends_on': u'kra_template',
u'doctype': u'DocField',
'fieldname': u'other_details',
'fieldtype': u'Section Break',
'label': u'Other Details',
'permlevel': 0
},
# DocField
{
u'doctype': u'DocField',
'fieldname': u'company',
'fieldtype': u'Select',
'in_filter': 1,
@ -202,73 +263,21 @@
# DocField
{
'doctype': u'DocField',
'fieldname': u'column_break0',
'fieldtype': u'Column Break',
'oldfieldtype': u'Column Break',
'permlevel': 0,
'width': u'50%'
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'start_date',
'fieldtype': u'Date',
'in_filter': 1,
'label': u'Start Date',
'oldfieldname': u'start_date',
'oldfieldtype': u'Date',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'end_date',
'fieldtype': u'Date',
'in_filter': 1,
'label': u'End Date',
'oldfieldname': u'end_date',
'oldfieldtype': u'Date',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'colour': u'White:FFF',
'doctype': u'DocField',
'fieldname': u'kra_approver',
u'doctype': u'DocField',
'fieldname': u'fiscal_year',
'fieldtype': u'Select',
'in_filter': 0,
'label': u'Approver',
'oldfieldname': u'kra_approver',
'in_filter': 1,
'label': u'Fiscal Year',
'oldfieldname': u'fiscal_year',
'oldfieldtype': u'Select',
'options': u'link:Fiscal Year',
'permlevel': 0,
'trigger': u'Client'
'reqd': 1
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'amended_from',
'fieldtype': u'Data',
'hidden': 1,
'label': u'Amended From',
'no_copy': 1,
'oldfieldname': u'amended_from',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1,
'report_hide': 1,
'width': u'150px'
},
# DocField
{
'doctype': u'DocField',
u'doctype': u'DocField',
'fieldname': u'amendment_date',
'fieldtype': u'Date',
'hidden': 1,
@ -284,101 +293,58 @@
# DocField
{
'allow_on_submit': 1,
'colour': u'White:FFF',
'doctype': u'DocField',
'fieldname': u'declare_completed',
'fieldtype': u'Button',
'label': u'Declare Completed',
'oldfieldtype': u'Button',
'permlevel': 0,
'trigger': u'Client'
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'section_break0',
'fieldtype': u'Section Break',
'oldfieldtype': u'Section Break',
'options': u'Simple',
'permlevel': 0
},
# DocField
{
'colour': u'White:FFF',
'description': u'Select template from which you want to fetch KRA',
'doctype': u'DocField',
'fieldname': u'kra_template',
'fieldtype': u'Link',
'label': u'Appraisal Template',
'oldfieldname': u'kra_template',
'oldfieldtype': u'Link',
'options': u'Appraisal Template',
'permlevel': 0
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'fetch_template',
'fieldtype': u'Button',
'label': u'Fetch Template',
'oldfieldtype': u'Button',
'options': u'fetch_kra',
'permlevel': 0
},
# DocField
{
'allow_on_submit': 1,
'colour': u'White:FFF',
'doctype': u'DocField',
'fieldname': u'update',
'fieldtype': u'Button',
u'doctype': u'DocField',
'fieldname': u'amended_from',
'fieldtype': u'Data',
'hidden': 1,
'label': u'Update',
'oldfieldtype': u'Button',
'permlevel': 0,
'trigger': u'Client'
},
# DocField
{
'allow_on_submit': 1,
'colour': u'White:FFF',
'doctype': u'DocField',
'fieldname': u'appraisal_details',
'fieldtype': u'Table',
'label': u'Appraisal Goals',
'oldfieldname': u'appraisal_details',
'oldfieldtype': u'Table',
'options': u'Appraisal Goal',
'permlevel': 0
},
# DocField
{
'allow_on_submit': 1,
'doctype': u'DocField',
'fieldname': u'calculate_total_score',
'fieldtype': u'Button',
'label': u'Calculate Total Score',
'oldfieldtype': u'Button',
'options': u'calculate_total',
'permlevel': 0
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'total_score',
'fieldtype': u'Currency',
'label': u'Total Score (Out of 5)',
'label': u'Amended From',
'no_copy': 1,
'oldfieldname': u'total_score',
'oldfieldtype': u'Currency',
'permlevel': 1
'oldfieldname': u'amended_from',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1,
'report_hide': 1,
'width': u'150px'
},
# DocPerm
{
u'doctype': u'DocPerm',
'match': u'owner',
'permlevel': 0,
'role': u'Employee',
'submit': 1,
'write': 1
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
u'doctype': u'DocPerm',
'permlevel': 0,
'role': u'System Manager',
'submit': 1,
'write': 1
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
u'doctype': u'DocPerm',
'permlevel': 0,
'role': u'HR User',
'submit': 1,
'write': 1
},
# DocPerm
{
u'doctype': u'DocPerm',
'permlevel': 1,
'role': u'All'
}
]

View File

@ -3,11 +3,11 @@
# These values are common in all dictionaries
{
'creation': '2012-03-27 14:35:53',
'docstatus': 0,
'modified': '2012-03-27 14:35:53',
'modified_by': u'Administrator',
'owner': u'ashwini@webnotestech.com'
u'creation': '2012-07-03 13:30:40',
u'docstatus': 0,
u'modified': '2012-11-15 17:50:24',
u'modified_by': u'Administrator',
u'owner': u'ashwini@webnotestech.com'
},
# These values are common for all DocType
@ -15,19 +15,19 @@
'autoname': u'APRSLD.#####',
'colour': u'White:FFF',
'default_print_format': u'Standard',
'doctype': 'DocType',
u'doctype': u'DocType',
'istable': 1,
'module': u'HR',
'name': '__common__',
u'name': u'__common__',
'section_style': u'Simple',
'server_code_error': u' ',
'version': 15
'version': 1
},
# These values are common for all DocField
{
'doctype': u'DocField',
'name': '__common__',
u'doctype': u'DocField',
u'name': u'__common__',
'parent': u'Appraisal Goal',
'parentfield': u'fields',
'parenttype': u'DocType'
@ -35,54 +35,43 @@
# DocType, Appraisal Goal
{
'doctype': 'DocType',
'name': u'Appraisal Goal'
u'doctype': u'DocType',
u'name': u'Appraisal Goal'
},
# DocField
{
'colour': u'White:FFF',
'description': u'Key Responsibility Area',
'doctype': u'DocField',
u'doctype': u'DocField',
'fieldname': u'kra',
'fieldtype': u'Small Text',
'label': u'KRA',
'label': u'Goal',
'oldfieldname': u'kra',
'oldfieldtype': u'Small Text',
'permlevel': 0,
'reqd': 1
'reqd': 1,
'width': u'240px'
},
# DocField
{
'doctype': u'DocField',
u'doctype': u'DocField',
'fieldname': u'per_weightage',
'fieldtype': u'Currency',
'label': u'Weightage (%)',
'oldfieldname': u'per_weightage',
'oldfieldtype': u'Currency',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'allow_on_submit': 1,
'doctype': u'DocField',
'fieldname': u'target_achieved',
'fieldtype': u'Small Text',
'label': u'Target Achieved',
'no_copy': 1,
'oldfieldname': u'target_achieved',
'oldfieldtype': u'Small Text',
'permlevel': 0
'reqd': 1,
'width': u'70px'
},
# DocField
{
'allow_on_submit': 1,
'colour': u'White:FFF',
'doctype': u'DocField',
u'doctype': u'DocField',
'fieldname': u'score',
'fieldtype': u'Currency',
'label': u'Score (0-5)',
@ -92,18 +81,19 @@
'options': u'\n0\n1\n2\n3\n4\n5',
'permlevel': 0,
'trigger': u'Client',
'width': u'60px'
'width': u'70px'
},
# DocField
{
'doctype': u'DocField',
u'doctype': u'DocField',
'fieldname': u'score_earned',
'fieldtype': u'Currency',
'label': u'Score Earned',
'no_copy': 1,
'oldfieldname': u'score_earned',
'oldfieldtype': u'Currency',
'permlevel': 1
'permlevel': 1,
'width': u'70px'
}
]

View File

@ -0,0 +1,3 @@
import webnotes
def execute():
webnotes.conn.sql("""delete from tabDocPerm where parent='Appraisal'""")

View File

@ -667,4 +667,8 @@ patch_list = [
'patch_module': 'patches.november_2012',
'patch_file': 'customer_issue_allocated_to_assigned',
},
{
'patch_module': 'patches.november_2012',
'patch_file': 'reset_appraisal_permissions',
},
]