blob: 766da2612f2b75e1f15b5247f4a1b59e2c03bfc3 [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
8def make_demo_app():
Anand Doshi9283b6c2013-09-02 14:58:45 +05309 webnotes.mute_emails = 1
10 webnotes.connect()
11 utilities.demo.make_demo.make(reset=True, simulate=False)
12 # setup demo user etc so that the site it up faster, while the data loads
13 make_demo_user()
14 make_demo_login_page()
15 make_demo_on_login_script()
16 utilities.demo.make_demo.make(reset=False, simulate=True)
Rushabh Mehtaacd33672013-08-26 16:17:50 +053017
18def make_demo_user():
Anand Doshicb4c0ea2013-08-27 15:39:31 +053019 roles = ["Accounts Manager", "Analytics", "Expense Approver", "Accounts User",
20 "Leave Approver", "Blogger", "Customer", "Sales Manager", "Employee", "Support Manager",
21 "HR Manager", "HR User", "Maintenance Manager", "Maintenance User", "Material Manager",
Anand Doshi3b44ce52013-09-12 16:59:12 +053022 "Material Master Manager", "Material User", "Manufacturing Manager",
Anand Doshicb4c0ea2013-08-27 15:39:31 +053023 "Manufacturing User", "Projects User", "Purchase Manager", "Purchase Master Manager",
24 "Purchase User", "Quality Manager", "Report Manager", "Sales Master Manager",
25 "Sales User", "Supplier", "Support Team"]
26
27 def add_roles(bean):
28 for role in roles:
29 p.doclist.append({
30 "doctype": "UserRole",
31 "parentfield": "user_roles",
32 "role": role
33 })
34
35 # make demo user
Rushabh Mehtaacd33672013-08-26 16:17:50 +053036 if webnotes.conn.exists("Profile", "demo@erpnext.com"):
37 webnotes.delete_doc("Profile", "demo@erpnext.com")
38
39 p = webnotes.new_bean("Profile")
40 p.doc.email = "demo@erpnext.com"
41 p.doc.first_name = "Demo"
42 p.doc.last_name = "User"
43 p.doc.enabled = 1
44 p.doc.user_type = "ERPNext Demo"
45 p.doc.send_invite_email = 0
46 p.doc.new_password = "demo"
47 p.insert()
Anand Doshicb4c0ea2013-08-27 15:39:31 +053048 add_roles(p)
49 p.save()
Rushabh Mehtaacd33672013-08-26 16:17:50 +053050
Anand Doshicb4c0ea2013-08-27 15:39:31 +053051 # make system manager user
52 if webnotes.conn.exists("Profile", "admin@erpnext.com"):
53 webnotes.delete_doc("Profile", "admin@erpnext.com")
54
55 p = webnotes.new_bean("Profile")
56 p.doc.email = "admin@erpnext.com"
57 p.doc.first_name = "Admin"
58 p.doc.last_name = "User"
59 p.doc.enabled = 1
60 p.doc.user_type = "System User"
61 p.doc.send_invite_email = 0
62 p.doc.new_password = "admin010123"
63 p.insert()
64 roles.append("System Manager")
65 add_roles(p)
Rushabh Mehtaacd33672013-08-26 16:17:50 +053066 p.save()
Anand Doshic6601cb2013-08-26 18:53:50 +053067
68 # only read for newsletter
69 webnotes.conn.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0
70 where parent='Newsletter'""")
Anand Doshi85ef4792013-08-27 23:21:19 +053071 webnotes.conn.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0
72 where parent='Profile' and role='All'""")
Anand Doshic6601cb2013-08-26 18:53:50 +053073
Rushabh Mehtaacd33672013-08-26 16:17:50 +053074 webnotes.conn.commit()
75
76def make_demo_login_page():
77 webnotes.conn.set_value("Website Settings", None, "home_page", "")
78
79 webnotes.conn.sql("""delete from `tabWeb Page` where name='demo-login'""")
80 p = webnotes.new_bean("Web Page")
81 p.doc.title = "Demo Login"
82 p.doc.published = 1
83 p.doc.description = "ERPNext Demo Login"
84
85 with open(os.path.join(os.path.dirname(__file__), "demo-login.html"), "r") as dfile:
86 p.doc.main_section = dfile.read()
87
88 p.doc.insert_code = 1
89 with open(os.path.join(os.path.dirname(__file__), "demo-login.js"), "r") as dfile:
90 p.doc.javascript = dfile.read()
91
92 p.doc.insert_style = 1
93 with open(os.path.join(os.path.dirname(__file__), "demo-login.css"), "r") as dfile:
94 p.doc.css = dfile.read()
95
96 p.insert()
97
Rushabh Mehtae499a482013-09-01 11:14:32 +053098 website_settings = webnotes.bean("Website Settings", "Website Settings")
99 website_settings.doc.home_page = "demo-login"
100 website_settings.doc.disable_signup = 1
101 website_settings.save()
Rushabh Mehtaacd33672013-08-26 16:17:50 +0530102
103 webnotes.conn.commit()
104
105def make_demo_on_login_script():
106 webnotes.conn.sql("""delete from `tabCustom Script` where dt='Control Panel'""")
107 s = webnotes.new_bean("Custom Script")
108 s.doc.dt = "Control Panel"
109 s.doc.script_type = "Server"
110 with open(os.path.join(os.path.dirname(__file__), "demo_control_panel.py"), "r") as dfile:
111 s.doc.script = dfile.read()
Anand Doshif668f972013-08-26 19:51:24 +0530112 s.insert()
Anand Doshiee1044f2013-08-27 14:49:04 +0530113
114 cp = webnotes.bean("Control Panel")
115 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>')"""
116 cp.save()
Anand Doshif668f972013-08-26 19:51:24 +0530117
118 webnotes.conn.commit()
Rushabh Mehtaacd33672013-08-26 16:17:50 +0530119
120if __name__=="__main__":
Anand Doshi9283b6c2013-09-02 14:58:45 +0530121 make_demo_app()