def handle(self, *args, **options): path = options['path'] db_users = ccnet_api.get_emailusers('DB', -1, -1) ldap_import_users = ccnet_api.get_emailusers('LDAPImport', -1, -1) all_users = db_users + ldap_import_users head = [_("Email"), _("Name"), _("Contact Email"), _("Space Usage") + "(MB)", _("Space Quota") + "(MB)"] data_list = [] for user in all_users: user_email = user.email user_name = email2nickname(user_email) user_contact_email = email2contact_email(user_email) _populate_user_quota_usage(user) space_usage_MB = byte_to_mb(user.space_usage) space_quota_MB = byte_to_mb(user.space_quota) row = [user_email, user_name, user_contact_email, space_usage_MB, space_quota_MB] data_list.append(row) excel_name = "User-Storage.xlsx" wb = write_xls('users', head, data_list) wb.save(posixpath.join(path, excel_name)) if path else wb.save(excel_name)
def get(self, request): if not request.user.admin_permissions.can_view_statistic(): return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.') db_users = ccnet_api.get_emailusers('DB', -1, -1) ldap_import_users = ccnet_api.get_emailusers('LDAPImport', -1, -1) all_users = db_users + ldap_import_users head = [ _("Email"), _("Name"), _("Contact Email"), _("Space Usage") + "(MB)", _("Space Quota") + "(MB)" ] data_list = [] for user in all_users: user_email = user.email user_name = email2nickname(user_email) user_contact_email = email2contact_email(user_email) _populate_user_quota_usage(user) space_usage_MB = byte_to_mb(user.space_usage) space_quota_MB = byte_to_mb(user.space_quota) row = [ user_email, user_name, user_contact_email, space_usage_MB, space_quota_MB ] data_list.append(row) excel_name = 'User Storage' try: wb = write_xls('users', head, data_list) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) response = HttpResponse(content_type='application/ms-excel') response[ 'Content-Disposition'] = 'attachment; filename="%s.xlsx"' % excel_name wb.save(response) return response
def get(self, request): db_users = ccnet_api.get_emailusers('DB', -1, -1) ldap_import_users = ccnet_api.get_emailusers('LDAPImport', -1, -1) all_users = db_users + ldap_import_users head = [_("Email"), _("Name"), _("Contact Email"), _("Space Usage") + "(MB)", _("Space Quota") + "(MB)"] data_list = [] for user in all_users: user_email = user.email user_name = email2nickname(user_email) user_contact_email = email2contact_email(user_email) _populate_user_quota_usage(user) space_usage_MB = byte_to_mb(user.space_usage) space_quota_MB = byte_to_mb(user.space_quota) row = [user_email, user_name, user_contact_email, space_usage_MB, space_quota_MB] data_list.append(row) excel_name = 'User Storage' try: wb = write_xls('users', head, data_list) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) response = HttpResponse(content_type='application/ms-excel') response['Content-Disposition'] = 'attachment; filename=%s.xlsx' % excel_name wb.save(response) return response