-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathactivation.py
135 lines (122 loc) · 4.24 KB
/
activation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe, erpnext
from frappe import _
from six import iteritems
def get_level():
activation_level = 0
sales_data = []
min_count = 0
doctypes = {"Item": 5, "Customer": 5, "Sales Order": 2, "Sales Invoice": 2, "Purchase Order": 2, "Employee": 3, "Lead": 3, "Quotation": 3,
"Payment Entry": 2, "User": 5, "Student": 5, "Instructor": 5, "BOM": 3, "Journal Entry": 3, "Stock Entry": 3}
for doctype, min_count in iteritems(doctypes):
count = frappe.db.count(doctype)
if count > min_count:
activation_level += 1
sales_data.append({doctype: count})
if frappe.db.get_single_value('System Settings', 'setup_complete'):
activation_level += 1
communication_number = frappe.db.count('Communication', dict(communication_medium='Email'))
if communication_number > 10:
activation_level += 1
sales_data.append({"Communication": communication_number})
# recent login
if frappe.db.sql('select name from tabUser where last_login > date_sub(now(), interval 2 day) limit 1'):
activation_level += 1
level = {"activation_level": activation_level, "sales_data": sales_data}
return level
def get_help_messages():
'''Returns help messages to be shown on Desktop'''
if get_level() > 6:
return []
domain = frappe.get_cached_value('Company', erpnext.get_default_company(), 'domain')
messages = []
message_settings = [
frappe._dict(
doctype='Lead',
title=_('Create Leads'),
description=_('Leads help you get business, add all your contacts and more as your leads'),
action=_('Create Lead'),
route='List/Lead',
domain=('Manufacturing', 'Retail', 'Services', 'Distribution'),
target=3
),
frappe._dict(
doctype='Quotation',
title=_('Create customer quotes'),
description=_('Quotations are proposals, bids you have sent to your customers'),
action=_('Create Quotation'),
route='List/Quotation',
domain=('Manufacturing', 'Retail', 'Services', 'Distribution'),
target=3
),
frappe._dict(
doctype='Sales Order',
title=_('Manage your orders'),
description=_('Create Sales Orders to help you plan your work and deliver on-time'),
action=_('Create Sales Order'),
route='List/Sales Order',
domain=('Manufacturing', 'Retail', 'Services', 'Distribution'),
target=3
),
frappe._dict(
doctype='Purchase Order',
title=_('Create Purchase Orders'),
description=_('Purchase orders help you plan and follow up on your purchases'),
action=_('Create Purchase Order'),
route='List/Purchase Order',
domain=('Manufacturing', 'Retail', 'Services', 'Distribution'),
target=3
),
frappe._dict(
doctype='User',
title=_('Create Users'),
description=_('Add the rest of your organization as your users. You can also add invite Customers to your portal by adding them from Contacts'),
action=_('Create User'),
route='List/User',
domain=('Manufacturing', 'Retail', 'Services', 'Distribution'),
target=3
),
frappe._dict(
doctype='Timesheet',
title=_('Add Timesheets'),
description=_('Timesheets help keep track of time, cost and billing for activites done by your team'),
action=_('Create Timesheet'),
route='List/Timesheet',
domain=('Services',),
target=5
),
frappe._dict(
doctype='Student',
title=_('Add Students'),
description=_('Students are at the heart of the system, add all your students'),
action=_('Create Student'),
route='List/Student',
domain=('Education',),
target=5
),
frappe._dict(
doctype='Student Batch',
title=_('Group your students in batches'),
description=_('Student Batches help you track attendance, assessments and fees for students'),
action=_('Create Student Batch'),
route='List/Student Batch',
domain=('Education',),
target=3
),
frappe._dict(
doctype='Employee',
title=_('Create Employee Records'),
description=_('Create Employee records to manage leaves, expense claims and payroll'),
action=_('Create Employee'),
route='List/Employee',
target=3
)
]
for m in message_settings:
if not m.domain or domain in m.domain:
m.count = frappe.db.count(m.doctype)
if m.count < m.target:
messages.append(m)
return messages