[command] bench setup-help will make the help db
This commit is contained in:
parent
d07e6759a1
commit
8a32adcaf8
5 changed files with 45 additions and 21 deletions
|
|
@ -383,6 +383,16 @@ def get_version():
|
|||
if hasattr(module, "__version__"):
|
||||
print "{0} {1}".format(m, module.__version__)
|
||||
|
||||
@click.command('setup-help')
|
||||
def setup_help():
|
||||
"Make a database for help documentation"
|
||||
frappe.local.flags = frappe._dict()
|
||||
frappe.local.flags.in_setup_help = True
|
||||
frappe.local.lang = 'en'
|
||||
frappe.local.conf = frappe.get_site_config(sites_path='.')
|
||||
from frappe.utils.help import sync
|
||||
sync()
|
||||
|
||||
commands = [
|
||||
build,
|
||||
clear_cache,
|
||||
|
|
@ -407,4 +417,5 @@ commands = [
|
|||
watch,
|
||||
_bulk_rename,
|
||||
add_to_email_queue,
|
||||
setup_help
|
||||
]
|
||||
|
|
|
|||
|
|
@ -487,13 +487,10 @@ class DbManager:
|
|||
if not host:
|
||||
host = self.get_current_host()
|
||||
|
||||
try:
|
||||
if password:
|
||||
self.db.sql("CREATE USER '%s'@'%s' IDENTIFIED BY '%s';" % (user[:16], host, password))
|
||||
else:
|
||||
self.db.sql("CREATE USER '%s'@'%s';" % (user[:16], host))
|
||||
except Exception:
|
||||
raise
|
||||
if password:
|
||||
self.db.sql("CREATE USER '%s'@'%s' IDENTIFIED BY '%s';" % (user[:16], host, password))
|
||||
else:
|
||||
self.db.sql("CREATE USER '%s'@'%s';" % (user[:16], host))
|
||||
|
||||
def delete_user(self, target, host=None):
|
||||
if not host:
|
||||
|
|
@ -519,7 +516,8 @@ class DbManager:
|
|||
if not host:
|
||||
host = self.get_current_host()
|
||||
|
||||
self.db.sql("GRANT ALL PRIVILEGES ON `%s`.* TO '%s'@'%s';" % (target, user, host))
|
||||
self.db.sql("GRANT ALL PRIVILEGES ON `%s`.* TO '%s'@'%s';" % (target,
|
||||
user, host))
|
||||
|
||||
def grant_select_privilges(self, db, table, user, host=None):
|
||||
if not host:
|
||||
|
|
|
|||
|
|
@ -168,11 +168,11 @@ def get_full_dict(lang):
|
|||
|
||||
:param lang: Language Code, e.g. `hi`
|
||||
"""
|
||||
if not lang:
|
||||
if not lang or lang=='en':
|
||||
return {}
|
||||
|
||||
# found in local, return!
|
||||
if frappe.local.lang_full_dict is not None:
|
||||
if getattr(frappe.local, 'lang_full_dict', None) is not None:
|
||||
return frappe.local.lang_full_dict
|
||||
|
||||
frappe.local.lang_full_dict = load_lang(lang)
|
||||
|
|
@ -193,6 +193,9 @@ def load_lang(lang, apps=None):
|
|||
For derivative languages (es-GT), take translations from the
|
||||
base language (es) and then update translations from the child (es-GT)"""
|
||||
|
||||
if lang=='en':
|
||||
return {}
|
||||
|
||||
out = frappe.cache().hget("lang_full_dict", lang)
|
||||
if not out:
|
||||
out = {}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
import hashlib
|
||||
|
||||
from frappe.model.db_schema import DbManager
|
||||
from frappe.installer import get_root_connection
|
||||
|
|
@ -32,10 +33,12 @@ def get_help_content(path):
|
|||
|
||||
class HelpDatabase(object):
|
||||
def __init__(self):
|
||||
self.help_db_name = '_frappe_help'
|
||||
bench_name = os.path.basename(os.path.abspath(frappe.get_app_path('frappe')).split('/apps/')[0])
|
||||
self.help_db_name = hashlib.sha224(bench_name).hexdigest()[:15]
|
||||
|
||||
def make_database(self):
|
||||
dbman = DbManager(get_root_connection())
|
||||
dbman.drop_database(self.help_db_name)
|
||||
|
||||
# make database
|
||||
if not self.help_db_name in dbman.get_database_list():
|
||||
|
|
@ -61,7 +64,7 @@ class HelpDatabase(object):
|
|||
full_path text,
|
||||
fulltext(title),
|
||||
fulltext(content),
|
||||
fulltext(path))
|
||||
index (path))
|
||||
COLLATE=utf8mb4_unicode_ci
|
||||
ENGINE=MyISAM
|
||||
CHARACTER SET=utf8mb4''')
|
||||
|
|
@ -95,8 +98,9 @@ class HelpDatabase(object):
|
|||
app_name = frappe.get_attr('{app}.__title__'.format(app=app)) or app
|
||||
doc_contents += '<li><a data-path="/{app}/index">{app_name}</a></li>'.format(
|
||||
app=app, app_name=app_name)
|
||||
except Exception, e:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for basepath, folders, files in os.walk(docs_folder):
|
||||
files = self.reorder_files(files)
|
||||
for fname in files:
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from __future__ import unicode_literals
|
|||
def get_jenv():
|
||||
import frappe
|
||||
|
||||
if not frappe.local.jenv:
|
||||
if not getattr(frappe.local, 'jenv', None):
|
||||
from jinja2 import Environment, DebugUndefined
|
||||
|
||||
# frappe will be loaded last, so app templates will get precedence
|
||||
|
|
@ -73,7 +73,7 @@ def get_allowed_functions_for_jenv():
|
|||
if "_" in frappe.local.form_dict:
|
||||
del frappe.local.form_dict["_"]
|
||||
|
||||
return {
|
||||
out = {
|
||||
# make available limited methods of frappe
|
||||
"frappe": {
|
||||
"_": frappe._,
|
||||
|
|
@ -93,7 +93,6 @@ def get_allowed_functions_for_jenv():
|
|||
"get_all": frappe.get_all,
|
||||
"utils": datautils,
|
||||
"user": getattr(frappe.local, "session", None) and frappe.local.session.user or "Guest",
|
||||
"date_format": frappe.db.get_default("date_format") or "yyyy-mm-dd",
|
||||
"get_fullname": frappe.utils.get_fullname,
|
||||
"get_gravatar": frappe.utils.get_gravatar_url,
|
||||
"full_name": getattr(frappe.local, "session", None) and frappe.local.session.data.full_name or "Guest",
|
||||
|
|
@ -104,8 +103,6 @@ def get_allowed_functions_for_jenv():
|
|||
"automodule": automodule,
|
||||
"get_controller": get_controller
|
||||
},
|
||||
"get_visible_columns": \
|
||||
frappe.get_attr("frappe.www.print.get_visible_columns"),
|
||||
"_": frappe._,
|
||||
"get_shade": get_shade,
|
||||
"scrub": scrub,
|
||||
|
|
@ -113,13 +110,22 @@ def get_allowed_functions_for_jenv():
|
|||
"dev_server": 1 if os.environ.get('DEV_SERVER', False) else 0
|
||||
}
|
||||
|
||||
if not frappe.flags.in_setup_help:
|
||||
out['date_format'] = frappe.db.get_default("date_format") or "yyyy-mm-dd"
|
||||
out['get_visible_columns'] = frappe.get_attr("frappe.www.print.get_visible_columns")
|
||||
|
||||
return out
|
||||
|
||||
def get_jloader():
|
||||
import frappe
|
||||
if not frappe.local.jloader:
|
||||
if not getattr(frappe.local, 'jloader', None):
|
||||
from jinja2 import ChoiceLoader, PackageLoader, PrefixLoader
|
||||
|
||||
apps = frappe.local.flags.web_pages_apps or frappe.get_installed_apps(sort=True)
|
||||
apps.reverse()
|
||||
if frappe.local.flags.in_setup_help:
|
||||
apps = ['frappe']
|
||||
else:
|
||||
apps = frappe.local.flags.web_pages_apps or frappe.get_installed_apps(sort=True)
|
||||
apps.reverse()
|
||||
|
||||
if not "frappe" in apps:
|
||||
apps.append('frappe')
|
||||
|
|
@ -151,6 +157,8 @@ def set_filters(jenv):
|
|||
jenv.filters["flt"] = flt
|
||||
jenv.filters["abs_url"] = abs_url
|
||||
|
||||
if frappe.flags.in_setup_help: return
|
||||
|
||||
# load jenv_filters from hooks.py
|
||||
for app in frappe.get_installed_apps():
|
||||
for jenv_filter in (frappe.get_hooks(app_name=app).jenv_filter or []):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue