feat: Added force flag to install-app command

This commit is contained in:
chillaranand 2022-04-26 11:21:14 +05:30 committed by phot0n
parent e5b36b214a
commit d2b63d0935
5 changed files with 12 additions and 12 deletions

View file

@ -398,8 +398,9 @@ def _reinstall(
@click.command("install-app")
@click.argument("apps", nargs=-1)
@click.option("--force", is_flag=True, default=False)
@pass_context
def install_app(context, apps):
def install_app(context, apps, force=False):
"Install a new app to site, supports multiple apps"
from frappe.installer import install_app as _install_app
@ -414,7 +415,7 @@ def install_app(context, apps):
for app in apps:
try:
_install_app(app, verbose=context.verbose)
_install_app(app, verbose=context.verbose, force=force)
except frappe.IncompatibleApp as err:
err_msg = ":\n{}".format(err) if str(err) else ""
print("App {} is Incompatible with Site {}{}".format(app, site, err_msg))

View file

@ -608,7 +608,7 @@ def on_doctype_update():
def make_home_folder():
home = frappe.get_doc(
{"doctype": "File", "is_folder": 1, "is_home_folder": 1, "file_name": _("Home")}
).insert()
).insert(ignore_if_duplicate=True)
frappe.get_doc(
{
@ -618,7 +618,7 @@ def make_home_folder():
"is_attachments_folder": 1,
"file_name": _("Attachments"),
}
).insert()
).insert(ignore_if_duplicate=True)
@frappe.whitelist()

View file

@ -226,7 +226,7 @@ def parse_app_name(name: str) -> str:
return repo
def install_app(name, verbose=False, set_as_patched=True):
def install_app(name, verbose=False, set_as_patched=True, force=False):
from frappe.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs
from frappe.model.sync import sync_for
from frappe.modules.utils import sync_customizations
@ -243,7 +243,7 @@ def install_app(name, verbose=False, set_as_patched=True):
if app_hooks.required_apps:
for app in app_hooks.required_apps:
required_app = parse_app_name(app)
install_app(required_app, verbose=verbose)
install_app(required_app, verbose=verbose, force=force)
frappe.flags.in_install = name
frappe.clear_cache()
@ -251,7 +251,7 @@ def install_app(name, verbose=False, set_as_patched=True):
if name not in frappe.get_all_apps():
raise Exception("App not in apps.txt")
if name in installed_apps:
if not force and name in installed_apps:
frappe.msgprint(frappe._("App {0} already installed").format(name))
return
@ -266,7 +266,7 @@ def install_app(name, verbose=False, set_as_patched=True):
return
if name != "frappe":
add_module_defs(name)
add_module_defs(name, ignore_if_duplicate=force)
sync_for(name, force=True, reset_permissions=True)
@ -573,13 +573,13 @@ def make_site_dirs():
os.makedirs(path, exist_ok=True)
def add_module_defs(app):
def add_module_defs(app, ignore_if_duplicate=False):
modules = frappe.get_module_list(app)
for module in modules:
d = frappe.new_doc("Module Def")
d.app_name = app
d.module_name = module
d.insert(ignore_permissions=True, ignore_if_duplicate=True)
d.insert(ignore_permissions=True, ignore_if_duplicate=ignore_if_duplicate)
def remove_missing_apps():

View file

@ -144,7 +144,6 @@ def import_file_by_path(
import_doc(
docdict=doc,
force=force,
data_import=data_import,
pre_process=pre_process,
ignore_version=ignore_version,
@ -203,7 +202,6 @@ def update_modified(original_modified, doc):
def import_doc(
docdict,
force=False,
data_import=False,
pre_process=None,
ignore_version=None,

View file

@ -46,6 +46,7 @@ def after_install():
if not frappe.conf.skip_setup_wizard:
frappe.db.set_default("desktop:home_page", "setup-wizard")
frappe.db.set_value("System Settings", "System Settings", "setup_complete", 0)
# clear test log
with open(frappe.get_site_path(".test_log"), "w") as f: