# HG changeset patch # User Steve Losh # Date 1267574445 18000 # Node ID 2d471b40629911ca9f34f145d32908b35c15b042 # Parent 8a546e4e071e9b848d176f2fa6a3f6e7e3120ddf Add *_level_comments methods to the API and use them. diff -r 8a546e4e071e -r 2d471b406299 review/api.py --- a/review/api.py Tue Mar 02 18:50:26 2010 -0500 +++ b/review/api.py Tue Mar 02 19:00:45 2010 -0500 @@ -481,11 +481,40 @@ return ds - @property def review_level_comments(self): """Comments on this changeset which aren't on a particular file.""" return filter(lambda c: not c.filename, self.comments) + def file_level_comments(self, filename=None): + """Comments on this changeset that are on a file, but not a line. + + If a file is given only comments for that file will be returned. + """ + + if filename: + return filter( + lambda c: filename == c.filename and not c.lines, self.comments + ) + else: + return filter( + lambda c: filename and not c.lines, self.comments + ) + + def line_level_comments(self, filename=None): + """Comments on this changeset that are on a line of file. + + If a file is given only comments for that file will be returned. + """ + + if filename: + return filter( + lambda c: filename == c.filename and c.lines, self.comments + ) + else: + return filter( + lambda c: filename and c.lines, self.comments + ) + class _ReviewObject(object): """A base object for some kind of review data (a signoff or comment).""" diff -r 8a546e4e071e -r 2d471b406299 review/extension_ui.py --- a/review/extension_ui.py Tue Mar 02 18:50:26 2010 -0500 +++ b/review/extension_ui.py Tue Mar 02 19:00:45 2010 -0500 @@ -153,7 +153,7 @@ for signoff in rcset.signoffs: _print_signoff(signoff, before='\n') - review_level_comments = rcset.review_level_comments + review_level_comments = rcset.review_level_comments() if review_level_comments: ui.write('\n') for comment in review_level_comments: @@ -172,15 +172,10 @@ header = messages.REVIEW_LOG_FILE_HEADER % filename print '\n\n%s %s' % (header, '-'*(80-(len(header)+1))) - file_level_comments = filter( - lambda c: filename == c.filename and not c.lines, rcset.comments - ) - for comment in file_level_comments: + for comment in rcset.file_level_comments(filename): _print_comment(comment) - line_level_comments = filter( - lambda c: filename == c.filename and c.lines, rcset.comments - ) + line_level_comments = rcset.line_level_comments(filename) prefix = '%%%dd: ' % len(str(content[-1][0])) previous_n = -1 for n, line in content: diff -r 8a546e4e071e -r 2d471b406299 review/web_templates/review.html --- a/review/web_templates/review.html Tue Mar 02 18:50:26 2010 -0500 +++ b/review/web_templates/review.html Tue Mar 02 19:00:45 2010 -0500 @@ -3,7 +3,7 @@ $ ctx = rd.target[rcset.node]

Changeset ${ ctx.rev() }: ${ ctx.description() }

-$ review_level_comments = rcset.review_level_comments +$ review_level_comments = rcset.review_level_comments() $for comment in review_level_comments:
@@ -36,7 +36,7 @@
- $ file_level_comments = filter(lambda c: c.filename == filename and not c.lines, rcset.comments) + $ file_level_comments = rcset.file_level_comments(filename) $for comment in file_level_comments:
@@ -67,7 +67,7 @@ $ max_line = diff['max'] $ content = diff['content'] - $ line_level_comments = filter(lambda c: c.filename == filename and c.lines, rcset.comments) + $ line_level_comments = rcset.line_level_comments(filename) $ previous_n = -1 $for n, line in content: $if n - 1 > previous_n: