blob: cda38d690dcf08d320058181ceb9ab3da0e3682a [file] [log] [blame]
Anand Doshi3c92b212013-08-26 16:40:25 +05301if __name__=="__main__":
2 import sys
3 sys.path.extend([".", "lib", "app"])
4
Rushabh Mehtaacd33672013-08-26 16:17:50 +05305import webnotes, os
Rushabh Mehtae499a482013-09-01 11:14:32 +05306import utilities.demo.make_demo
Rushabh Mehtaacd33672013-08-26 16:17:50 +05307
Anand Doshide8b6aa2013-09-24 17:17:39 +05308def make_demo_app(site=None):
Anand Doshif879a9d2013-09-26 15:56:54 +05309 webnotes.init(site=site)
Anand Doshi77989342013-10-10 12:03:11 +053010 webnotes.flags.mute_emails = 1
Anand Doshif879a9d2013-09-26 15:56:54 +053011
Anand Doshi9283b6c2013-09-02 14:58:45 +053012 utilities.demo.make_demo.make(reset=True, simulate=False)
13 # setup demo user etc so that the site it up faster, while the data loads
14 make_demo_user()
15 make_demo_login_page()
16 make_demo_on_login_script()
17 utilities.demo.make_demo.make(reset=False, simulate=True)
Anand Doshib604edd2013-10-10 15:43:32 +053018 webnotes.destroy()
Rushabh Mehtaacd33672013-08-26 16:17:50 +053019
20def make_demo_user():
Anand Doshi8db093b2013-09-27 14:08:55 +053021 from webnotes.auth import _update_password
22
Anand Doshicb4c0ea2013-08-27 15:39:31 +053023 roles = ["Accounts Manager", "Analytics", "Expense Approver", "Accounts User",
24 "Leave Approver", "Blogger", "Customer", "Sales Manager", "Employee", "Support Manager",
25 "HR Manager", "HR User", "Maintenance Manager", "Maintenance User", "Material Manager",
Anand Doshi3b44ce52013-09-12 16:59:12 +053026 "Material Master Manager", "Material User", "Manufacturing Manager",
Anand Doshicb4c0ea2013-08-27 15:39:31 +053027 "Manufacturing User", "Projects User", "Purchase Manager", "Purchase Master Manager",
28 "Purchase User", "Quality Manager", "Report Manager", "Sales Master Manager",
29 "Sales User", "Supplier", "Support Team"]
30
31 def add_roles(bean):
32 for role in roles:
33 p.doclist.append({
34 "doctype": "UserRole",
35 "parentfield": "user_roles",
36 "role": role
37 })
38
39 # make demo user
Rushabh Mehtaacd33672013-08-26 16:17:50 +053040 if webnotes.conn.exists("Profile", "demo@erpnext.com"):
41 webnotes.delete_doc("Profile", "demo@erpnext.com")
42
43 p = webnotes.new_bean("Profile")
44 p.doc.email = "demo@erpnext.com"
45 p.doc.first_name = "Demo"
46 p.doc.last_name = "User"
47 p.doc.enabled = 1
48 p.doc.user_type = "ERPNext Demo"
Rushabh Mehtaacd33672013-08-26 16:17:50 +053049 p.insert()
Anand Doshicb4c0ea2013-08-27 15:39:31 +053050 add_roles(p)
51 p.save()
Anand Doshi8db093b2013-09-27 14:08:55 +053052 _update_password("demo@erpnext.com", "demo")
Rushabh Mehtaacd33672013-08-26 16:17:50 +053053
Anand Doshicb4c0ea2013-08-27 15:39:31 +053054 # make system manager user
55 if webnotes.conn.exists("Profile", "admin@erpnext.com"):
56 webnotes.delete_doc("Profile", "admin@erpnext.com")
57
58 p = webnotes.new_bean("Profile")
59 p.doc.email = "admin@erpnext.com"
60 p.doc.first_name = "Admin"
61 p.doc.last_name = "User"
62 p.doc.enabled = 1
63 p.doc.user_type = "System User"
Anand Doshicb4c0ea2013-08-27 15:39:31 +053064 p.insert()
65 roles.append("System Manager")
66 add_roles(p)
Rushabh Mehtaacd33672013-08-26 16:17:50 +053067 p.save()
Anand Doshi8db093b2013-09-27 14:08:55 +053068 _update_password("admin@erpnext.com", "admin010123")
Anand Doshic6601cb2013-08-26 18:53:50 +053069
70 # only read for newsletter
71 webnotes.conn.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0
72 where parent='Newsletter'""")
Anand Doshi85ef4792013-08-27 23:21:19 +053073 webnotes.conn.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0
74 where parent='Profile' and role='All'""")
Anand Doshic6601cb2013-08-26 18:53:50 +053075
Rushabh Mehtaacd33672013-08-26 16:17:50 +053076 webnotes.conn.commit()
77
78def make_demo_login_page():
79 webnotes.conn.set_value("Website Settings", None, "home_page", "")
80
81 webnotes.conn.sql("""delete from `tabWeb Page` where name='demo-login'""")
82 p = webnotes.new_bean("Web Page")
83 p.doc.title = "Demo Login"
84 p.doc.published = 1
85 p.doc.description = "ERPNext Demo Login"
86
87 with open(os.path.join(os.path.dirname(__file__), "demo-login.html"), "r") as dfile:
88 p.doc.main_section = dfile.read()
89
90 p.doc.insert_code = 1
91 with open(os.path.join(os.path.dirname(__file__), "demo-login.js"), "r") as dfile:
92 p.doc.javascript = dfile.read()
93
94 p.doc.insert_style = 1
95 with open(os.path.join(os.path.dirname(__file__), "demo-login.css"), "r") as dfile:
96 p.doc.css = dfile.read()
97
98 p.insert()
99
Rushabh Mehtae499a482013-09-01 11:14:32 +0530100 website_settings = webnotes.bean("Website Settings", "Website Settings")
101 website_settings.doc.home_page = "demo-login"
102 website_settings.doc.disable_signup = 1
103 website_settings.save()
Rushabh Mehtaacd33672013-08-26 16:17:50 +0530104
105 webnotes.conn.commit()
106
107def make_demo_on_login_script():
Anand Doshi35107642013-10-14 18:59:16 +0530108 import shutil
109 from core.doctype.custom_script.custom_script import get_custom_server_script_path
110 custom_script_path = get_custom_server_script_path("Control Panel")
111 webnotes.create_folder(os.path.dirname(custom_script_path))
112
113 shutil.copyfile(os.path.join(os.path.dirname(__file__), "demo_control_panel.py"), custom_script_path)
Anand Doshiee1044f2013-08-27 14:49:04 +0530114
115 cp = webnotes.bean("Control Panel")
116 cp.doc.custom_startup_code = """wn.ui.toolbar.show_banner('You are using ERPNext Demo. To start your own ERPNext Trial, <a href="https://erpnext.com/pricing-and-signup" target="_blank">click here</a>')"""
117 cp.save()
Anand Doshif668f972013-08-26 19:51:24 +0530118
119 webnotes.conn.commit()
Rushabh Mehtaacd33672013-08-26 16:17:50 +0530120
121if __name__=="__main__":
Anand Doshif879a9d2013-09-26 15:56:54 +0530122 import sys
123 site = sys.argv[1:]
124 make_demo_app(site=site and site[0] or None)