Moved Custom Server Scripts to custom_scripts/doctype_name.py
This commit is contained in:
parent
9ffb1dbdd8
commit
d274e04c1b
4 changed files with 34 additions and 18 deletions
|
|
@ -42,4 +42,30 @@ def get_custom_server_script(doctype):
|
|||
webnotes.cache().set_value("_server_script:" + doctype, custom_script)
|
||||
|
||||
return custom_script
|
||||
|
||||
|
||||
def make_custom_server_scripts_path():
|
||||
from webnotes.utils import get_site_path
|
||||
import os
|
||||
|
||||
custom_scripts_path = get_site_path(webnotes.conf.get("custom_scripts_path"))
|
||||
if not os.path.exists(custom_scripts_path):
|
||||
os.mkdir(custom_scripts_path)
|
||||
|
||||
return custom_scripts_path
|
||||
|
||||
def make_custom_server_script_file(doctype, script=None):
|
||||
from webnotes.modules import scrub
|
||||
import os
|
||||
|
||||
custom_scripts_path = make_custom_server_scripts_path()
|
||||
|
||||
file_path = os.path.join(custom_scripts_path, scrub(doctype) + ".py")
|
||||
|
||||
if os.path.exists(file_path):
|
||||
raise Exception(file_path + " already exists")
|
||||
|
||||
if not script:
|
||||
script = "\tpass"
|
||||
|
||||
with open(file_path, "w") as f:
|
||||
f.write("class CustomDocType(DocType):\n" + script)
|
||||
|
|
@ -588,6 +588,12 @@ def get_conf(site):
|
|||
import conf
|
||||
site_config = _dict({})
|
||||
conf = site_config.update(conf.__dict__)
|
||||
|
||||
if not conf.get("files_path"):
|
||||
conf["files_path"] = os.path.join("public", "files")
|
||||
if not conf.get("custom_scripts_path"):
|
||||
conf["custom_scripts_path"] = "custom_scripts"
|
||||
|
||||
if conf.sites_dir and site:
|
||||
out = get_site_config(conf.sites_dir, site)
|
||||
if not out:
|
||||
|
|
@ -598,8 +604,6 @@ def get_conf(site):
|
|||
return site_config
|
||||
|
||||
else:
|
||||
if not conf.get("files_path"):
|
||||
conf["files_path"] = os.path.join("public", "files")
|
||||
return conf
|
||||
|
||||
def get_site_config(sites_dir, site):
|
||||
|
|
|
|||
|
|
@ -15,19 +15,6 @@ methods in following modules are imported for backward compatibility
|
|||
* webnotes.model.doc.*
|
||||
* webnotes.model.bean.*
|
||||
"""
|
||||
custom_class = '''
|
||||
import webnotes
|
||||
|
||||
from webnotes.utils import cint, cstr, flt
|
||||
from webnotes.model.doc import Document
|
||||
from webnotes.model.code import get_obj
|
||||
from webnotes import msgprint
|
||||
|
||||
class CustomDocType(DocType):
|
||||
def __init__(self, doc, doclist):
|
||||
DocType.__init__(self, doc, doclist)
|
||||
'''
|
||||
|
||||
|
||||
def execute(code, doc=None, doclist=[]):
|
||||
# functions used in server script of DocTypes
|
||||
|
|
@ -79,8 +66,6 @@ def get_server_obj(doc, doclist = [], basedoctype = ''):
|
|||
custom_script = get_custom_server_script(doc.doctype)
|
||||
|
||||
if custom_script:
|
||||
global custom_class
|
||||
|
||||
exec custom_script in locals()
|
||||
|
||||
return CustomDocType(doc, doclist)
|
||||
|
|
|
|||
|
|
@ -232,6 +232,7 @@ def clear_cache(doctype=None):
|
|||
def clear_single(dt):
|
||||
webnotes.cache().delete_value(cache_name(dt, False))
|
||||
webnotes.cache().delete_value(cache_name(dt, True))
|
||||
webnotes.cache().delete_value("_server_script:" + dt)
|
||||
|
||||
if doctype_cache and doctype in doctype_cache:
|
||||
del doctype_cache[dt]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue