def feed(request): current = 'feed' title = u'%s / 动态' % (request.user.username) feedAction = FeedAction() feedAction.set_user_position(request.user.id, PositionKey.FEED) recently_timestamp = feedAction.get_recently_timestamp( request.user.id, AttrKey.RECENTLY_TIME_FEED) raw_watch_users = feedAction.get_watch_users(request.user.id, 0, 100) watch_user_ids = [int(x[0]) for x in raw_watch_users] watch_user_ids.append(request.user.id) raw_watch_repos = feedAction.get_watch_repos(request.user.id, 0, 100) watch_repo_ids = [int(x[0]) for x in raw_watch_repos] feeds_as_json = multi_feeds_as_json(request, feedAction, watch_user_ids, watch_repo_ids) feedAction.set_recently_timestamp_now(request.user.id, AttrKey.RECENTLY_TIME_FEED) response_dictionary = { 'current': current, 'title': title, 'feeds_as_json': feeds_as_json, 'recently_timestamp': recently_timestamp } return render_to_response('user/feed.html', response_dictionary, context_instance=RequestContext(request))
def issues(request, page): current = 'issues' title = u'%s / 问题' % (request.user.username) feedAction = FeedAction() feedAction.set_user_position(request.user.id, PositionKey.ISSUES) recently_timestamp = feedAction.get_recently_timestamp( request.user.id, AttrKey.RECENTLY_TIME_ISSUES) page = int(page) page_size = 50 offset = page * page_size row_count = page_size + 1 issues = IssueManager.list_assigned_issues(request.user.id, 'modify_time', offset, row_count) hasPre = False hasNext = False if page > 0: hasPre = True if len(issues) > page_size: hasNext = True issues.pop() feedAction.set_recently_timestamp_now(request.user.id, AttrKey.RECENTLY_TIME_ISSUES) response_dictionary = { 'current': current, 'title': title, 'issues': issues, 'page': page, 'hasPre': hasPre, 'hasNext': hasNext, 'recently_timestamp': recently_timestamp } return render_to_response('user/issues.html', response_dictionary, context_instance=RequestContext(request))
def pull_merge(request): current = 'pull' title = u'%s / 需要我处理的合并请求' % (request.user.username) feedAction = FeedAction() feedAction.set_user_position(request.user.id, PositionKey.PULL) recently_timestamp_astime = feedAction.get_recently_timestamp_astime( request.user.id, AttrKey.RECENTLY_TIME_PULL) pullRequests = RepoManager.list_pullRequest_by_mergeUserId(request.user.id) feedAction.set_recently_timestamp_now(request.user.id, AttrKey.RECENTLY_TIME_PULL) response_dictionary = { 'current': current, 'title': title, 'pullRequests': pullRequests, 'recently_timestamp_astime': recently_timestamp_astime } return render_to_response('user/pull_merge.html', response_dictionary, context_instance=RequestContext(request))
def timeline(request): current = 'timeline' title = u'%s / 我的动态' % (request.user.username) feedAction = FeedAction() feedAction.set_user_position(request.user.id, PositionKey.TIMELINE) recently_timestamp = feedAction.get_recently_timestamp( request.user.id, AttrKey.RECENTLY_TIME_TIMELINE) pri_user_feeds = feedAction.get_pri_user_feeds(request.user.id, 0, 100) pub_user_feeds = feedAction.get_pub_user_feeds(request.user.id, 0, 100) feeds_as_json = get_feeds_as_json(request, pri_user_feeds, pub_user_feeds) feedAction.set_recently_timestamp_now(request.user.id, AttrKey.RECENTLY_TIME_TIMELINE) response_dictionary = { 'current': current, 'title': title, 'feeds_as_json': feeds_as_json, 'recently_timestamp': recently_timestamp } return render_to_response('user/timeline.html', response_dictionary, context_instance=RequestContext(request))
def notif(request): current = 'notif' title = u'%s / 我的通知' % (request.user.username) feedAction = FeedAction() feedAction.set_user_position(request.user.id, PositionKey.NOTIF) recently_timestamp_astime = feedAction.get_recently_timestamp_astime( request.user.id, AttrKey.RECENTLY_TIME_NOTIF) notifMessages = FeedManager.list_notifmessage_by_userId( request.user.id, 0, 500) if request.userprofile.unread_message != 0: request.userprofile.unread_message = 0 request.userprofile.save() feedAction.set_recently_timestamp_now(request.user.id, AttrKey.RECENTLY_TIME_NOTIF) response_dictionary = { 'current': current, 'title': title, 'notifMessages': notifMessages, 'recently_timestamp_astime': recently_timestamp_astime } return render_to_response('user/notif.html', response_dictionary, context_instance=RequestContext(request))