Пример #1
0
    def _save_cr(self, req):
        req.perm.assert_permission('CODE_REVIEW_EDIT')

        cs_id = req.args.get('id')
        req_ver = req.args.get('req_version')

        cr = CodeReview(self.env, int(cs_id))

        if not cr.is_existent_rev():
            return pretty_err(req, 'Review ID error', 'No ChangeSet %s, it cannot ' \
                                'CodeReview for a Non-existent ChangeSet' % cs_id)
        error_info = []

        try:
            req_ver = int(req_ver)
        except:
            error_info.append(
                'No req_version, cannot know your version for editing.')

        if req.args.get('author').strip() == '':
            error_info.append('Author cannot be empty.')
        if req.args.get('text').strip() == '':
            error_info.append('CodeReview Content cannot be empty.')
        if req.args.get('status') not in [str(k) for k in status_str.keys()]:
            error_info.append('Status value is vaild.')
        if error_info:
            return pretty_err(req, 'Cannot save codereview',
                              '<br>'.join(error_info))

        item = cr.get_item()
        if cr.is_existent():
            #item['text'] = item['text'] or ''
            if req_ver != item['version']:
                req.args['oldtext'] = req.args.get("text", " ")
                return self._display_edit(req)
            ver = int(item['version']) + 1
        else:
            if req_ver != 0:
                req.args['oldtext'] = req.args.get("text", " ")
                return self._display_edit(req)
            ver = 1

        if req.args.get('priority', '') in ('normal', 'critical'):
            item['priority'] = req.args.get('priority')

        item['text'] = req.args.get('text')
        item['time'] = round(time.mktime(time.localtime()), 2)
        item['author'] = req.args.get('author')
        item['status'] = int(req.args.get('status'))
        cr.set_item(item)
        cr.save()

        for change_listener in self.change_listeners:
            change_listener.review_changed(self.env, int(cs_id),
                                           req.args.get('text'), ver,
                                           req.args.get('author'),
                                           int(req.args.get('status')),
                                           item['priority'], req)
        req.redirect('%s/CodeReview/%s' % (self.env.href.base, cs_id))
Пример #2
0
    def _save_cr(self, req):
        req.perm.assert_permission('CODE_REVIEW_EDIT')

        cs_id = req.args.get('id')
        req_ver = req.args.get('req_version')

        cr = CodeReview(self.env, int(cs_id))

        if not cr.is_existent_rev():
            return pretty_err(req, 'Review ID error', 'No ChangeSet %s, it cannot ' \
                                'CodeReview for a Non-existent ChangeSet' % cs_id)
        error_info = []

        try:
            req_ver = int(req_ver)
        except:
            error_info.append('No req_version, cannot know your version for editing.')
        
        if req.args.get('author').strip() == '':
            error_info.append('Author cannot be empty.')
        if req.args.get('text').strip() == '':
            error_info.append('CodeReview Content cannot be empty.')
        if req.args.get('status') not in [str(k) for k in status_str.keys()]:
            error_info.append('Status value is vaild.')
        if error_info:
            return pretty_err(req, 'Cannot save codereview', '<br>'.join(error_info))
        
        item = cr.get_item()
        if cr.is_existent():
            #item['text'] = item['text'] or ''
            if req_ver != item['version']:
                req.args['oldtext'] = req.args.get("text", " ")
                return self._display_edit(req)
            ver = int(item['version']) + 1
        else:
            if req_ver != 0:
                req.args['oldtext'] = req.args.get("text", " ")
                return self._display_edit(req)
            ver = 1
        
        if req.args.get('priority', '') in ('normal', 'critical'):
            item['priority'] = req.args.get('priority')
        
        item['text'] = req.args.get('text')
        item['time'] = round(time.mktime(time.localtime()), 2)
        item['author'] = req.args.get('author')
        item['status'] = int(req.args.get('status'))
        cr.set_item(item)
        cr.save()

        for change_listener in self.change_listeners:
            change_listener.review_changed(self.env,
                                           int(cs_id),
                                           req.args.get('text'),
                                           ver,
                                           req.args.get('author'),
                                           int(req.args.get('status')),
                                           item['priority'],
                                           req
                                          )
        req.redirect('%s/CodeReview/%s' % (self.env.href.base, cs_id))