|
1 | 1 | {%extends "base.html"%}
|
2 | 2 | {%load commitfest%}
|
3 | 3 | {%block contents%}
|
4 |
| - {%include "patch_commands.inc"%} |
5 |
| - <table class="table table-bordered"> |
6 |
| - <tbody> |
7 |
| - <tr> |
8 |
| - <th>ID</th> |
9 |
| - <td><a href="/patch/{{patch.id}}">{{patch.id}}</a></td> |
10 |
| - </tr> |
11 |
| - <tr> |
12 |
| - <th>Title</th> |
13 |
| - <td>{{patch.name}}</td> |
14 |
| - </tr> |
15 |
| - <tr> |
16 |
| - <th>CI (CFBot)</th> |
17 |
| - <td> |
18 |
| - {%if not cfbot_branch %} |
19 |
| - <span class="label label-default">Not processed</span></a> |
20 |
| - {%elif cfbot_branch.needs_rebase_since %} |
21 |
| - <a href="{{cfbot_branch.apply_url}}"> |
22 |
| - <span class="label label-warning" title="View git apply logs">Needs rebase!</span></a> |
23 |
| - Needs rebase {% cfsince cfbot_branch.needs_rebase_since %}. {%if cfbot_branch.failing_since and cfbot_branch.failing_since != cfbot_branch.needs_rebase_since %}Failing {% cfsince cfbot_branch.failing_since %}. {%endif%}<br>Additional links previous successfully applied patch (outdated):<br> |
24 |
| - <a href="https://github.com/postgresql-cfbot/postgresql/compare/cf/{{patch.id}}~1...cf/{{patch.id}}" title="View previous successfully applied patch set on GitHub"><img class="github-logo" src="/media/commitfest/github-mark.svg"/></a> |
25 |
| - <a href="https://cirrus-ci.com/github/postgresql-cfbot/postgresql/cf%2F{{patch.id}}"> |
26 |
| - <span class="label label-default">Summary</span></a> |
27 |
| - {%else%} |
28 |
| - <a href="https://github.com/postgresql-cfbot/postgresql/compare/cf/{{patch.id}}~1...cf/{{patch.id}}" title="View last patch set on GitHub"><img class="github-logo" src="/media/commitfest/github-mark.svg"/></a> |
29 |
| - <a href="https://cirrus-ci.com/github/postgresql-cfbot/postgresql/cf%2F{{patch.id}}"> |
30 |
| - <span class="label label-default">Summary</span></a> |
31 |
| - {%for c in cfbot_tasks %} |
32 |
| - {%if c.status == 'COMPLETED'%} |
33 |
| - <a href="https://cirrus-ci.com/task/{{c.task_id}}" title="{{c.task_name}}: {{c.status}}"><img src="/media/commitfest/new_success.svg"/></a> |
34 |
| - {%elif c.status == 'CREATED' or c.status == 'SCHEDULED' %} |
35 |
| - <a href="https://cirrus-ci.com/task/{{c.task_id}}" title="{{c.task_name}}: {{c.status}}"><img src="/media/commitfest/waiting_to_start.svg"/></a> |
36 |
| - {%elif c.status == 'EXECUTING' %} |
37 |
| - <a href="https://cirrus-ci.com/task/{{c.task_id}}" title="{{c.task_name}}: {{c.status}}"><img src="/media/commitfest/running.svg"/></a> |
38 |
| - {%else %} |
39 |
| - <a href="https://cirrus-ci.com/task/{{c.task_id}}" title="{{c.task_name}}: {{c.status}}"><img src="/media/commitfest/new_failure.svg"/></a> |
40 |
| - {%endif%} |
41 |
| - {%endfor%} |
42 |
| - {%endif%} |
43 |
| - {%if cfbot_branch %} |
44 |
| - <button class="btn btn-default" title="This adds the following to your clipboard (needs to be run in an existing git repo): |
45 |
| - git remote add commitfest https://github.com/postgresql-cfbot/postgresql.git |
46 |
| - git fetch commitfest cf/{{patch.id}} |
47 |
| - git checkout commitfest/cf/{{patch.id}}" onclick="addGitCheckoutToClipboard({{patch.id}})">Copy git checkout commands</button> |
48 |
| - {%endif%} |
49 |
| - </a> |
50 |
| - </td> |
51 |
| - </tr> |
52 |
| - <tr> |
53 |
| - <th>Stats (from CFBot)</th> |
54 |
| - <td> |
55 |
| - {%if cfbot_branch and cfbot_branch.commit_id %} |
56 |
| - {%if cfbot_branch.version %} |
57 |
| - Patch version: {{ cfbot_branch.version }}, |
58 |
| - {%endif%} |
59 |
| - Patch count: {{ cfbot_branch.patch_count }}, |
60 |
| - First patch: <span class="additions">+{{ cfbot_branch.first_additions }}</span><span class="deletions">−{{ cfbot_branch.first_deletions }}</span>, |
61 |
| - All patches: <span class="additions">+{{ cfbot_branch.all_additions }}</span><span class="deletions">−{{ cfbot_branch.all_deletions }}</span> |
62 |
| - {%else%} |
63 |
| - Unknown |
64 |
| - {%endif%} |
65 |
| - </tr> |
66 |
| - <tr> |
67 |
| - <th>Topic</th> |
68 |
| - <td>{{patch.topic}}</td> |
69 |
| - </tr> |
70 |
| - <tr> |
71 |
| - <th>Created</th> |
72 |
| - <td>{{patch.created}}</td> |
73 |
| - </tr> |
74 |
| - <tr> |
75 |
| - <th style="white-space: nowrap;">Last modified</th> |
76 |
| - <td>{{patch.modified}} ({% cfwhen patch.modified %})</td> |
77 |
| - </tr> |
78 |
| - <tr> |
79 |
| - <th style="white-space: nowrap;">Latest email</th> |
80 |
| - <td>{%if patch.lastmail%}{{patch.lastmail}} ({% cfwhen patch.lastmail %}){%endif%}</td> |
81 |
| - </tr> |
82 |
| - <tr> |
83 |
| - <th>Status</th> |
84 |
| - <td>{%for c in patch_commitfests %} |
85 |
| - <div style="margin-bottom: 3px;"><a href="/{{c.commitfest.id}}/">{{c.commitfest}}</a>: <span class="label label-{{c.status|patchstatuslabel}}">{{c.statusstring}}</span></div> |
86 |
| - {%endfor%} |
87 |
| - </td> |
88 |
| - </tr> |
89 |
| - <tr> |
90 |
| - <th>Target version</th> |
91 |
| - <td>{%if patch.targetversion%}<span class="label label-default">{{patch.targetversion}}</span>{%endif%}</td> |
92 |
| - </tr> |
93 |
| - <tr> |
94 |
| - <th>Authors</th> |
95 |
| - <td>{{patch.authors_string}}</td> |
96 |
| - </tr> |
97 |
| - <tr> |
98 |
| - <th>Reviewers</th> |
99 |
| - <td>{{patch.reviewers_string}}<a href="reviewer/{{is_reviewer|yesno:"remove,become"}}/" class="btn btn-default pull-right">{{is_reviewer|yesno:"Remove from reviewers,Become reviewer"}}</a></td> |
100 |
| - </tr> |
101 |
| - <tr> |
102 |
| - <th>Committer</th> |
103 |
| - <td>{%if patch.committer%}{{patch.committer.fullname}}{%endif%} |
104 |
| - {%if is_committer%}<a href="committer/{{is_this_committer|yesno:"remove,become"}}/" class="btn btn-default pull-right">{{is_this_committer|yesno:"Unclaim as committer,Claim as committer"}}</a>{%endif%} |
105 |
| - </td> |
106 |
| - </tr> |
107 |
| - <tr> |
108 |
| - <th>Links</th> |
109 |
| - {%if patch.wikilink%} |
110 |
| - <a href="{{patch.wikilink}}">Wiki</a>{%endif%}{%if patch.gitlink%} |
111 |
| - <a href="{{patch.gitlink}}">Git</a> |
112 |
| - {%endif%}</td> |
113 |
| - </tr> |
114 |
| - <tr> |
115 |
| - <th>Emails</th> |
116 |
| - <td> |
117 |
| - {%if user.is_authenticated%} |
118 |
| - <div style="float:right"><button class="btn btn-default" onclick="attachThread({{cf.id}},{{patch.id}})">Attach thread</button></div> |
119 |
| - {%else%} |
120 |
| - <div style="float:right"><button class="btn btn-default" onclick="location.href='/account/login/?next=/{{cf.id}}/{{patch.id}}/%3Fattachthreadnow'">Attach thread</button></div> |
121 |
| - {%endif%} |
122 |
| - <dl> |
123 |
| - {%for t in patch.mailthread_set.all%} |
124 |
| - <dt><a href="https://www.postgresql.org/message-id/flat/{{t.messageid}}">{{t.subject}}</a> <button type="button" class="close close-nofloat" title="Detach this thread" onclick="detachThread({{cf.id}},{{patch.id}},'{{t.messageid}}')">×</button></dt> |
125 |
| - <dd> |
126 |
| - First at <a href="https://www.postgresql.org/message-id/{{t.messageid}}">{{t.firstmessage}}</a> by {{t.firstauthor|hidemail}}<br/> |
127 |
| - Latest at <a href="https://www.postgresql.org/message-id/{{t.latestmsgid}}">{{t.latestmessage}}</a> by {{t.latestauthor|hidemail}}<br/> |
128 |
| - {%for ta in t.mailthreadattachment_set.all%} |
129 |
| - {%if forloop.first%} |
130 |
| - Latest attachment (<a href="https://www.postgresql.org/message-id/attachment/{{ta.attachmentid}}/{{ta.filename}}">{{ta.filename}}</a>) at <a href="https://www.postgresql.org/message-id/{{ta.messageid}}">{{ta.date}}</a> from {{ta.author|hidemail}} <button type="button" class="btn btn-default btn-xs" data-toggle="collapse" data-target="#att{{t.pk}}" title="Show all attachments"><i class="glyphicon glyphicon-plus"></i></button> |
131 |
| - <div id="att{{t.pk}}" class="collapse"> |
132 |
| - {%endif%} |
133 |
| - Attachment (<a href="https://www.postgresql.org/message-id/attachment/{{ta.attachmentid}}/{{ta.filename}}">{{ta.filename}}</a>) at <a href="https://www.postgresql.org/message-id/{{ta.messageid}}">{{ta.date}}</a> from {{ta.author|hidemail}} (Patch: {{ta.ispatch|yesno:"Yes,No,Pending check"}})<br/> |
134 |
| - {%if forloop.last%}</div>{%endif%} |
135 |
| - {%endfor%} |
136 |
| - <div> |
137 |
| - {%for a in t.mailthreadannotation_set.all%} |
138 |
| - {%if forloop.first%} |
139 |
| - <h4>Annotations</h4> |
140 |
| - <table class="table table-bordered table-striped table-condensed small"> |
141 |
| - <thead> |
142 |
| - <tr> |
143 |
| - <th>When</th> |
144 |
| - <th>Who</th> |
145 |
| - <th>Mail</th> |
146 |
| - <th>Annotation</th> |
147 |
| - </tr> |
148 |
| - </thead> |
149 |
| - <tbody> |
150 |
| - {%endif%} |
151 |
| - <tr> |
152 |
| - <td>{{a.date}}</td> |
153 |
| - <td style="white-space: nowrap">{{a.user_string}}</td> |
154 |
| - <td style="white-space: nowrap">From {{a.mailauthor}}<br/>at <a href="https://www.postgresql.org/message-id/{{a.msgid}}">{{a.maildate}}</a></td> |
155 |
| - <td width="99%">{{a.annotationtext}} <button type="button" class="close" title="Delete this annotation" onclick="deleteAnnotation({{a.id}})">×</button></td> |
156 |
| - </tr> |
157 |
| - {%if forloop.last%} |
158 |
| - </body> |
159 |
| - </table> |
160 |
| - {%endif%} |
161 |
| - {%endfor%} |
162 |
| - {%if user.is_authenticated%}<button class="btn btn-xs btn-default" onclick="addAnnotation({{t.id}})">Add annotation</button>{%endif%} |
163 |
| - </div> |
164 |
| - </dd> |
165 |
| - {%endfor%} |
166 |
| - </dl> |
167 |
| - </td> |
168 |
| - </tr> |
169 |
| - <tr> |
170 |
| - <th>History</th> |
171 |
| - <td> |
172 |
| - <div style="max-height: 200px; overflow-y: scroll;"> |
173 |
| - <table class="table table-bordered table-striped table-condensed"> |
174 |
| - <thead> |
175 |
| - <tr> |
176 |
| - <th>When</th> |
177 |
| - <th>Who</th> |
178 |
| - <th>What</th> |
179 |
| - </tr> |
180 |
| - </thead> |
181 |
| - <tbody> |
182 |
| - {%for h in patch.history %} |
183 |
| - <tr> |
184 |
| - <td style="white-space: nowrap;">{{h.date}}</td> |
185 |
| - <td style="white-space: nowrap;">{{h.by_string}}</td> |
186 |
| - <td width="99%">{{h.what}}</td> |
187 |
| - </tr> |
188 |
| - {%endfor%} |
189 |
| - </tbody> |
190 |
| - </table> |
191 |
| - </div> |
192 |
| - {%if user.is_authenticated%} |
193 |
| - <a href="{{is_subscribed|yesno:"unsubscribe,subscribe"}}/" class="btn btn-default">{{is_subscribed|yesno:"Unsubscribe from patch update emails,Subscribe to patch update emails"}}</a> |
194 |
| - {%endif%} |
195 |
| - </td> |
196 |
| - </tr> |
197 |
| - </tbody> |
198 |
| - </table> |
| 4 | + {%include "patch_administrative.inc"%} |
| 5 | + {%include "patch_workflow.inc"%} |
| 6 | + |
| 7 | + <div class="workflow"> |
| 8 | + <table class="table table-bordered"> |
| 9 | + <tbody> |
| 10 | + {%include "patch_tr_email.inc"%} |
| 11 | + {%include "patch_tr_cfbot.inc"%} |
| 12 | + <tr> |
| 13 | + <th>Links</th> |
| 14 | + <td> |
| 15 | + {%if patch.wikilink%} |
| 16 | + <a href="{{patch.wikilink}}">Wiki</a> |
| 17 | + {%endif%} |
| 18 | + {%if patch.gitlink%} |
| 19 | + <a href="{{patch.gitlink}}">Git</a> |
| 20 | + {%endif%} |
| 21 | + <a class="btn btn-default pull-right" href="edit/">Edit</a> |
| 22 | + </td> |
| 23 | + </tr> |
| 24 | + </tbody> |
| 25 | + </table> |
| 26 | + </div> |
199 | 27 |
|
200 |
| - <div class="dropup" > |
201 |
| - {%include "patch_commands.inc"%} |
| 28 | + <div> |
| 29 | + <button class="btn btn-default" data-toggle="collapse" data-target="#history-table">Toggle History Table</button> |
| 30 | + <button class="btn btn-default" data-toggle="collapse" data-target="#keyvalue-table">Toggle Key-Value Table</button> |
202 | 31 | </div>
|
203 | 32 |
|
| 33 | + <div id="history-table" class="table table-bordered"> |
| 34 | + <h3>History</h3> |
| 35 | + <table class="table table-bordered table-striped table-condensed"> |
| 36 | + <thead> |
| 37 | + <tr> |
| 38 | + <th>When</th> |
| 39 | + <th>Who</th> |
| 40 | + <th>What</th> |
| 41 | + </tr> |
| 42 | + </thead> |
| 43 | + <tbody> |
| 44 | + {%for h in patch.history %} |
| 45 | + <tr> |
| 46 | + <td style="white-space: nowrap;">{{h.date}}</td> |
| 47 | + <td style="white-space: nowrap;">{{h.by_string}}</td> |
| 48 | + <td width="99%">{{h.what}}</td> |
| 49 | + </tr> |
| 50 | + {%endfor%} |
| 51 | + </tbody> |
| 52 | + </table> |
| 53 | + </div> |
| 54 | + |
| 55 | +{%include "patch_table_keyvalue.inc"%} |
| 56 | + |
204 | 57 | {%comment%}commit dialog{%endcomment%}
|
205 | 58 | <div class="modal fade" id="commitModal" role="dialog">
|
206 | 59 | <div class="modal-dialog modal-lg">
|
|
0 commit comments