def diff_comment_line_numbers(context, chunks, comment): """Render the changed line number ranges for a diff, for use in e-mail. This will display the original and patched line ranges covered by a comment, transforming the comment's stored virtual line ranges into human-readable ranges. It's intended for use in e-mail. The template tag's output will list the original line ranges only if there are ranges to show, and same with the patched line ranges. Args: context (django.template.Context): The template context. chunks (list): The list of chunks for the diff. comment (reviewboard.reviews.models.diff_comment.Comment): The comment containing the line ranges. Returns: unicode: A string representing the line ranges for the comment. """ if comment.first_line is None: # Comments without a line number represent the entire file. return '' orig_range_info, patched_range_info = get_displayed_diff_line_ranges( chunks, comment.first_line, comment.last_line) if orig_range_info: orig_start_linenum, orig_end_linenum = \ orig_range_info['display_range'] if orig_start_linenum == orig_end_linenum: orig_lines_str = '%s' % orig_start_linenum orig_lines_prefix = 'Line' else: orig_lines_str = '%s-%s' % (orig_start_linenum, orig_end_linenum) orig_lines_prefix = 'Lines' else: orig_lines_str = None orig_lines_prefix = None if patched_range_info: patched_start_linenum, patched_end_linenum = \ patched_range_info['display_range'] if patched_start_linenum == patched_end_linenum: patched_lines_str = '%s' % patched_start_linenum patched_lines_prefix = 'Lines' else: patched_lines_str = '%s-%s' % (patched_start_linenum, patched_end_linenum) patched_lines_prefix = 'Lines' else: patched_lines_str = None patched_lines_prefix = None if orig_lines_str and patched_lines_str: return '%s %s (original), %s (patched)' % ( orig_lines_prefix, orig_lines_str, patched_lines_str) elif orig_lines_str: return '%s %s (original)' % (orig_lines_prefix, orig_lines_str) elif patched_lines_str: return '%s %s (patched)' % (patched_lines_prefix, patched_lines_str) else: return ''
def diff_comment_line_numbers(context, chunks, comment): """Render the changed line number ranges for a diff, for use in e-mail. This will display the original and patched line ranges covered by a comment, transforming the comment's stored virtual line ranges into human-readable ranges. It's intended for use in e-mail. The template tag's output will list the original line ranges only if there are ranges to show, and same with the patched line ranges. Args: context (django.template.Context): The template context. chunks (list): The list of chunks for the diff. comment (reviewboard.reviews.models.diff_comment.Comment): The comment containing the line ranges. Returns: unicode: A string representing the line ranges for the comment. """ if comment.first_line is None: # Comments without a line number represent the entire file. return '' orig_range_info, patched_range_info = get_displayed_diff_line_ranges( chunks, comment.first_line, comment.last_line) if orig_range_info: orig_start_linenum, orig_end_linenum = \ orig_range_info['display_range'] if orig_start_linenum == orig_end_linenum: orig_lines_str = '%s' % orig_start_linenum orig_lines_prefix = 'Line' else: orig_lines_str = '%s-%s' % (orig_start_linenum, orig_end_linenum) orig_lines_prefix = 'Lines' else: orig_lines_str = None orig_lines_prefix = None if patched_range_info: patched_start_linenum, patched_end_linenum = \ patched_range_info['display_range'] if patched_start_linenum == patched_end_linenum: patched_lines_str = '%s' % patched_start_linenum patched_lines_prefix = 'Lines' else: patched_lines_str = '%s-%s' % (patched_start_linenum, patched_end_linenum) patched_lines_prefix = 'Lines' else: patched_lines_str = None patched_lines_prefix = None if orig_lines_str and patched_lines_str: return '%s %s (original), %s (patched)' % ( orig_lines_prefix, orig_lines_str, patched_lines_str) elif orig_lines_str: return '%s %s (original)' % (orig_lines_prefix, orig_lines_str) elif patched_lines_str: return '%s %s (patched)' % (patched_lines_prefix, patched_lines_str) else: return ''