fix: update public workspace name with json file
This commit is contained in:
parent
93216fc542
commit
521102b589
3 changed files with 38 additions and 3 deletions
|
|
@ -16,6 +16,7 @@ import inspect
|
|||
import json
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import warnings
|
||||
from typing import TYPE_CHECKING, Any, Callable, Literal, Optional, overload
|
||||
|
||||
|
|
@ -530,6 +531,12 @@ def throw(
|
|||
)
|
||||
|
||||
|
||||
def delete_folder(path: str) -> None:
|
||||
"""Delete folder and all the content inside that folder."""
|
||||
if os.path.exists(path):
|
||||
shutil.rmtree(path)
|
||||
|
||||
|
||||
def create_folder(path, with_init=False):
|
||||
"""Create a folder in the given path and add an `__init__.py` file (optional).
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from frappe.desk.desktop import save_new_widget
|
|||
from frappe.desk.utils import validate_route_conflict
|
||||
from frappe.model.document import Document
|
||||
from frappe.model.rename_doc import rename_doc
|
||||
from frappe.modules.export_file import export_to_files
|
||||
from frappe.modules.export_file import delete_folder, export_to_files
|
||||
|
||||
|
||||
class Workspace(Document):
|
||||
|
|
@ -28,8 +28,22 @@ class Workspace(Document):
|
|||
if disable_saving_as_public():
|
||||
return
|
||||
|
||||
if frappe.conf.developer_mode and self.module and self.public:
|
||||
export_to_files(record_list=[["Workspace", self.name]], record_module=self.module)
|
||||
if frappe.conf.developer_mode and self.public:
|
||||
if self.module:
|
||||
export_to_files(record_list=[["Workspace", self.name]], record_module=self.module)
|
||||
|
||||
if self.has_value_changed("title") or self.has_value_changed("module"):
|
||||
previous = self.get_doc_before_save()
|
||||
if previous and previous.get("module") and previous.get("title"):
|
||||
delete_folder(previous.get("module"), "Workspace", previous.get("title"))
|
||||
|
||||
def before_export(self, doc):
|
||||
if doc.title != doc.label and doc.label == doc.name:
|
||||
self.name = doc.name = doc.label = doc.title
|
||||
|
||||
def after_delete(self):
|
||||
if self.module:
|
||||
delete_folder(self.module, "Workspace", self.title)
|
||||
|
||||
@staticmethod
|
||||
def get_module_page_map():
|
||||
|
|
|
|||
|
|
@ -92,6 +92,20 @@ def get_module_name(doc):
|
|||
return module
|
||||
|
||||
|
||||
def delete_folder(module, dt, dn):
|
||||
if frappe.db.get_value("Module Def", module, "custom"):
|
||||
module_path = get_custom_module_path(module)
|
||||
else:
|
||||
module_path = get_module_path(module)
|
||||
|
||||
dt, dn = scrub_dt_dn(dt, dn)
|
||||
|
||||
# delete folder
|
||||
folder = os.path.join(module_path, dt, dn)
|
||||
|
||||
frappe.delete_folder(folder)
|
||||
|
||||
|
||||
def create_folder(module, dt, dn, create_init):
|
||||
if frappe.db.get_value("Module Def", module, "custom"):
|
||||
module_path = get_custom_module_path(module)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue