Browse Source

[fix] commands to setup help and version set as 7.1-beta

version-14
Rushabh Mehta 9 years ago
parent
commit
6157d7afc7
5 changed files with 55 additions and 10 deletions
  1. +1
    -1
      frappe/__init__.py
  2. +31
    -3
      frappe/commands/utils.py
  3. +6
    -3
      frappe/installer.py
  4. +5
    -0
      frappe/migrate.py
  5. +12
    -3
      frappe/utils/help.py

+ 1
- 1
frappe/__init__.py View File

@@ -13,7 +13,7 @@ import os, sys, importlib, inspect, json
from .exceptions import * from .exceptions import *
from .utils.jinja import get_jenv, get_template, render_template from .utils.jinja import get_jenv, get_template, render_template


__version__ = "7.0.27"
__version__ = "7.1-beta"
__title__ = "Frappe Framework" __title__ = "Frappe Framework"


local = Local() local = Local()


+ 31
- 3
frappe/commands/utils.py View File

@@ -383,20 +383,47 @@ def get_version():
if hasattr(module, "__version__"): if hasattr(module, "__version__"):
print "{0} {1}".format(m, module.__version__) print "{0} {1}".format(m, module.__version__)


@click.command('setup-help')


@click.command('setup-global-help')
@click.option('--mariadb_root_password') @click.option('--mariadb_root_password')
def setup_help(mariadb_root_password=None):
"Make a database for help documentation"
def setup_global_help(mariadb_root_password=None):
'''setup help table in a separate database that will be
shared by the whole bench and set `global_help_setup` as 1 in
common_site_config.json'''

from frappe.installer import update_site_config

frappe.local.flags = frappe._dict() frappe.local.flags = frappe._dict()
frappe.local.flags.in_setup_help = True frappe.local.flags.in_setup_help = True
frappe.local.flags.in_install = True frappe.local.flags.in_install = True
frappe.local.lang = 'en' frappe.local.lang = 'en'
frappe.local.conf = frappe.get_site_config(sites_path='.') frappe.local.conf = frappe.get_site_config(sites_path='.')

update_site_config('global_help_setup', 1,
site_config_path=os.path.join('.', 'common_site_config.json'))

if mariadb_root_password: if mariadb_root_password:
frappe.local.conf.root_password = mariadb_root_password frappe.local.conf.root_password = mariadb_root_password

from frappe.utils.help import sync from frappe.utils.help import sync
sync() sync()


@click.command('setup-help')
@pass_context
def setup_help(context):
'''Setup help table in the current site (called after migrate)'''
from frappe.utils.help import sync

for site in context.sites:
try:
frappe.init(site)
frappe.connect()
sync()
finally:
frappe.destroy()


commands = [ commands = [
build, build,
clear_cache, clear_cache,
@@ -421,5 +448,6 @@ commands = [
watch, watch,
_bulk_rename, _bulk_rename,
add_to_email_queue, add_to_email_queue,
setup_global_help,
setup_help setup_help
] ]

+ 6
- 3
frappe/installer.py View File

@@ -265,9 +265,12 @@ def make_site_config(db_name=None, db_password=None, site_config=None):
with open(site_file, "w") as f: with open(site_file, "w") as f:
f.write(json.dumps(site_config, indent=1, sort_keys=True)) f.write(json.dumps(site_config, indent=1, sort_keys=True))


def update_site_config(key, value, validate=True):
def update_site_config(key, value, validate=True, site_config_path=None):
"""Update a value in site_config""" """Update a value in site_config"""
with open(get_site_config_path(), "r") as f:
if not site_config_path:
site_config_path = get_site_config_path()

with open(site_config_path, "r") as f:
site_config = json.loads(f.read()) site_config = json.loads(f.read())


# In case of non-int value # In case of non-int value
@@ -288,7 +291,7 @@ def update_site_config(key, value, validate=True):
else: else:
site_config[key] = value site_config[key] = value


with open(get_site_config_path(), "w") as f:
with open(site_config_path, "w") as f:
f.write(json.dumps(site_config, indent=1, sort_keys=True)) f.write(json.dumps(site_config, indent=1, sort_keys=True))


if frappe.local.conf: if frappe.local.conf:


+ 5
- 0
frappe/migrate.py View File

@@ -13,6 +13,7 @@ from frappe.desk.notifications import clear_notifications
from frappe.website import render from frappe.website import render
from frappe.desk.doctype.desktop_icon.desktop_icon import sync_desktop_icons from frappe.desk.doctype.desktop_icon.desktop_icon import sync_desktop_icons
from frappe.core.doctype.language.language import sync_languages from frappe.core.doctype.language.language import sync_languages
import frappe.utils.help


def migrate(verbose=True, rebuild_website=False): def migrate(verbose=True, rebuild_website=False):
'''Migrate all apps to the latest version, will: '''Migrate all apps to the latest version, will:
@@ -40,6 +41,10 @@ def migrate(verbose=True, rebuild_website=False):


frappe.db.commit() frappe.db.commit()


if not frappe.conf.get('global_help_setup'):
# sync help if not set as global
frappe.utils.help.sync()

clear_notifications() clear_notifications()


frappe.publish_realtime("version-update") frappe.publish_realtime("version-update")

+ 12
- 3
frappe/utils/help.py View File

@@ -33,10 +33,16 @@ def get_help_content(path):


class HelpDatabase(object): class HelpDatabase(object):
def __init__(self): def __init__(self):
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]
self.global_help_setup = frappe.conf.get('global_help_setup')
if self.global_help_setup:
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): def make_database(self):
'''make database for global help setup'''
if not self.global_help_setup:
return

dbman = DbManager(get_root_connection()) dbman = DbManager(get_root_connection())
dbman.drop_database(self.help_db_name) dbman.drop_database(self.help_db_name)


@@ -52,7 +58,10 @@ class HelpDatabase(object):
dbman.flush_privileges() dbman.flush_privileges()


def connect(self): def connect(self):
self.db = Database(user=self.help_db_name, password=self.help_db_name)
if self.global_help_setup:
self.db = Database(user=self.help_db_name, password=self.help_db_name)
else:
self.db = frappe.db


def make_table(self): def make_table(self):
if not 'help' in self.db.get_tables(): if not 'help' in self.db.get_tables():


Loading…
Cancel
Save