59 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2018, Frappe and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| 
 | |
| import frappe
 | |
| from frappe.model.utils.rename_field import rename_field
 | |
| 
 | |
| 
 | |
| def execute():
 | |
| 	# Rename and reload the Land Unit and Linked Land Unit doctypes
 | |
| 	if frappe.db.table_exists('Land Unit') and not frappe.db.table_exists('Location'):
 | |
| 		frappe.rename_doc('DocType', 'Land Unit', 'Location', force=True)
 | |
| 
 | |
| 	frappe.reload_doc('assets', 'doctype', 'location')
 | |
| 
 | |
| 	if frappe.db.table_exists('Linked Land Unit') and not frappe.db.table_exists('Linked Location'):
 | |
| 		frappe.rename_doc('DocType', 'Linked Land Unit', 'Linked Location', force=True)
 | |
| 
 | |
| 	frappe.reload_doc('assets', 'doctype', 'linked_location')
 | |
| 
 | |
| 	if not frappe.db.table_exists('Crop Cycle'):
 | |
| 		frappe.reload_doc('agriculture', 'doctype', 'crop_cycle')
 | |
| 
 | |
| 	# Rename the fields in related doctypes
 | |
| 	if 'linked_land_unit' in frappe.db.get_table_columns('Crop Cycle'):
 | |
| 		rename_field('Crop Cycle', 'linked_land_unit', 'linked_location')
 | |
| 
 | |
| 	if 'land_unit' in frappe.db.get_table_columns('Linked Location'):
 | |
| 		rename_field('Linked Location', 'land_unit', 'location')
 | |
| 
 | |
| 	if not frappe.db.exists("Location", "All Land Units"):
 | |
| 		frappe.get_doc({"doctype": "Location", "is_group": True, "location_name": "All Land Units"}).insert(ignore_permissions=True)
 | |
| 
 | |
| 	if frappe.db.table_exists('Land Unit'):
 | |
| 		land_units = frappe.get_all('Land Unit', fields=['*'], order_by='lft')
 | |
| 
 | |
| 		for land_unit in land_units:
 | |
| 			if not frappe.db.exists('Location', land_unit.get('land_unit_name')):
 | |
| 				frappe.get_doc({
 | |
| 					'doctype': 'Location',
 | |
| 					'location_name': land_unit.get('land_unit_name'),
 | |
| 					'parent_location': land_unit.get('parent_land_unit') or "All Land Units",
 | |
| 					'is_container': land_unit.get('is_container'),
 | |
| 					'is_group': land_unit.get('is_group'),
 | |
| 					'latitude': land_unit.get('latitude'),
 | |
| 					'longitude': land_unit.get('longitude'),
 | |
| 					'area': land_unit.get('area'),
 | |
| 					'location': land_unit.get('location'),
 | |
| 					'lft': land_unit.get('lft'),
 | |
| 					'rgt': land_unit.get('rgt')
 | |
| 				}).insert(ignore_permissions=True)
 | |
| 
 | |
| 	# Delete the Land Unit and Linked Land Unit doctypes
 | |
| 	if frappe.db.table_exists('Land Unit'):
 | |
| 		frappe.delete_doc('DocType', 'Land Unit', force=1)
 | |
| 
 | |
| 	if frappe.db.table_exists('Linked Land Unit'):
 | |
| 		frappe.delete_doc('DocType', 'Linked Land Unit', force=1)
 |