Esempio n. 1
0
    def feed_issue_change(self, user, repo, orgi_issue, current_issue_id):
        current_issue = IssueManager.get_issue_by_id(current_issue_id)
        if current_issue is None:
            return
        feed_cate = FEED_CATE.ISSUES
        message = ''
        if orgi_issue is None and current_issue is not None:
            feed_type = FEED_TYPE.ISSUES_CREATE
            message = u'新建了问题'
        if orgi_issue is not None and (
                orgi_issue.subject != current_issue.subject
                or orgi_issue.content != current_issue.content
                or orgi_issue.category != current_issue.category):
            feed_type = FEED_TYPE.ISSUES_UPDATE
            message = u'更新了问题'
        # status update
        status_changes = []
        if orgi_issue is not None:
            if orgi_issue.tracker != current_issue.tracker:
                status_changes.append(
                    u'跟踪: ' + ISSUE_ATTR_DICT.TRACKER[current_issue.tracker])
            if orgi_issue.status != current_issue.status:
                status_changes.append(
                    u'状态: ' + ISSUE_ATTR_DICT.STATUS[current_issue.status])
            if orgi_issue.assigned != current_issue.assigned:
                assigned_user = GsuserManager.get_user_by_id(
                    current_issue.assigned)
                if assigned_user is not None:
                    status_changes.append(u'指派给: @' + assigned_user.username)
            if orgi_issue.priority != current_issue.priority:
                status_changes.append(
                    u'优先级: ' +
                    ISSUE_ATTR_DICT.PRIORITY[current_issue.priority])

            if len(status_changes) > 0:
                message = ', '.join(status_changes)
                feed_type = FEED_TYPE.ISSUES_STATUS_CHANGE

        if message != '':
            feed = Feed.create(user.id, repo.id, feed_cate, feed_type,
                               current_issue.id)
            # TODO
            feed.first_refname = message
            feed.save()
            feedAction = FeedAction()
            timestamp = float(time.mktime(feed.create_time.timetuple()))
            feedAction.add_repo_feed(repo.id, timestamp, feed.id)
            if repo.auth_type == 2:
                feedAction.add_pri_user_feed(user.id, timestamp, feed.id)
            else:
                feedAction.add_pub_user_feed(user.id, timestamp, feed.id)
Esempio n. 2
0
    def feed_issue_change(self, user, repo, orgi_issue, current_issue_id):
        current_issue = IssueManager.get_issue_by_id(current_issue_id)
        if current_issue is None:
            return
        feed_cate = FEED_CATE.ISSUES
        message = ''
        if orgi_issue is None and current_issue is not None:
            feed_type = FEED_TYPE.ISSUES_CREATE
            message = u'新建了问题'
        if orgi_issue is not None and (orgi_issue.subject != current_issue.subject or orgi_issue.content != current_issue.content or orgi_issue.category != current_issue.category):
            feed_type = FEED_TYPE.ISSUES_UPDATE
            message = u'更新了问题'
        # status update
        status_changes = []
        if orgi_issue is not None:
            if orgi_issue.tracker != current_issue.tracker:
                status_changes.append(u'跟踪: ' + ISSUE_ATTR_DICT.TRACKER[current_issue.tracker])
            if orgi_issue.status != current_issue.status:
                status_changes.append(u'状态: ' + ISSUE_ATTR_DICT.STATUS[current_issue.status])
            if orgi_issue.assigned != current_issue.assigned:
                assigned_user = GsuserManager.get_user_by_id(current_issue.assigned)
                if assigned_user is not None:
                    status_changes.append(u'指派给: @' + assigned_user.username)
            if orgi_issue.priority != current_issue.priority:
                status_changes.append(u'优先级: ' + ISSUE_ATTR_DICT.PRIORITY[current_issue.priority])
            
            if len(status_changes) > 0:
                message = ', '.join(status_changes)
                feed_type = FEED_TYPE.ISSUES_STATUS_CHANGE

        if message != '':
            feed = Feed.create(user.id, repo.id, feed_cate, feed_type, current_issue.id)
            # TODO
            feed.first_refname = message
            feed.save()
            feedAction = FeedAction()
            timestamp = float(time.mktime(feed.create_time.timetuple()))
            feedAction.add_repo_feed(repo.id, timestamp, feed.id)
            if repo.auth_type == 2:
                feedAction.add_pri_user_feed(user.id, timestamp, feed.id)
            else:
                feedAction.add_pub_user_feed(user.id, timestamp, feed.id)
Esempio n. 3
0
 def feed_pull_change(self, user, pullRequest, pullStatus):
     feed_cate = FEED_CATE.MERGE
     feed_type = FEED_TYPE.MERGE_CREATE_PULL_REQUEST
     repo = pullRequest.desc_repo
     if pullStatus == PULL_STATUS.NEW:
         feed_type = FEED_TYPE.MERGE_CREATE_PULL_REQUEST
     elif pullStatus == PULL_STATUS.MERGED_FAILED:
         feed_type = FEED_TYPE.MERGE_MERGED_FAILED_PULL_REQUEST
     elif pullStatus == PULL_STATUS.MERGED:
         feed_type = FEED_TYPE.MERGE_MERGED_PULL_REQUEST
     elif pullStatus == PULL_STATUS.REJECTED:
         feed_type = NOTIF_TYPE.MERGE_REJECTED_PULL_REQUEST
     elif pullStatus == PULL_STATUS.CLOSE:
         feed_type = NOTIF_TYPE.MERGE_CLOSE_PULL_REQUEST
     feed = Feed.create(user.id, repo.id, feed_cate, feed_type, pullRequest.id)
     feed.save()
     feedAction = FeedAction()
     timestamp = float(time.mktime(feed.create_time.timetuple()))
     feedAction.add_repo_feed(repo.id, timestamp, feed.id)
     if repo.auth_type == 2:
         feedAction.add_pri_user_feed(user.id, timestamp, feed.id)
     else:
         feedAction.add_pub_user_feed(user.id, timestamp, feed.id)
Esempio n. 4
0
 def feed_pull_change(self, user, pullRequest, pullStatus):
     feed_cate = FEED_CATE.MERGE
     feed_type = FEED_TYPE.MERGE_CREATE_PULL_REQUEST
     repo = pullRequest.desc_repo
     if pullStatus == PULL_STATUS.NEW:
         feed_type = FEED_TYPE.MERGE_CREATE_PULL_REQUEST
     elif pullStatus == PULL_STATUS.MERGED_FAILED:
         feed_type = FEED_TYPE.MERGE_MERGED_FAILED_PULL_REQUEST
     elif pullStatus == PULL_STATUS.MERGED:
         feed_type = FEED_TYPE.MERGE_MERGED_PULL_REQUEST
     elif pullStatus == PULL_STATUS.REJECTED:
         feed_type = NOTIF_TYPE.MERGE_REJECTED_PULL_REQUEST
     elif pullStatus == PULL_STATUS.CLOSE:
         feed_type = NOTIF_TYPE.MERGE_CLOSE_PULL_REQUEST
     feed = Feed.create(user.id, repo.id, feed_cate, feed_type,
                        pullRequest.id)
     feed.save()
     feedAction = FeedAction()
     timestamp = float(time.mktime(feed.create_time.timetuple()))
     feedAction.add_repo_feed(repo.id, timestamp, feed.id)
     if repo.auth_type == 2:
         feedAction.add_pri_user_feed(user.id, timestamp, feed.id)
     else:
         feedAction.add_pub_user_feed(user.id, timestamp, feed.id)