|
|
@@ -6,7 +6,7 @@ from frappe.utils import strip, cint |
|
|
|
from frappe.translate import (set_default_language, get_dict, send_translations) |
|
|
|
from frappe.geo.country_info import get_country_info |
|
|
|
from frappe.utils.password import update_password |
|
|
|
from werkzeug.useragents import UserAgent |
|
|
|
from ua_parser import user_agent_parser |
|
|
|
from . import install_fixtures |
|
|
|
|
|
|
|
def get_setup_stages(args): |
|
|
@@ -315,17 +315,10 @@ def prettify_args(args): |
|
|
|
return pretty_args |
|
|
|
|
|
|
|
def email_setup_wizard_exception(traceback, args): |
|
|
|
if not frappe.local.conf.setup_wizard_exception_email: |
|
|
|
if not frappe.conf.setup_wizard_exception_email: |
|
|
|
return |
|
|
|
|
|
|
|
pretty_args = prettify_args(args) |
|
|
|
|
|
|
|
if frappe.local.request: |
|
|
|
user_agent = UserAgent(frappe.local.request.headers.get('User-Agent', '')) |
|
|
|
|
|
|
|
else: |
|
|
|
user_agent = frappe._dict() |
|
|
|
|
|
|
|
message = """ |
|
|
|
|
|
|
|
#### Traceback |
|
|
@@ -350,22 +343,43 @@ def email_setup_wizard_exception(traceback, args): |
|
|
|
|
|
|
|
- **Site:** {site} |
|
|
|
- **User:** {user} |
|
|
|
- **Browser:** {user_agent.platform} {user_agent.browser} version: {user_agent.version} language: {user_agent.language} |
|
|
|
- **Browser:** {browser} |
|
|
|
- **Browser Languages**: `{accept_languages}`""".format( |
|
|
|
site=frappe.local.site, |
|
|
|
traceback=traceback, |
|
|
|
args="\n".join(pretty_args), |
|
|
|
user=frappe.session.user, |
|
|
|
user_agent=user_agent, |
|
|
|
headers=frappe.local.request.headers, |
|
|
|
accept_languages=", ".join(frappe.local.request.accept_languages.values())) |
|
|
|
browser=get_browser_string(), |
|
|
|
headers=frappe.request.headers, |
|
|
|
accept_languages=", ".join(frappe.request.accept_languages.values())) |
|
|
|
|
|
|
|
frappe.sendmail(recipients=frappe.local.conf.setup_wizard_exception_email, |
|
|
|
frappe.sendmail(recipients=frappe.conf.setup_wizard_exception_email, |
|
|
|
sender=frappe.session.user, |
|
|
|
subject="Setup failed: {}".format(frappe.local.site), |
|
|
|
message=message, |
|
|
|
delayed=False) |
|
|
|
|
|
|
|
def get_browser_string(): |
|
|
|
if not frappe.request: |
|
|
|
return "" |
|
|
|
|
|
|
|
user_agent = user_agent_parser.ParseUserAgent( |
|
|
|
frappe.request.headers.get('User-Agent', '') |
|
|
|
) |
|
|
|
|
|
|
|
browser = user_agent["family"] |
|
|
|
|
|
|
|
if user_agent["major"]: |
|
|
|
browser += " " + user_agent["major"] |
|
|
|
|
|
|
|
if user_agent["minor"]: |
|
|
|
browser += "." + user_agent["minor"] |
|
|
|
|
|
|
|
if user_agent["patch"]: |
|
|
|
browser += "." + user_agent["patch"] |
|
|
|
|
|
|
|
return browser |
|
|
|
|
|
|
|
def log_setup_wizard_exception(traceback, args): |
|
|
|
with open('../logs/setup-wizard.log', 'w+') as setup_log: |
|
|
|
setup_log.write(traceback) |
|
|
|