1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-19 10:26:17 +00:00

improve get_(org)_user_events

This commit is contained in:
lins05
2013-01-23 12:06:11 +08:00
parent 2f04a118aa
commit 2b03f33f5b
2 changed files with 24 additions and 3 deletions

View File

@@ -462,17 +462,35 @@ if hasattr(settings, 'EVENTS_CONFIG_FILE'):
def _get_events(username, start, org_id=None):
ev_session = SeafEventsSession()
total = 11
valid_events = []
while total == 11 and len(valid_events) < 11:
total, events = _get_events_inner(ev_session, username, start, org_id)
start += len(events)
valid_events.extend(events)
ev_session.close()
return valid_events[:11]
def _get_events_inner(ev_session, username, start, org_id=None):
'''Read 11 events from seafevents database, and remove events that are
no longer valid
'''
if org_id == None:
events = seafevents.get_user_events(ev_session, username, start, start + 11)
else:
events = seafevents.get_org_user_events(ev_session, \
org_id, username, start, start + 11)
total = len(events)
valid_events = []
ev_session.close()
for ev in events:
if ev.etype == 'repo-update':
repo = get_repo(ev.repo_id)
if not repo:
# delete the update event for repo which has been deleted
seafevents.delete_event(ev_session, ev.uuid)
continue
if repo.encrypted:
repo.password_set = seafserv_rpc.is_passwd_set(repo.id, username)
@@ -481,7 +499,7 @@ if hasattr(settings, 'EVENTS_CONFIG_FILE'):
valid_events.append(ev)
return valid_events
return total, valid_events
def get_user_events(username, start):
return _get_events(username, start)

View File

@@ -2939,7 +2939,10 @@ def events(request):
org_id = request.GET.get('org_id')
events = get_org_user_events(org_id, username, start)
else:
try:
events = get_user_events(username, start)
except Exception, e:
print e
events_more = False
if len(events) == 11: