|
- import glob
- import json
- import frappe
- import os
- from frappe.query_builder import DocType as _DocType
-
-
- def execute():
- """Resetting creation datetimes for DocTypes"""
- DocType = _DocType("DocType")
- doctype_jsons = glob.glob(
- os.path.join("..", "apps", "frappe", "frappe", "**", "doctype", "**", "*.json")
- )
-
- frappe_modules = frappe.get_all(
- "Module Def", filters={"app_name": "frappe"}, pluck="name"
- )
- site_doctypes = frappe.get_all(
- "DocType",
- filters={"module": ("in", frappe_modules), "custom": False},
- fields=["name", "creation"],
- )
-
- for dt_path in doctype_jsons:
- with open(dt_path) as f:
- try:
- file_schema = frappe._dict(json.load(f))
- except Exception:
- continue
-
- if not file_schema.name:
- continue
-
- _site_schema = [x for x in site_doctypes if x.name == file_schema.name]
- if not _site_schema:
- continue
-
- if file_schema.creation != _site_schema[0].creation:
- frappe.qb.update(DocType).set(
- DocType.creation, file_schema.creation
- ).where(DocType.name == file_schema.name).run()
|