1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 15:09:14 +00:00

fix my activities filters (#7166)

* fix my activities filters

* update

---------

Co-authored-by: r350178982 <32759763+r350178982@users.noreply.github.com>
This commit is contained in:
Michael An
2024-12-13 10:20:11 +08:00
committed by GitHub
parent 977aa7971e
commit 3a11aceb6b
4 changed files with 19 additions and 14 deletions

View File

@@ -40,7 +40,7 @@ class FilesActivities extends Component {
componentDidMount() {
let { currentPage, availableUsers } = this.state;
seafileAPI.listActivities(currentPage).then(res => {
seafileAPI.listActivities(currentPage, this.props.onlyMine ? username : '').then(res => {
// {"events":[...]}
let events = this.mergePublishEvents(res.data.events);
events = this.mergeFileCreateEvents(events);
@@ -139,7 +139,7 @@ class FilesActivities extends Component {
getMore() {
const { currentPage, availableUsers, targetUsers } = this.state;
seafileAPI.listActivities(currentPage).then(res => {
seafileAPI.listActivities(currentPage, this.props.onlyMine ? username : '').then(res => {
// {"events":[...]}
let events = this.mergePublishEvents(res.data.events);
events = this.mergeFileCreateEvents(events);
@@ -184,13 +184,10 @@ class FilesActivities extends Component {
const { onlyMine } = this.props;
const { targetUsers } = this.state;
if (onlyMine) {
return events.filter(item => item.author_email == username);
} else if (targetUsers.length) {
if (!onlyMine && targetUsers.length) {
return events.filter(item => targetUsers.map(item => item.email).indexOf(item.author_email) != -1);
} else {
return events;
}
return events;
};
setTargetUsers = (selectedUsers) => {

View File

@@ -1493,8 +1493,11 @@ class SeafileAPI {
}
// ---- Activities API
listActivities(pageNum) {
const url = this.server + '/api/v2.1/activities/?page=' + pageNum;
listActivities(pageNum, operationUser) {
let url = this.server + '/api/v2.1/activities/?page=' + pageNum;
if (operationUser) {
url += '&op_user=' + encodeURIComponent(operationUser);
}
return this.req.get(url);
}

View File

@@ -40,13 +40,14 @@ class ActivitiesView(APIView):
except ValueError:
per_page = 25
op_user = request.GET.get('op_user', '')
start = (page - 1) * per_page
count = per_page
email = request.user.username
try:
events = get_user_activities(email, start, count)
events = get_user_activities(email, start, count, op_user)
except Exception as e:
logger.error(e)
error_msg = 'Internal Server Error'

View File

@@ -621,12 +621,16 @@ if EVENTS_CONFIG_FILE:
session.close()
def _get_activities(username, start, count):
def _get_activities(username, start, count, op_user=None):
ev_session = SeafEventsSession()
events = []
try:
events = seafevents_api.get_user_activities(ev_session,
if op_user:
events = seafevents_api.get_user_activities_by_op_user(ev_session,
username, op_user, start, count)
else:
events = seafevents_api.get_user_activities(ev_session,
username, start, count)
finally:
ev_session.close()
@@ -634,14 +638,14 @@ if EVENTS_CONFIG_FILE:
return events
def get_user_activities(username, start, count):
def get_user_activities(username, start, count, op_user=None):
"""Return user events list and a new start.
For example:
``get_user_activities('foo@example.com', 0, 10)`` returns the first 10
``get_user_activities('foo@example.com', 4, 10)`` returns the 6th through
15th events.
"""
return _get_activities(username, start, count)
return _get_activities(username, start, count, op_user)
def get_user_activity_stats_by_day(start, end, offset):
"""