$def with (request, username, can_merge) $# request : dict : Dict containing information about a single merge request. $# username : str | None : The patron's username, if currently authenticated. `None` if unauthenticated. $# can_merge : boolean : `True` if patron has merge privileges. $ request_title = request.get('title', _('An untitled work') if request['mr_type'] != 2 else _('An unnamed author')) $ comments = request.get('comments', {}).get('comments', []) $ is_open = request['status'] == 1 $ review_url = "%s&mrid=%s" % (request['url'], request['id']) $ is_submitter = username == request['submitter'] $code: # Maps request statuses to status dot class names status_dot_mapping = { 0: 'dot--closed', 1: 'dot--open', 2: 'dot--merged' } $# Start : Status dot indicator $ dot_status_class = status_dot_mapping[request['status']] $ status = _('Open request') if is_open else _('Closed request')
$# End : Status dot indicator
$request_title $# Start : Most recent comment preview
$ latest_comment = comments[-1]['message'] if comments else _('No comments yet.') $latest_comment
$# End : Most recent comment preview $# Start : Comment section $# XXX : Replace this with a modal form $# End : Comment section $# Start : Submitted by line $:_('MR #%(id)s opened %(date)s by @%(submitter)s', id=request['id'], date=datestr(request["created"]), submitter=request["submitter"]) $if is_open and is_submitter: × $# End : Submitted by line
$ show_review_button = is_open and can_merge and not request.get('reviewer', '')
$ request_reviewer = request.get('reviewer', '') $if request_reviewer: $ request_reviewer = '@' + request_reviewer $if is_open: $ icon_classes = 'mr-review-actions__unassign' $if not can_merge: $ icon_classes = '%s hidden' % icon_classes $ icon_content = '×' $else: $ icon_classes = 'mr-review-actions__checkmark' $ icon_content = '✓' $request_reviewer $:icon_content
$_('Review') $len(comments) $_('comments')