fix: update public workspace name with json file

This commit is contained in:
Shariq Ansari 2022-08-16 18:23:23 +05:30
parent 93216fc542
commit 521102b589
3 changed files with 38 additions and 3 deletions

View file

@ -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).

View file

@ -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():

View file

@ -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)