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 handle(self, *args, **options): path = options['path'] month = str(options['date']) if not month: self.stdout.write("month invalid.") return month_obj = datetime.datetime.strptime(month, "%Y%m") res_data = seafevents_api.get_all_users_traffic_by_month( month_obj, -1, -1) data_list = [] head = [_("Time"), _("User"), _("Web Download") + ('(MB)'), \ _("Sync Download") + ('(MB)'), _("Link Download") + ('(MB)'), \ _("Web Upload") + ('(MB)'), _("Sync Upload") + ('(MB)'), \ _("Link Upload") + ('(MB)')] for data in res_data: web_download = byte_to_mb(data['web_file_download']) sync_download = byte_to_mb(data['sync_file_download']) link_download = byte_to_mb(data['link_file_download']) web_upload = byte_to_mb(data['web_file_upload']) sync_upload = byte_to_mb(data['sync_file_upload']) link_upload = byte_to_mb(data['link_file_upload']) row = [month, data['user'], web_download, sync_download, \ link_download, web_upload, sync_upload, link_upload] data_list.append(row) excel_name = "User-Traffic-%s" % month wb = write_xls(excel_name, head, data_list) wb.save(posixpath.join(path, '%s.xlsx' % excel_name)) if path else wb.save('%s.xlsx' % excel_name)
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
def get(self, request): if not request.user.admin_permissions.can_view_statistic(): return api_error(status.HTTP_403_FORBIDDEN, 'Permission denied.') month = request.GET.get("month", "") if not month: error_msg = "month invalid." return api_error(status.HTTP_400_BAD_REQUEST, error_msg) try: month_obj = datetime.datetime.strptime(month, "%Y%m") except: error_msg = "Month %s invalid" % month return api_error(status.HTTP_400_BAD_REQUEST, error_msg) try: res_data = seafevents_api.get_all_users_traffic_by_month( month_obj, -1, -1) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) data_list = [] head = [_("Time"), _("User"), _("Web Download") + ('(MB)'), \ _("Sync Download") + ('(MB)'), _("Link Download") + ('(MB)'), \ _("Web Upload") + ('(MB)'), _("Sync Upload") + ('(MB)'), \ _("Link Upload") + ('(MB)')] for data in res_data: web_download = byte_to_mb(data['web_file_download']) sync_download = byte_to_mb(data['sync_file_download']) link_download = byte_to_mb(data['link_file_download']) web_upload = byte_to_mb(data['web_file_upload']) sync_upload = byte_to_mb(data['sync_file_upload']) link_upload = byte_to_mb(data['link_file_upload']) row = [month, data['user'], web_download, sync_download, \ link_download, web_upload, sync_upload, link_upload] data_list.append(row) excel_name = "User Traffic %s" % month try: wb = write_xls(excel_name, 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): month = request.GET.get("month", "") if not month: error_msg = "month invalid." return api_error(status.HTTP_400_BAD_REQUEST, error_msg) try: month_obj = datetime.datetime.strptime(month, "%Y%m") except: error_msg = "Month %s invalid" % month return api_error(status.HTTP_400_BAD_REQUEST, error_msg) try: res_data = seafevents_api.get_all_users_traffic_by_month(month_obj, -1, -1) except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) data_list = [] head = [_("Time"), _("User"), _("Web Download") + ('(MB)'), \ _("Sync Download") + ('(MB)'), _("Link Download") + ('(MB)'), \ _("Web Upload") + ('(MB)'), _("Sync Upload") + ('(MB)'), \ _("Link Upload") + ('(MB)')] for data in res_data: web_download = byte_to_mb(data['web_file_download']) sync_download = byte_to_mb(data['sync_file_download']) link_download = byte_to_mb(data['link_file_download']) web_upload = byte_to_mb(data['web_file_upload']) sync_upload = byte_to_mb(data['sync_file_upload']) link_upload = byte_to_mb(data['link_file_upload']) row = [month, data['user'], web_download, sync_download, \ link_download, web_upload, sync_upload, link_upload] data_list.append(row) excel_name = "User Traffic %s" % month try: wb = write_xls(excel_name, 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