mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 10:49:09 +00:00
[enhance] create demo with function bench --site sitename make-demo` (#9212)
This commit is contained in:
45
erpnext/commands/__init__.py
Normal file
45
erpnext/commands/__init__.py
Normal file
@@ -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
|
||||||
|
]
|
||||||
@@ -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.domain = domain
|
||||||
frappe.flags.mute_emails = True
|
frappe.flags.mute_emails = True
|
||||||
setup_data.setup(domain)
|
setup_data.setup(domain)
|
||||||
@@ -36,16 +36,17 @@ def make(domain='Manufacturing'):
|
|||||||
frappe.init(site)
|
frappe.init(site)
|
||||||
frappe.connect()
|
frappe.connect()
|
||||||
|
|
||||||
simulate(domain)
|
simulate(domain, days)
|
||||||
|
|
||||||
def simulate(domain='Manufacturing'):
|
def simulate(domain='Manufacturing', days=100):
|
||||||
runs_for = frappe.flags.runs_for or 150
|
runs_for = frappe.flags.runs_for or days
|
||||||
frappe.flags.company = erpnext.get_default_company()
|
frappe.flags.company = erpnext.get_default_company()
|
||||||
frappe.flags.mute_emails = True
|
frappe.flags.mute_emails = True
|
||||||
|
|
||||||
if not frappe.flags.start_date:
|
if not frappe.flags.start_date:
|
||||||
# start date = 100 days back
|
# 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)
|
current_date = frappe.utils.getdate(frappe.flags.start_date)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user