63 lines
2.3 KiB
Python
63 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)
|