emails: added new tags to status sent
- make this distinct colored tags for quick status catch - pass in the status type together with label to the notifiactions and templates - fixed some UI issues on emails
This commit is contained in:
parent
3b24829209
commit
1b62606fc2
10 changed files with 92 additions and 28 deletions
|
|
@ -408,6 +408,8 @@ def comment_pull_request(request, apiuser, repoid, pullrequestid,
|
|||
line_no=None,
|
||||
status_change=(ChangesetStatus.get_status_lbl(status)
|
||||
if status and allowed_to_change_status else None),
|
||||
status_change_type=(status
|
||||
if status and allowed_to_change_status else None),
|
||||
closing_pr=False,
|
||||
renderer=renderer
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1363,9 +1363,11 @@ def comment_commit(
|
|||
try:
|
||||
rc_config = SettingsModel().get_all_settings()
|
||||
renderer = rc_config.get('rhodecode_markup_renderer', 'rst')
|
||||
|
||||
status_change_label = ChangesetStatus.get_status_lbl(status)
|
||||
comm = ChangesetCommentsModel().create(
|
||||
message, repo, user, revision=commit_id, status_change=status,
|
||||
message, repo, user, revision=commit_id,
|
||||
status_change=status_change_label,
|
||||
status_change_type=status,
|
||||
renderer=renderer)
|
||||
if status:
|
||||
# also do a status change
|
||||
|
|
|
|||
|
|
@ -351,7 +351,8 @@ class ChangesetController(BaseRepoController):
|
|||
f_path=request.POST.get('f_path'),
|
||||
line_no=request.POST.get('line'),
|
||||
status_change=(ChangesetStatus.get_status_lbl(status)
|
||||
if status else None)
|
||||
if status else None),
|
||||
status_change_type=status
|
||||
)
|
||||
# get status if set !
|
||||
if status:
|
||||
|
|
|
|||
|
|
@ -762,6 +762,8 @@ class PullrequestsController(BaseRepoController):
|
|||
line_no=request.POST.get('line'),
|
||||
status_change=(ChangesetStatus.get_status_lbl(status)
|
||||
if status and allowed_to_change_status else None),
|
||||
status_change_type=(status
|
||||
if status and allowed_to_change_status else None),
|
||||
closing_pr=close_pr
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,8 @@ class ChangesetCommentsModel(BaseModel):
|
|||
return global_renderer
|
||||
|
||||
def create(self, text, repo, user, revision=None, pull_request=None,
|
||||
f_path=None, line_no=None, status_change=None, closing_pr=False,
|
||||
f_path=None, line_no=None, status_change=None,
|
||||
status_change_type=None, closing_pr=False,
|
||||
send_email=True, renderer=None):
|
||||
"""
|
||||
Creates new comment for commit or pull request.
|
||||
|
|
@ -96,7 +97,8 @@ class ChangesetCommentsModel(BaseModel):
|
|||
:param pull_request:
|
||||
:param f_path:
|
||||
:param line_no:
|
||||
:param status_change:
|
||||
:param status_change: Label for status change
|
||||
:param status_change_type: type of status change
|
||||
:param closing_pr:
|
||||
:param send_email:
|
||||
"""
|
||||
|
|
@ -144,6 +146,7 @@ class ChangesetCommentsModel(BaseModel):
|
|||
'renderer_type': renderer,
|
||||
'repo_name': repo.repo_name,
|
||||
'status_change': status_change,
|
||||
'status_change_type': status_change_type,
|
||||
'comment_body': text,
|
||||
'comment_file': f_path,
|
||||
'comment_line': line_no,
|
||||
|
|
|
|||
|
|
@ -854,6 +854,7 @@ class PullRequestModel(BaseModel):
|
|||
f_path=None,
|
||||
line_no=None,
|
||||
status_change=ChangesetStatus.get_status_lbl(status),
|
||||
status_change_type=status,
|
||||
closing_pr=True
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,30 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
|
||||
## helpers
|
||||
<%def name="tag_button(text, tag_type=None)">
|
||||
<%
|
||||
color_scheme = {
|
||||
'default': 'border:1px solid #979797;color:#666666;background-color:#f9f9f9',
|
||||
'approved': 'border:1px solid #0ac878;color:#0ac878;background-color:#f9f9f9',
|
||||
'rejected': 'border:1px solid #e85e4d;color:#e85e4d;background-color:#f9f9f9',
|
||||
'under_review': 'border:1px solid #ffc854;color:#ffc854;background-color:#f9f9f9',
|
||||
}
|
||||
%>
|
||||
<pre style="display:inline;border-radius:2px;font-size:12px;padding:.2em;${color_scheme.get(tag_type, color_scheme['default'])}">${text}</pre>
|
||||
</%def>
|
||||
|
||||
<%def name="status_text(text, tag_type=None)">
|
||||
<%
|
||||
color_scheme = {
|
||||
'default': 'color:#666666',
|
||||
'approved': 'color:#0ac878',
|
||||
'rejected': 'color:#e85e4d',
|
||||
'under_review': 'color:#ffc854',
|
||||
}
|
||||
%>
|
||||
<span style="font-weight:bold;font-size:12px;padding:.2em;${color_scheme.get(tag_type, color_scheme['default'])}">${text}</span>
|
||||
</%def>
|
||||
|
||||
## headers we additionally can set for email
|
||||
<%def name="headers()" filter="n,trim"></%def>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%inherit file="base.mako"/>
|
||||
|
||||
<%namespace name="base" file="base.mako"/>
|
||||
|
||||
<%def name="subject()" filter="n,trim">
|
||||
<%
|
||||
|
|
@ -82,7 +82,7 @@ data = {
|
|||
<tr><td style="padding-right:20px;">${_('Description')}</td><td>${h.urlify_commit_message(commit.message, repo_name)}</td></tr>
|
||||
|
||||
% if status_change:
|
||||
<tr><td style="padding-right:20px;">${_('Status')}</td><td>${_('The commit status was changed to')}: ${status_change}.</td></tr>
|
||||
<tr><td style="padding-right:20px;">${_('Status')}</td><td>${_('The commit status was changed to')}: ${base.status_text(status_change, tag_type=status_change_type)}</td></tr>
|
||||
% endif
|
||||
<tr><td style="padding-right:20px;">${(_('Comment on line: %(comment_line)s') if comment_file else _('Comment')) % data}</td><td style="line-height:1.2em;">${h.render(comment_body, renderer=renderer_type, mentions=True)}</td></tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%inherit file="base.mako"/>
|
||||
<%namespace name="base" file="base.mako"/>
|
||||
|
||||
|
||||
<%def name="subject()" filter="n,trim">
|
||||
|
|
@ -90,5 +91,8 @@ data = {
|
|||
</h4>
|
||||
</td></tr>
|
||||
<tr><td style="padding-right:20px;padding-top:15px;">${_('Source')}</td><td style="padding-top:15px;"><a style="color:#427cc9;text-decoration:none;cursor:pointer" href="${pr_source_repo_url}">${pr_source_repo.repo_name}</a></td></tr>
|
||||
% if status_change:
|
||||
<tr><td style="padding-right:20px;">${_('Submitted status')}</td><td>${base.status_text(status_change, tag_type=status_change_type)}</td></tr>
|
||||
% endif
|
||||
<tr><td style="padding-right:20px;">${(_('Comment on line: %(comment_line)s') if comment_file else _('Comment')) % data}</td><td style="line-height:1.2em;">${h.render(comment_body, renderer=renderer_type, mentions=True)}</td></tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,37 @@
|
|||
## -*- coding: utf-8 -*-
|
||||
<%inherit file="base.mako"/>
|
||||
<%namespace name="base" file="base.mako"/>
|
||||
|
||||
<%def name="subject()" filter="n,trim">
|
||||
${_('%(user)s wants you to review pull request #%(pr_url)s: "%(pr_title)s"') % {
|
||||
'user': h.person(user),
|
||||
'pr_title': pull_request.title,
|
||||
'pr_url': pull_request.pull_request_id
|
||||
} |n}
|
||||
<%
|
||||
data = {
|
||||
'user': h.person(user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
}
|
||||
%>
|
||||
|
||||
${_('%(user)s wants you to review pull request #%(pr_id)s: "%(pr_title)s"') % data |n}
|
||||
</%def>
|
||||
|
||||
|
||||
<%def name="body_plaintext()" filter="n,trim">
|
||||
<%
|
||||
data = {
|
||||
'user': h.person(user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
'target_ref_name': pull_request.target_ref_parts.name,
|
||||
'repo_url': pull_request_source_repo_url
|
||||
}
|
||||
%>
|
||||
${self.subject()}
|
||||
|
||||
|
||||
${h.literal(_('Pull request from %(source_ref_type)s:%(source_ref_name)s of %(repo_url)s into %(target_ref_type)s:%(target_ref_name)s') % {
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
'target_ref_name': pull_request.target_ref_parts.name,
|
||||
'repo_url': pull_request_source_repo_url
|
||||
})}
|
||||
${h.literal(_('Pull request from %(source_ref_type)s:%(source_ref_name)s of %(repo_url)s into %(target_ref_type)s:%(target_ref_name)s') % data)}
|
||||
|
||||
|
||||
* ${_('Link')}: ${pull_request_url}
|
||||
|
|
@ -42,20 +53,33 @@ ${pull_request.description}
|
|||
|
||||
${self.plaintext_footer()}
|
||||
</%def>
|
||||
|
||||
<%
|
||||
data = {
|
||||
'user': h.person(user),
|
||||
'pr_id': pull_request.pull_request_id,
|
||||
'pr_title': pull_request.title,
|
||||
'source_ref_type': pull_request.source_ref_parts.type,
|
||||
'source_ref_name': pull_request.source_ref_parts.name,
|
||||
'target_ref_type': pull_request.target_ref_parts.type,
|
||||
'target_ref_name': pull_request.target_ref_parts.name,
|
||||
'repo_url': pull_request_source_repo_url,
|
||||
'source_repo_url': h.link_to(pull_request_source_repo.repo_name, pull_request_source_repo_url),
|
||||
'target_repo_url': h.link_to(pull_request_target_repo.repo_name, pull_request_target_repo_url)
|
||||
}
|
||||
%>
|
||||
<table style="text-align:left;vertical-align:middle;">
|
||||
<tr><td colspan="2" style="width:100%;padding-bottom:15px;border-bottom:1px solid #dbd9da;"><h4><a href="${pull_request_url}" style="color:#427cc9;text-decoration:none;cursor:pointer">${_('%(user)s wants you to review pull request #%(pr_id)s: "%(pr_title)s".') % { 'user': h.person(user), 'pr_title': pull_request.title, 'pr_id': pull_request.pull_request_id } }</a></h4></td></tr>
|
||||
<tr><td colspan="2" style="width:100%;padding-bottom:15px;border-bottom:1px solid #dbd9da;"><h4><a href="${pull_request_url}" style="color:#427cc9;text-decoration:none;cursor:pointer">${_('%(user)s wants you to review pull request #%(pr_id)s: "%(pr_title)s".') % data }</a></h4></td></tr>
|
||||
<tr><td style="padding-right:20px;padding-top:15px;">${_('Title')}</td><td style="padding-top:15px;">${pull_request.title}</td></tr>
|
||||
<tr><td style="padding-right:20px;">${_('Source')}</td><td><pre style="display:inline;border-radius:2px;color:#666666;font-size:12px;background-color:#f9f9f9;padding:.2em;border:1px solid #979797;">${pull_request.source_ref_parts.name}</pre>${h.literal(_('%(source_ref_type)s of %(source_repo_url)s') % {'source_ref_type': pull_request.source_ref_parts.type, 'source_repo_url': h.link_to(pull_request_source_repo.repo_name, pull_request_source_repo_url)})}</td></tr>
|
||||
<tr><td style="padding-right:20px;">${_('Target')}</td><td><pre style="display:inline;border-radius:2px;color:#666666;font-size:12px;background-color:#f9f9f9;padding:.2em;border:1px solid #979797;">${pull_request.target_ref_parts.name}</pre>${h.literal(_('%(target_ref_type)s of %(target_repo_url)s') % {'target_ref_type': pull_request.target_ref_parts.type, 'target_repo_url': h.link_to(pull_request_target_repo.repo_name, pull_request_target_repo_url)})}</td></tr>
|
||||
<tr><td style="padding-right:20px;">${_('Source')}</td><td>${base.tag_button(pull_request.source_ref_parts.name)} ${h.literal(_('%(source_ref_type)s of %(source_repo_url)s') % data)}</td></tr>
|
||||
<tr><td style="padding-right:20px;">${_('Target')}</td><td>${base.tag_button(pull_request.target_ref_parts.name)} ${h.literal(_('%(target_ref_type)s of %(target_repo_url)s') % data)}</td></tr>
|
||||
<tr><td style="padding-right:20px;">${_('Description')}</td><td style="white-space:pre-wrap">${pull_request.description}</td></tr>
|
||||
<tr><td style="padding-right:20px;">${ungettext('%(num)s Commit', '%(num)s Commits', len(pull_request_commits)) % {'num': len(pull_request_commits)}}</td>
|
||||
<td><ol style="margin:0 0 0 1em;padding:0;text-align:left;">
|
||||
% for commit_id, message in pull_request_commits:
|
||||
<li style="margin:0 0 1em;"><pre style="margin:0 0 .5em">${h.short_id(commit_id)}</pre>
|
||||
${h.chop_at_smart(message, '\n', suffix_if_chopped='...')}
|
||||
</li>
|
||||
% endfor
|
||||
% for commit_id, message in pull_request_commits:
|
||||
<li style="margin:0 0 1em;"><pre style="margin:0 0 .5em">${h.short_id(commit_id)}</pre>
|
||||
${h.chop_at_smart(message, '\n', suffix_if_chopped='...')}
|
||||
</li>
|
||||
% endfor
|
||||
</ol></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue