From 4f8f9c1d9ad4b07ceba356125f88d50a2914e57d Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 12 Jun 2017 09:18:06 +0530 Subject: [PATCH] [enhance] create demo with function bench --site sitename make-demo` (#9212) --- erpnext/commands/__init__.py | 45 ++++++++++++++++++++++++++++++++++++ erpnext/demo/demo.py | 11 +++++---- 2 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 erpnext/commands/__init__.py diff --git a/erpnext/commands/__init__.py b/erpnext/commands/__init__.py new file mode 100644 index 00000000000..6ffa6a3e324 --- /dev/null +++ b/erpnext/commands/__init__.py @@ -0,0 +1,45 @@ +# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals, absolute_import, print_function +import click +import frappe +from frappe.commands import pass_context, get_site + +def call_command(cmd, context): + return click.Context(cmd, obj=context).forward(cmd) + +@click.command('make-demo') +@click.option('--site', help='site name') +@click.option('--domain', default='Manufacturing') +@click.option('--days', default=100, + help='Run the demo for so many days. Default 100') +@click.option('--resume', default=False, is_flag=True, + help='Continue running the demo for given days') +@pass_context +def make_demo(context, site, domain='Manufacturing', days=100, resume=False): + "Reinstall site and setup demo" + from frappe.commands.site import _reinstall + from frappe.installer import install_app + + site = get_site(context) + + if resume: + with frappe.init_site(site): + frappe.connect() + from erpnext.demo import demo + demo.simulate(days=days) + else: + _reinstall(site, yes=True) + with frappe.init_site(site=site): + frappe.connect() + if not 'erpnext' in frappe.get_installed_apps(): + install_app('erpnext') + + # import needs site + from erpnext.demo import demo + demo.make(domain, days) + +commands = [ + make_demo +] \ No newline at end of file diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py index a270e05f864..9fde2646c8a 100644 --- a/erpnext/demo/demo.py +++ b/erpnext/demo/demo.py @@ -22,7 +22,7 @@ bench --site demo.erpnext.dev execute erpnext.demo.demo.simulate """ -def make(domain='Manufacturing'): +def make(domain='Manufacturing', days=100): frappe.flags.domain = domain frappe.flags.mute_emails = True setup_data.setup(domain) @@ -36,16 +36,17 @@ def make(domain='Manufacturing'): frappe.init(site) frappe.connect() - simulate(domain) + simulate(domain, days) -def simulate(domain='Manufacturing'): - runs_for = frappe.flags.runs_for or 150 +def simulate(domain='Manufacturing', days=100): + runs_for = frappe.flags.runs_for or days frappe.flags.company = erpnext.get_default_company() frappe.flags.mute_emails = True if not frappe.flags.start_date: # start date = 100 days back - frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(), -1 * runs_for) + frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(), + -1 * runs_for) current_date = frappe.utils.getdate(frappe.flags.start_date)