blob: 9e56839fb8d5827f4d67753f2945f1c6c50e8ded [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",
22 "Material Master Manager", "Material User", "Partner", "Manufacturing Manager",
23 "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()