diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index ad6ef7b..93e38d8 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,5 +1,10 @@
 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.",
 		"Price List: Removed import, now import from Data Import Tool.",
diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js
index 4c7c5e5..3601da9 100644
--- a/hr/doctype/appraisal/appraisal.js
+++ b/hr/doctype/appraisal/appraisal.js
@@ -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_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 @@
 	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 @@
 	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){
diff --git a/hr/doctype/appraisal/appraisal.py b/hr/doctype/appraisal/appraisal.py
index 39bc3ff..310e02b 100644
--- a/hr/doctype/appraisal/appraisal.py
+++ b/hr/doctype/appraisal/appraisal.py
@@ -23,7 +23,6 @@
 from webnotes.model.code import get_obj
 from webnotes import msgprint
 
-set = webnotes.conn.set
 sql = webnotes.conn.sql
 
 
@@ -39,11 +38,9 @@
 		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 @@
 	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')
diff --git a/hr/doctype/appraisal/appraisal.txt b/hr/doctype/appraisal/appraisal.txt
index bfba9fc..c7eab6a 100644
--- a/hr/doctype/appraisal/appraisal.txt
+++ b/hr/doctype/appraisal/appraisal.txt
@@ -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',
@@ -128,8 +65,67 @@
 	# 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'
 	}
 ]
\ No newline at end of file
diff --git a/hr/doctype/appraisal_goal/appraisal_goal.txt b/hr/doctype/appraisal_goal/appraisal_goal.txt
index fab4e84..ada41f5 100644
--- a/hr/doctype/appraisal_goal/appraisal_goal.txt
+++ b/hr/doctype/appraisal_goal/appraisal_goal.txt
@@ -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'
 	}
 ]
\ No newline at end of file
diff --git a/patches/november_2012/reset_appraisal_permissions.py b/patches/november_2012/reset_appraisal_permissions.py
new file mode 100644
index 0000000..2000c2f
--- /dev/null
+++ b/patches/november_2012/reset_appraisal_permissions.py
@@ -0,0 +1,3 @@
+import webnotes
+def execute():
+	webnotes.conn.sql("""delete from tabDocPerm where parent='Appraisal'""")
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 2b404b9..30eca6b 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -667,4 +667,8 @@
 		'patch_module': 'patches.november_2012',
 		'patch_file': 'customer_issue_allocated_to_assigned',
 	},
+	{
+		'patch_module': 'patches.november_2012',
+		'patch_file': 'reset_appraisal_permissions',
+	},
 ]
