diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2011-11-12 17:30:12 +0200 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2011-11-12 17:30:12 +0200 |
commit | e10171e75e2f431eae2028a28d2ac2326a9e2656 (patch) | |
tree | 2f35a488087ec608ec4aaf76c452b5441a7f7d70 /rhodecode/model/comment.py | |
parent | 1ae2cfbc3f99987648a708988ac8d7391232845f (diff) |
code refactoring
--HG--
branch : beta
Diffstat (limited to 'rhodecode/model/comment.py')
-rw-r--r-- | rhodecode/model/comment.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/rhodecode/model/comment.py b/rhodecode/model/comment.py index fe39b6c2..5c7e72e2 100644 --- a/rhodecode/model/comment.py +++ b/rhodecode/model/comment.py @@ -29,6 +29,7 @@ import traceback from rhodecode.model import BaseModel from rhodecode.model.db import ChangesetComment +from sqlalchemy.util.compat import defaultdict log = logging.getLogger(__name__) @@ -36,7 +37,7 @@ log = logging.getLogger(__name__) class ChangesetCommentsModel(BaseModel): - def create(self, text, repo_id, user_id, commit_id, f_path=None, + def create(self, text, repo_id, user_id, revision, f_path=None, line_no=None): """ Creates new comment for changeset @@ -44,7 +45,7 @@ class ChangesetCommentsModel(BaseModel): :param text: :param repo_id: :param user_id: - :param commit_id: + :param revision: :param f_path: :param line_no: """ @@ -52,7 +53,7 @@ class ChangesetCommentsModel(BaseModel): comment = ChangesetComment() comment.repo_id = repo_id comment.user_id = user_id - comment.commit_id = commit_id + comment.revision = revision comment.text = text comment.f_path = f_path comment.line_no = line_no @@ -71,3 +72,22 @@ class ChangesetCommentsModel(BaseModel): self.sa.delete(comment) self.sa.commit() return comment + + + def get_comments(self, repo_id, revision): + return ChangesetComment.query()\ + .filter(ChangesetComment.repo_id == repo_id)\ + .filter(ChangesetComment.revision == revision)\ + .filter(ChangesetComment.line_no == None)\ + .filter(ChangesetComment.f_path == None).all() + + def get_comments_for_file(self, repo_id, f_path, raw_id): + comments = self.sa.query(ChangesetComment)\ + .filter(ChangesetComment.repo_id == repo_id)\ + .filter(ChangesetComment.commit_id == raw_id)\ + .filter(ChangesetComment.f_path == f_path).all() + + d = defaultdict(list) + for co in comments: + d[co.line_no].append(co) + return d.items() |