def get_site_info(): from frappe.utils.user import get_system_managers from frappe.core.doctype.user.user import STANDARD_USERS from frappe.email.queue import get_emails_sent_this_month # only get system users users = frappe.get_all('User', filters={ 'user_type': 'System User', 'name': ('not in', STANDARD_USERS) }, fields=[ 'name', 'enabled', 'last_login', 'last_active', 'language', 'time_zone' ]) system_managers = get_system_managers(only_name=True) for u in users: # tag system managers u.is_system_manager = 1 if u.name in system_managers else 0 u.full_name = get_fullname(u.name) u.email = u.name del u['name'] system_settings = frappe.db.get_singles_dict('System Settings') space_usage = frappe._dict((frappe.local.conf.limits or {}).get('space_usage', {})) kwargs = { "fields": ["user", "creation", "full_name"], "filters": { "Operation": "Login", "Status": "Success" }, "limit": "10" } site_info = { 'installed_apps': get_installed_apps_info(), 'users': users, 'country': system_settings.country, 'language': system_settings.language or 'english', 'time_zone': system_settings.time_zone, 'setup_complete': cint(system_settings.setup_complete), 'scheduler_enabled': system_settings.enable_scheduler, # usage 'emails_sent': get_emails_sent_this_month(), 'space_used': flt((space_usage.total or 0) / 1024.0, 2), 'database_size': space_usage.database_size, 'backup_size': space_usage.backup_size, 'files_size': space_usage.files_size, 'last_logins': frappe.get_all("Activity Log", **kwargs) } # from other apps for method_name in frappe.get_hooks('get_site_info'): site_info.update(frappe.get_attr(method_name)(site_info) or {}) # dumps -> loads to prevent datatype conflicts return json.loads(frappe.as_json(site_info))
def get_usage_info(): """Get data to show for Usage Info""" # imported here to prevent circular import from frappe.email.queue import get_emails_sent_this_month limits = get_limits() if not (limits and any([limits.users, limits.space, limits.emails, limits.expiry])): # no limits! return limits.space = (limits.space or 0) * 1024.0 # to MB if not limits.space_usage: # hack! to show some progress limits.space_usage = {"database_size": 26, "files_size": 1, "backup_size": 1, "total": 28} usage_info = frappe._dict( { "limits": limits, "enabled_users": len(get_enabled_system_users()), "emails_sent": get_emails_sent_this_month(), "space_usage": limits.space_usage["total"], } ) if limits.expiry: usage_info["expires_on"] = formatdate(limits.expiry) usage_info["days_to_expiry"] = (getdate(limits.expiry) - getdate()).days if limits.upgrade_url: usage_info["upgrade_url"] = get_upgrade_url(limits.upgrade_url) return usage_info
def get_usage_info(): '''Get data to show for Usage Info''' # imported here to prevent circular import from frappe.email.queue import get_emails_sent_this_month limits = get_limits() if not (limits and any([limits.users, limits.space, limits.emails, limits.expiry])): # no limits! return limits.space = (limits.space or 0) * 1024.0 # to MB if not limits.space_usage: # hack! to show some progress limits.space_usage = { 'database_size': 26, 'files_size': 1, 'backup_size': 1, 'total': 28 } usage_info = frappe._dict({ 'limits': limits, 'enabled_users': len(get_enabled_system_users()), 'emails_sent': get_emails_sent_this_month(), 'space_usage': limits.space_usage['total'], }) if limits.expiry: usage_info['expires_on'] = formatdate(limits.expiry) usage_info['days_to_expiry'] = (getdate(limits.expiry) - getdate()).days if limits.upgrade_url: usage_info['upgrade_url'] = get_upgrade_url(limits.upgrade_url) return usage_info
def get_site_info(): from frappe.core.doctype.user.user import STANDARD_USERS from frappe.email.queue import get_emails_sent_this_month from frappe.utils.user import get_system_managers # only get system users users = frappe.get_all( "User", filters={"user_type": "System User", "name": ("not in", STANDARD_USERS)}, fields=["name", "enabled", "last_login", "last_active", "language", "time_zone"], ) system_managers = get_system_managers(only_name=True) for u in users: # tag system managers u.is_system_manager = 1 if u.name in system_managers else 0 u.full_name = get_fullname(u.name) u.email = u.name del u["name"] system_settings = frappe.db.get_singles_dict("System Settings") space_usage = frappe._dict((frappe.local.conf.limits or {}).get("space_usage", {})) kwargs = { "fields": ["user", "creation", "full_name"], "filters": {"Operation": "Login", "Status": "Success"}, "limit": "10", } site_info = { "installed_apps": get_installed_apps_info(), "users": users, "country": system_settings.country, "language": system_settings.language or "english", "time_zone": system_settings.time_zone, "setup_complete": cint(system_settings.setup_complete), "scheduler_enabled": system_settings.enable_scheduler, # usage "emails_sent": get_emails_sent_this_month(), "space_used": flt((space_usage.total or 0) / 1024.0, 2), "database_size": space_usage.database_size, "backup_size": space_usage.backup_size, "files_size": space_usage.files_size, "last_logins": frappe.get_all("Activity Log", **kwargs), } # from other apps for method_name in frappe.get_hooks("get_site_info"): site_info.update(frappe.get_attr(method_name)(site_info) or {}) # dumps -> loads to prevent datatype conflicts return json.loads(frappe.as_json(site_info))
def get_site_info(): from frappe.utils.user import get_system_managers from frappe.core.doctype.user.user import STANDARD_USERS from frappe.email.queue import get_emails_sent_this_month # only get system users users = frappe.get_all( "User", filters={"user_type": "System User", "name": ("not in", STANDARD_USERS)}, fields=["name", "enabled", "last_login", "last_active", "language", "time_zone"], ) system_managers = get_system_managers(only_name=True) for u in users: # tag system managers u.is_system_manager = 1 if u.name in system_managers else 0 u.full_name = get_fullname(u.name) u.email = u.name del u["name"] system_settings = frappe.db.get_singles_dict("System Settings") space_usage = frappe._dict((frappe.local.conf.limits or {}).get("space_usage", {})) site_info = { "installed_apps": get_installed_apps_info(), "users": users, "country": system_settings.country, "language": system_settings.language or "english", "time_zone": system_settings.time_zone, "setup_complete": cint(system_settings.setup_complete), "scheduler_enabled": system_settings.enable_scheduler, # usage "emails_sent": get_emails_sent_this_month(), "space_used": flt((space_usage.total or 0) / 1024.0, 2), "database_size": space_usage.database_size, "backup_size": space_usage.backup_size, "files_size": space_usage.files_size, } # from other apps for method_name in frappe.get_hooks("get_site_info"): site_info.update(frappe.get_attr(method_name)(site_info) or {}) # dumps -> loads to prevent datatype conflicts return json.loads(frappe.as_json(site_info))
def get_site_info(): from frappe.utils.user import get_system_managers from frappe.core.doctype.user.user import STANDARD_USERS from frappe.email.queue import get_emails_sent_this_month # only get system users users = frappe.get_all('User', filters={'user_type': 'System User', 'name': ('not in', STANDARD_USERS)}, fields=['name', 'enabled', 'last_login', 'last_active', 'language', 'time_zone']) system_managers = get_system_managers(only_name=True) for u in users: # tag system managers u.is_system_manager = 1 if u.name in system_managers else 0 u.full_name = get_fullname(u.name) u.email = u.name del u['name'] system_settings = frappe.db.get_singles_dict('System Settings') space_usage = frappe._dict((frappe.local.conf.limits or {}).get('space_usage', {})) site_info = { 'installed_apps': get_installed_apps_info(), 'users': users, 'country': system_settings.country, 'language': system_settings.language or 'english', 'time_zone': system_settings.time_zone, 'setup_complete': cint(system_settings.setup_complete), 'scheduler_enabled': system_settings.enable_scheduler, # usage 'emails_sent': get_emails_sent_this_month(), 'space_used': flt((space_usage.total or 0) / 1024.0, 2), 'database_size': space_usage.database_size, 'backup_size': space_usage.backup_size, 'files_size': space_usage.files_size } # from other apps for method_name in frappe.get_hooks('get_site_info'): site_info.update(frappe.get_attr(method_name)(site_info) or {}) # dumps -> loads to prevent datatype conflicts return json.loads(frappe.as_json(site_info))