Example #1
0
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))
Example #2
0
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
Example #4
0
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))
Example #5
0
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))
Example #6
0
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))