Office back fix
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
from urllib import request
|
||||
|
||||
from flask import jsonify
|
||||
|
||||
from app.config import settings
|
||||
from app.utils.logger import logger
|
||||
from app.api.services.base_service import BaseService
|
||||
from sqlalchemy import func, desc
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from app.extensions import db
|
||||
from app.models import MembersProducts, Products, Payments, Members, CustomTemplates, ProductsTemplates, MembersProfile, \
|
||||
ProductsDetails
|
||||
ProductsDetails, MembersWebfiles
|
||||
|
||||
|
||||
class OfficeDashboardService(BaseService):
|
||||
@@ -515,6 +517,69 @@ class OfficeDashboardService(BaseService):
|
||||
|
||||
return response_data
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True)
|
||||
return jsonify({"message": "Internal Server Error"}), 500
|
||||
|
||||
@staticmethod
|
||||
def get_file_upload_data(filters):
|
||||
try:
|
||||
if filters is None:
|
||||
filters = {}
|
||||
|
||||
# Extract filters
|
||||
file_group = filters.get('file_group')
|
||||
member_id = filters.get('member_id')
|
||||
|
||||
# Extract pagination parameters
|
||||
page = int(filters.get('page', 1))
|
||||
limit = int(filters.get('limit', 20))
|
||||
|
||||
# Ensure page and limit are valid
|
||||
if page < 1:
|
||||
page = 1
|
||||
if limit < 1 or limit > 100:
|
||||
limit = 20
|
||||
|
||||
fileListData, total_count = MembersWebfiles.get_all_webfiles(file_group, file_group, page, limit)
|
||||
# Convert loans to dictionary format
|
||||
member_sub_data = []
|
||||
if fileListData:
|
||||
for subs in fileListData:
|
||||
member_sub_data.append({
|
||||
'id': subs.id,
|
||||
'file_uid': subs.uid,
|
||||
'member_id': subs.member_id,
|
||||
'member_uid': subs.member_uid,
|
||||
'file_group': subs.file_group,
|
||||
'filename': subs.filename,
|
||||
'save_filename': subs.save_filename,
|
||||
'file_type': subs.file_type,
|
||||
'status': subs.status,
|
||||
'file_size': subs.file_size,
|
||||
'added': subs.added.isoformat() if subs.added else None,
|
||||
'updated': subs.updated.isoformat() if subs.updated else None
|
||||
})
|
||||
|
||||
# Calculate total pages
|
||||
total_pages = (total_count + limit - 1) // limit
|
||||
|
||||
response_data = {
|
||||
'file_list': member_sub_data,
|
||||
'media_server': settings.MEDIA_SERVER,
|
||||
'count': len(member_sub_data),
|
||||
'pagination': {
|
||||
'total_count': total_count,
|
||||
'total_pages': total_pages,
|
||||
'current_page': page,
|
||||
'limit': limit,
|
||||
'has_next': page < total_pages,
|
||||
'has_prev': page > 1
|
||||
}
|
||||
}
|
||||
|
||||
return response_data
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True)
|
||||
return jsonify({"message": "Internal Server Error"}), 500
|
||||
Reference in New Issue
Block a user