1 |
commit: a8fc1c1b6f8201c9165a92147d1e751d0c4436e6 |
2 |
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Feb 2 22:44:31 2016 +0000 |
4 |
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Feb 2 22:44:31 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/tinderbox-cluster-www.git/commit/?id=a8fc1c1b |
7 |
|
8 |
add buildinfo to packages |
9 |
|
10 |
python/tbc_www/models.py | 15 +++- |
11 |
python/tbc_www/urls.py | 2 +- |
12 |
python/tbc_www/views.py | 96 ++++++++++++++++------ |
13 |
python/templates/includes/frontpage/new_repoman | 10 +++ |
14 |
python/templates/includes/frontpage/new_repoman_qa | 18 ---- |
15 |
python/templates/pages/home/index.html | 4 +- |
16 |
python/templates/pages/new/index.html | 4 +- |
17 |
python/templates/pages/new/logs/build/index.html | 14 +++- |
18 |
.../pages/new/{repomanqa => repoman}/index.html | 22 +---- |
19 |
.../templates/pages/packages/category/index.html | 11 +++ |
20 |
.../pages/packages/ebuilds/ebuild/index.html | 33 ++++++-- |
21 |
python/templates/pages/packages/ebuilds/index.html | 29 +++++-- |
22 |
12 files changed, 172 insertions(+), 86 deletions(-) |
23 |
|
24 |
diff --git a/python/tbc_www/models.py b/python/tbc_www/models.py |
25 |
index 81f7c59..0d58bc1 100644 |
26 |
--- a/python/tbc_www/models.py |
27 |
+++ b/python/tbc_www/models.py |
28 |
@@ -41,7 +41,7 @@ class Packages(models.Model): |
29 |
class Meta: |
30 |
db_table = 'packages' |
31 |
def __str__(self): |
32 |
- return '%s %s %s %s %s %s %s' % (self.PackageId, self.CategoryId, self.Package, self.RepoId, self.Active, self.TimeStamp) |
33 |
+ return '%s %s %s %s %s %s' % (self.PackageId, self.CategoryId, self.Package, self.RepoId, self.Active, self.TimeStamp) |
34 |
|
35 |
class PackagesMetadata(models.Model): |
36 |
Id = models.IntegerField(primary_key=True, db_column='id') |
37 |
@@ -74,7 +74,7 @@ class EbuildsMetadata(models.Model): |
38 |
class Meta: |
39 |
db_table = 'ebuilds_metadata' |
40 |
def __str__(self): |
41 |
- return '%s %s %s %s' % (self.Id, self.EbuildId, self,Commit, self.New, self.Descriptions) |
42 |
+ return '%s %s %s %s %s' % (self.Id, self.EbuildId, self,Commit, self.New, self.Descriptions) |
43 |
|
44 |
class BuildLogs(models.Model): |
45 |
BuildLogId = models.IntegerField(primary_key=True, db_column='build_log_id') |
46 |
@@ -89,12 +89,21 @@ class BuildLogs(models.Model): |
47 |
def __str__(self): |
48 |
return '%s %s %s %s %s %s %s' % (self.BuildLogId, self.EbuildId, self.Fail, self.SummeryText, self.LogHash, self.BugId, self.TimeStamp) |
49 |
|
50 |
+class BuildLogsRepoman(models.Model): |
51 |
+ Id = models.IntegerField(primary_key=True, db_column='id') |
52 |
+ BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id') |
53 |
+ SummeryText = models.TextField(db_column='summery_text') |
54 |
+ class Meta: |
55 |
+ db_table = 'build_logs_repoman' |
56 |
+ def __str__(self): |
57 |
+ return '%s %s %s' % (self.Id, self.BuildLogId, self.SummeryText) |
58 |
+ |
59 |
class BuildLogsQa(models.Model): |
60 |
Id = models.IntegerField(primary_key=True, db_column='id') |
61 |
BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id') |
62 |
SummeryText = models.TextField(db_column='summery_text') |
63 |
class Meta: |
64 |
- db_table = 'build_logs_repoman_qa' |
65 |
+ db_table = 'build_logs_qa' |
66 |
def __str__(self): |
67 |
return '%s %s %s' % (self.Id, self.BuildLogId, self.SummeryText) |
68 |
|
69 |
|
70 |
diff --git a/python/tbc_www/urls.py b/python/tbc_www/urls.py |
71 |
index 6198beb..5be267f 100644 |
72 |
--- a/python/tbc_www/urls.py |
73 |
+++ b/python/tbc_www/urls.py |
74 |
@@ -8,6 +8,6 @@ urlpatterns = patterns('tbc_www.views', |
75 |
url(r'^ebuild/(?P<ebuild_id>\d+)/$', 'ebuild'), |
76 |
url(r'^new/logs/build/(?P<buildlog_id>\d+)/$', 'new_logs_build'), |
77 |
url(r'^new/logs/$', 'new_logs'), |
78 |
- url(r'^new/repomanqa/$', 'new_repomanqa'), |
79 |
+ url(r'^new/repoman/$', 'new_repoman'), |
80 |
url(r'^new/$', 'new_main'), |
81 |
) |
82 |
|
83 |
diff --git a/python/tbc_www/views.py b/python/tbc_www/views.py |
84 |
index 29e561d..29fb520 100644 |
85 |
--- a/python/tbc_www/views.py |
86 |
+++ b/python/tbc_www/views.py |
87 |
@@ -8,7 +8,7 @@ from gentoo_www.models import SiteSettings, Layout, Pages, SubPages, Sponsors, P |
88 |
from tbc_www.models import EbuildsMetadata, BuildLogs, BuildJobs, BuildLogsQa, \ |
89 |
BuildJobsUse, Categories, CategoriesMetadata, Packages, PackagesMetadata, Ebuilds, \ |
90 |
Repos, EbuildsKeywords, BuildLogsErrors, EbuildsRestrictions, EbuildsIuse, PackagesRepoman, \ |
91 |
- BuildLogsConfig, BuildLogsUse, BuildLogsQa |
92 |
+ BuildLogsConfig, BuildLogsUse, BuildLogsRepoman |
93 |
import re |
94 |
|
95 |
def default_TmpDict(pagerequest): |
96 |
@@ -78,8 +78,7 @@ def home(request): |
97 |
adict2['title'] = adict2['title'] + "\n" |
98 |
adict[BJ.BuildJobId] = adict2 |
99 |
TmpDict['BJ'] = adict |
100 |
- TmpDict['QA_tmp'] = BuildLogsQa.objects.order_by('-Id')[:Lines/2] |
101 |
- TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines/2] |
102 |
+ TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines] |
103 |
return render(request, 'pages/' + pagerequest + '/index.html', TmpDict) |
104 |
|
105 |
def categories(request): |
106 |
@@ -109,12 +108,24 @@ def packages(request, category_id): |
107 |
adict['Package'] = PM.PackageId.Package |
108 |
adict['Descriptions'] = PM.Descriptions |
109 |
adict['Commitlog'] =PM.Gitlog |
110 |
- try: |
111 |
- PackagesRepoman.objects.get(PackageId__PackageId = PM.PackageId.PackageId) |
112 |
- except PackagesRepoman.DoesNotExist as e: |
113 |
+ PR = PackagesRepoman.objects.filter(PackageId__PackageId = PM.PackageId.PackageId) |
114 |
+ if PR.exists(): |
115 |
+ adict['Repoman'] = True |
116 |
+ else: |
117 |
adict['Repoman'] = False |
118 |
+ BLQ = BuildLogsQa.objects.filter(BuildLogId__EbuildId__PackageId__PackageId = PM.PackageId.PackageId).filter(BuildLogId__EbuildId__Active = True) |
119 |
+ if BLQ.exists(): |
120 |
+ adict['Qa'] = True |
121 |
else: |
122 |
- adict['Repoman'] = True |
123 |
+ adict['Qa'] = False |
124 |
+ BL = BuildLogs.objects.filter(EbuildId__PackageId__PackageId = PM.PackageId.PackageId).filter(EbuildId__Active = True) |
125 |
+ if BL.exists(): |
126 |
+ adict['Bl'] = True |
127 |
+ adict['Blf'] = False |
128 |
+ if BL.filter(Fail = True).exists(): |
129 |
+ adict['Blf'] = True |
130 |
+ else: |
131 |
+ adict['Bl'] = False |
132 |
ebuilds = [] |
133 |
for E in Ebuilds.objects.filter(Active = True).filter(PackageId__Package = PM.PackageId.Package): |
134 |
ebuilds.append(E.Version + '::' + E.PackageId.RepoId.Repo + '\n') |
135 |
@@ -130,13 +141,44 @@ def ebuilds(request, package_id): |
136 |
P = get_object_or_404(PackagesMetadata, PackageId__PackageId = package_id) |
137 |
TmpDict['P'] = P |
138 |
TmpDict['EM_tmp'] = EbuildsMetadata.objects.filter(EbuildId__Active = True).filter(EbuildId__PackageId__Package = P.PackageId.Package) |
139 |
- TmpDict['EK_tmp'] = EbuildsKeywords.objects.filter(EbuildId__Active = True).filter(EbuildId__PackageId__Package = P.PackageId.Package) |
140 |
- try: |
141 |
- PackagesRepoman.objects.get(PackageId__PackageId = package_id) |
142 |
- except PackagesRepoman.DoesNotExist as e: |
143 |
+ PR = PackagesRepoman.objects.filter(PackageId__PackageId = package_id) |
144 |
+ BLQ_tmp = BuildLogsQa.objects.filter(BuildLogId__EbuildId__PackageId__PackageId = package_id).filter(BuildLogId__EbuildId__Active = True) |
145 |
+ BL_tmp = BuildLogs.objects.filter(EbuildId__PackageId__PackageId = package_id).filter(EbuildId__Active = True) |
146 |
+ TmpDict['BLQ_tmp'] = BLQ_tmp |
147 |
+ TmpDict['BL_tmp'] = BL_tmp |
148 |
+ if PR.exists(): |
149 |
+ TmpDict['PR'] = True |
150 |
+ else: |
151 |
TmpDict['PR'] = False |
152 |
+ if BLQ_tmp.exists(): |
153 |
+ TmpDict['QA'] = True |
154 |
else: |
155 |
- TmpDict['PR'] = True |
156 |
+ TmpDict['QA'] = False |
157 |
+ if BL_tmp.exists(): |
158 |
+ TmpDict['Bl'] = True |
159 |
+ TmpDict['Blf'] = False |
160 |
+ if BL_tmp.filter(Fail = True).exists(): |
161 |
+ TmpDict['Blf'] = True |
162 |
+ else: |
163 |
+ TmpDict['Bl'] = False |
164 |
+ alist = [] |
165 |
+ for EM in TmpDict['EM_tmp']: |
166 |
+ adict = {} |
167 |
+ adict['EbuildId'] = EM.EbuildId.EbuildId |
168 |
+ adict['fail'] = False |
169 |
+ BLe = BuildLogs.objects.filter(EbuildId__EbuildId = EM.EbuildId.EbuildId).filter(EbuildId__Active = True) |
170 |
+ if BLe.filter(Fail = True).exists(): |
171 |
+ adict['fail'] = True |
172 |
+ adict['repoman'] = False |
173 |
+ BLRe = BuildLogsRepoman.objects.filter(BuildLogId__EbuildId__EbuildId = EM.EbuildId.EbuildId).filter(BuildLogId__EbuildId__Active = True) |
174 |
+ if BLRe.exists(): |
175 |
+ adict['repoman'] = True |
176 |
+ adict['qa'] = False |
177 |
+ BLQe = BuildLogsQa.objects.filter(BuildLogId__EbuildId__EbuildId = EM.EbuildId.EbuildId).filter(BuildLogId__EbuildId__Active = True) |
178 |
+ if BLQe.exists(): |
179 |
+ adict['qa'] = True |
180 |
+ alist.append(adict) |
181 |
+ TmpDict['fi_tmp'] = alist |
182 |
return render(request, 'pages/' + pagerequest + '/ebuilds/index.html', TmpDict) |
183 |
|
184 |
def ebuild(request, ebuild_id): |
185 |
@@ -145,9 +187,15 @@ def ebuild(request, ebuild_id): |
186 |
TmpDict['E'] = get_object_or_404(Ebuilds, EbuildId = ebuild_id) |
187 |
TmpDict['EM_tmp'] = EbuildsMetadata.objects.filter(EbuildId__EbuildId = ebuild_id) |
188 |
TmpDict['EK_tmp'] = EbuildsKeywords.objects.filter(EbuildId__EbuildId = ebuild_id) |
189 |
- TmpDict['BL_tmp'] = BuildLogs.objects.filter(EbuildId__EbuildId = ebuild_id) |
190 |
+ BL_tmp = BuildLogs.objects.filter(EbuildId__EbuildId = ebuild_id) |
191 |
+ TmpDict['BL_tmp'] = BL_tmp |
192 |
TmpDict['EU_tmp'] = EbuildsIuse.objects.filter(EbuildId__EbuildId = ebuild_id) |
193 |
TmpDict['ER_tmp'] = EbuildsRestrictions.objects.filter(EbuildId__EbuildId = ebuild_id) |
194 |
+ BLQ_tmp = BuildLogsQa.objects.filter(BuildLogId__EbuildId__EbuildId = ebuild_id).filter(BuildLogId__EbuildId__Active = True) |
195 |
+ TmpDict['BLQ_tmp'] = BLQ_tmp |
196 |
+ BLR_tmp = BuildLogsRepoman.objects.filter(BuildLogId__EbuildId__EbuildId = ebuild_id).filter(BuildLogId__EbuildId__Active = True) |
197 |
+ TmpDict['BLR_tmp']= BLR_tmp |
198 |
+ |
199 |
return render(request, 'pages/' + pagerequest + '/ebuilds/ebuild/index.html', TmpDict) |
200 |
|
201 |
def new_main(request): |
202 |
@@ -200,18 +248,16 @@ def new_main(request): |
203 |
adict2['title'] = adict2['title'] + use + " " |
204 |
adict2['title'] = adict2['title'] + "\n" |
205 |
adict[BJ.BuildJobId] = adict2 |
206 |
- TmpDict['BJ'] = adict |
207 |
- TmpDict['QA_tmp'] = BuildLogsQa.objects.order_by('-Id')[:Lines/2] |
208 |
- TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines/2] |
209 |
+ TmpDict['BJ'] = adict |
210 |
+ TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines] |
211 |
return render(request, 'pages/' + pagerequest + '/index.html', TmpDict) |
212 |
|
213 |
-def new_repomanqa(request): |
214 |
+def new_repoman(request): |
215 |
pagerequest = 'new' |
216 |
Lines = 30 |
217 |
TmpDict = default_TmpDict(pagerequest) |
218 |
- TmpDict['QA_tmp'] = BuildLogsQa.objects.order_by('-Id')[:Lines/2] |
219 |
- TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines/2] |
220 |
- return render(request, 'pages/' + pagerequest + '/repomanqa/index.html', TmpDict) |
221 |
+ TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines] |
222 |
+ return render(request, 'pages/' + pagerequest + '/repoman/index.html', TmpDict) |
223 |
|
224 |
def new_logs(request): |
225 |
pagerequest = 'new' |
226 |
@@ -291,9 +337,13 @@ def new_logs_build(request, buildlog_id): |
227 |
BLI['use_disable'] = use_disable |
228 |
try: |
229 |
BRQ = BuildLogsQa.objects.get(BuildLogId = B.BuildLogId) |
230 |
- BLI['RepomanQA'] = BRQ.SummeryText |
231 |
+ BLI['QA'] = BRQ.SummeryText |
232 |
except BuildLogsQa.DoesNotExist as e: |
233 |
- BLI['RepomanQA'] = False |
234 |
- print(BLI) |
235 |
+ BLI['QA'] = False |
236 |
+ try: |
237 |
+ BRR = BuildLogsRepoman.objects.get(BuildLogId = B.BuildLogId) |
238 |
+ BLI['Repoman'] = BRR.SummeryText |
239 |
+ except BuildLogsRepoman.DoesNotExist as e: |
240 |
+ BLI['Repoman'] = False |
241 |
TmpDict['BLI'] = BLI |
242 |
return render(request, 'pages/' + pagerequest + '/logs/build/index.html', TmpDict) |
243 |
\ No newline at end of file |
244 |
|
245 |
diff --git a/python/templates/includes/frontpage/new_repoman b/python/templates/includes/frontpage/new_repoman |
246 |
new file mode 100644 |
247 |
index 0000000..1e54e2b |
248 |
--- /dev/null |
249 |
+++ b/python/templates/includes/frontpage/new_repoman |
250 |
@@ -0,0 +1,10 @@ |
251 |
+<table class="table table-striped frontpage-table"> |
252 |
+ {% for PR in PR_tmp %} |
253 |
+ <tr> |
254 |
+ <td class="frontpage-table-package-atom"><a href="/repoman/{{ PR.PackageId.PackageId }}/" title="{{ PR.PackageId.CategoryId.Category }}/{{ PR.PackageId.Package }}::{{ PR.PackageId.RepoId.Repo }}"> |
255 |
+ {{ PR.PackageId.CategoryId.Category }}/{{ PR.PackageId.Package }}::{{ PR.PackageId.RepoId.Repo }}</a> |
256 |
+ </td> |
257 |
+ <td><p title="{{ PR.RepomanText }}">{{ PR.RepomanText|truncatewords:3 }}</p></td> |
258 |
+ </tr> |
259 |
+ {% endfor %} |
260 |
+</table> |
261 |
|
262 |
diff --git a/python/templates/includes/frontpage/new_repoman_qa b/python/templates/includes/frontpage/new_repoman_qa |
263 |
deleted file mode 100644 |
264 |
index 61ac691..0000000 |
265 |
--- a/python/templates/includes/frontpage/new_repoman_qa |
266 |
+++ /dev/null |
267 |
@@ -1,18 +0,0 @@ |
268 |
-<table class="table table-striped frontpage-table"> |
269 |
- {% for QA in QA_tmp %} |
270 |
- <tr> |
271 |
- <td class="frontpage-table-package-atom"><a href="/repoman_qa/{{ QA.BuildLogId.BuildLogId }}/" title="{{ QA.BuildLogId.EbuildId.PackageId.CategoryId.Category }}/{{ QA.BuildLogId.EbuildId.PackageId.Package }}-{{ QA.BuildLogId.EbuildId.Version }}::{{ QA.BuildLogId.EbuildId.PackageId.RepoId.Repo }}"> |
272 |
- {{ QA.BuildLogId.EbuildId.PackageId.CategoryId.Category }}/{{ QA.BuildLogId.EbuildId.PackageId.Package }}-{{ QA.BuildLogId.EbuildId.Version }}::{{ QA.BuildLogId.EbuildId.PackageId.RepoId.Repo }}</a> |
273 |
- </td> |
274 |
- <td><p title="{{ QA.SummeryText }}">{{ QA.SummeryText|truncatewords:3 }}</p></td> |
275 |
- </tr> |
276 |
- {% endfor %} |
277 |
- {% for PR in PR_tmp %} |
278 |
- <tr> |
279 |
- <td class="frontpage-table-package-atom"><a href="/repoman/{{ PR.PackageId.PackageId }}/" title="{{ PR.PackageId.CategoryId.Category }}/{{ PR.PackageId.Package }}::{{ PR.PackageId.RepoId.Repo }}"> |
280 |
- {{ PR.PackageId.CategoryId.Category }}/{{ PR.PackageId.Package }}::{{ PR.PackageId.RepoId.Repo }}</a> |
281 |
- </td> |
282 |
- <td><p title="{{ PR.RepomanText }}">{{ PR.RepomanText|truncatewords:3 }}</p></td> |
283 |
- </tr> |
284 |
- {% endfor %} |
285 |
-</table> |
286 |
\ No newline at end of file |
287 |
|
288 |
diff --git a/python/templates/pages/home/index.html b/python/templates/pages/home/index.html |
289 |
index c355c11..570202e 100644 |
290 |
--- a/python/templates/pages/home/index.html |
291 |
+++ b/python/templates/pages/home/index.html |
292 |
@@ -18,8 +18,8 @@ |
293 |
{% include "includes/frontpage/new_build_req" %} |
294 |
</div> |
295 |
<div class="col-xs-12 col-md-6"> |
296 |
- <h2>New Repoman or QA's <small>on the <a href="/new/repomanqa/">New Repoman or QA's</a></small></h2> |
297 |
- {% include "includes/frontpage/new_repoman_qa" %} |
298 |
+ <h2>New Repoman's <small>on the <a href="/new/repoman/">New Repoman's</a></small></h2> |
299 |
+ {% include "includes/frontpage/new_repoman" %} |
300 |
</div> |
301 |
</div> |
302 |
|
303 |
|
304 |
diff --git a/python/templates/pages/new/index.html b/python/templates/pages/new/index.html |
305 |
index 608b40e..085f180 100644 |
306 |
--- a/python/templates/pages/new/index.html |
307 |
+++ b/python/templates/pages/new/index.html |
308 |
@@ -17,8 +17,8 @@ |
309 |
{% include "includes/frontpage/new_build_req" %} |
310 |
</div> |
311 |
<div class="col-xs-12 col-md-6"> |
312 |
- <h2>New Repoman or QA's <small>on the <a href="/new/repomanqa/">New Repoman or QA's</a></small></h2> |
313 |
- {% include "includes/frontpage/new_repoman_qa" %} |
314 |
+ <h2>New Repoman's <small>on the <a href="/new/repoman/">New Repoman's</a></small></h2> |
315 |
+ {% include "includes/frontpage/new_repoman" %} |
316 |
</div> |
317 |
</div> |
318 |
|
319 |
|
320 |
diff --git a/python/templates/pages/new/logs/build/index.html b/python/templates/pages/new/logs/build/index.html |
321 |
index 487a397..5c2a9b6 100644 |
322 |
--- a/python/templates/pages/new/logs/build/index.html |
323 |
+++ b/python/templates/pages/new/logs/build/index.html |
324 |
@@ -54,9 +54,17 @@ |
325 |
</div> |
326 |
<div class="row-fluid"> |
327 |
<div class=span12> |
328 |
- {% if BLI.RepomanQA %} |
329 |
- <p class="lead">Repoman QA Summery: </p> |
330 |
- {{ BLI.RepomanQA|linebreaks }} |
331 |
+ {% if BLI.Repoman %} |
332 |
+ <p class="lead">Repoman Summery: </p> |
333 |
+ {{ BLI.Repoman|linebreaks }} |
334 |
+ {% endif %} |
335 |
+ </div> |
336 |
+ </div> |
337 |
+ <div class="row-fluid"> |
338 |
+ <div class=span12> |
339 |
+ {% if BLI.QA %} |
340 |
+ <p class="lead">QA Summery: </p> |
341 |
+ {{ BLI.QA|linebreaks }} |
342 |
{% endif %} |
343 |
</div> |
344 |
</div> |
345 |
|
346 |
diff --git a/python/templates/pages/new/repomanqa/index.html b/python/templates/pages/new/repoman/index.html |
347 |
similarity index 50% |
348 |
rename from python/templates/pages/new/repomanqa/index.html |
349 |
rename to python/templates/pages/new/repoman/index.html |
350 |
index 637c917..7df33e9 100644 |
351 |
--- a/python/templates/pages/new/repomanqa/index.html |
352 |
+++ b/python/templates/pages/new/repoman/index.html |
353 |
@@ -1,25 +1,8 @@ |
354 |
{% extends "layout/base.html" %} |
355 |
{% block content %} |
356 |
<div class="row"> |
357 |
- <h2>New Repoman and QA's</h2> |
358 |
+ <h2>New Repoman's</h2> |
359 |
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> |
360 |
- {% for QA in QA_tmp %} |
361 |
- <div class="panel panel-default"> |
362 |
- <div class="panel-heading" role="tab" id="heading{{ QA.Id }}"> |
363 |
- <h4 class="panel-title"> |
364 |
- <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{{ QA.Id }}" aria-expanded="false" aria-controls="collapse{{ Qa.Id }}"> |
365 |
- {{ QA.BuildLogId.EbuildId.PackageId.CategoryId.Category }}/{{ QA.BuildLogId.EbuildId.PackageId.Package }}-{{ QA.BuildLogId.EbuildId.Version }}::{{ QA.BuildLogId.EbuildId.PackageId.RepoId.Repo }} |
366 |
- {{ QA.SummeryText|truncatewords:6 }} |
367 |
- </a> |
368 |
- </h4> |
369 |
- </div> |
370 |
- <div id="collapse{{ QA.Id }}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading{{ QA.Id }}"> |
371 |
- <div class="panel-body"> |
372 |
- {{ QA.SummeryText|linebreaksbr }} |
373 |
- </div> |
374 |
- </div> |
375 |
- </div> |
376 |
- {% endfor %} |
377 |
{% for PR in PR_tmp %} |
378 |
<div class="panel panel-default"> |
379 |
<div class="panel-heading" role="tab" id="heading{{ PR.Id }}"> |
380 |
@@ -39,5 +22,4 @@ |
381 |
{% endfor %} |
382 |
</div> |
383 |
</div> |
384 |
- |
385 |
-{% endblock %} |
386 |
\ No newline at end of file |
387 |
+{% endblock %} |
388 |
|
389 |
diff --git a/python/templates/pages/packages/category/index.html b/python/templates/pages/packages/category/index.html |
390 |
index 7bad0b4..d86b3cb 100644 |
391 |
--- a/python/templates/pages/packages/category/index.html |
392 |
+++ b/python/templates/pages/packages/category/index.html |
393 |
@@ -16,6 +16,17 @@ |
394 |
{% if PM.Repoman %} |
395 |
<a class="btn btn-warning btn-xs" href="/repoman/{{PM.PackageId }}/">Repoman</a> |
396 |
{% endif %} |
397 |
+ {% if PM.Qa %} |
398 |
+ <a class="btn btn-warning btn-xs" >Qa</a> |
399 |
+ {% endif %} |
400 |
+ {% if PM.Bl %} |
401 |
+ {% if PM.Blf %} |
402 |
+ <a class="btn btn-danger btn-xs"> |
403 |
+ {% else %} |
404 |
+ <a class="btn btn-success btn-xs"> |
405 |
+ {% endif %} |
406 |
+ Build</a> |
407 |
+ {% endif %} |
408 |
</p> |
409 |
</td> |
410 |
</tr> |
411 |
|
412 |
diff --git a/python/templates/pages/packages/ebuilds/ebuild/index.html b/python/templates/pages/packages/ebuilds/ebuild/index.html |
413 |
index e000a53..4752be1 100644 |
414 |
--- a/python/templates/pages/packages/ebuilds/ebuild/index.html |
415 |
+++ b/python/templates/pages/packages/ebuilds/ebuild/index.html |
416 |
@@ -9,13 +9,6 @@ |
417 |
<td class="frontpage-table-package-atom"> |
418 |
<p" title="{{ E.PackageId.CategoryId.Category }}/{{ E.PackageId.Package }}-{{ E.EbuildId.Version }}::{{ E.PackageId.RepoId.Repo }}">{{ E.PackageId.Package }}-{{ E.Version }}::{{ E.PackageId.RepoId.Repo }}</p> |
419 |
<a class="btn btn-default btn-xs" href="/buildpackage/{{ E.EbuildId.EbuildId }}/">Build</a> |
420 |
- {% for BL in BL_tmp %} |
421 |
- {% if BL.Fail %} |
422 |
- <a class="btn btn-danger btn-xs" href="/buildlog/{{ BL.BuildLogId }}/">Fail</a> |
423 |
- {% else %} |
424 |
- <a class="btn btn-success btn-xs" href="/buildlog/{{ BL.BuildLogId }}/">Success</a> |
425 |
- {% endif %} |
426 |
- {% endfor %} |
427 |
</td> |
428 |
<td> |
429 |
{% for K in EK_tmp %} |
430 |
@@ -43,5 +36,31 @@ |
431 |
{% endfor %} |
432 |
</table> |
433 |
</div> |
434 |
+ <div class="col-xs-12 col-md-9"> |
435 |
+ <table class="table table-striped frontpage-table"> |
436 |
+ {% for BL in BL_tmp %} |
437 |
+ <tr> |
438 |
+ <td class="frontpage-table-package-atom"> |
439 |
+ {% if BL.Fail %} |
440 |
+ <span class="label label-danger">Build</span> |
441 |
+ {% else %} |
442 |
+ <span class="label label-success">Build</span> |
443 |
+ {% endif %} |
444 |
+ {% for BLR in BLR_tmp %} |
445 |
+ {% if BLR.BuildLogId.BuildLogId == BL.BuildLogId%} |
446 |
+ <span class="label label-danger">Repoman</span> |
447 |
+ {% endif %} |
448 |
+ {% endfor %} |
449 |
+ {% for BLQ in BLQ_tmp %} |
450 |
+ {% if BLQ.BuildLogId.BuildLogId == BL.BuildLogId%} |
451 |
+ <span class="label label-danger">Qa</span> |
452 |
+ {% endif %} |
453 |
+ {% endfor %} |
454 |
+ <a class="btn btn-default btn-xs" href="/new/logs/build/{{ BL.BuildLogId }}/">More info</a> |
455 |
+ </td> |
456 |
+ </tr> |
457 |
+ {% endfor %} |
458 |
+ </table> |
459 |
+ </div> |
460 |
</div> |
461 |
{% endblock %} |
462 |
\ No newline at end of file |
463 |
|
464 |
diff --git a/python/templates/pages/packages/ebuilds/index.html b/python/templates/pages/packages/ebuilds/index.html |
465 |
index b941c62..a9cef7d 100644 |
466 |
--- a/python/templates/pages/packages/ebuilds/index.html |
467 |
+++ b/python/templates/pages/packages/ebuilds/index.html |
468 |
@@ -11,13 +11,17 @@ |
469 |
<td class="frontpage-table-package-atom"> |
470 |
<a href="/ebuild/{{ E.EbuildId.EbuildId }}/" title="{{ P.PackageId.CategoryId.Category }}/{{ P.PackageId.Package }}-{{ E.EbuildId.Version }}::{{ E.EbuildId.PackageId.RepoId.Repo }}">{{ P.PackageId.Package }}-{{ E.EbuildId.Version }}::{{ E.EbuildId.PackageId.RepoId.Repo }}</a></td> |
471 |
<td> |
472 |
- {% for K in EK_tmp %} |
473 |
- {% if K.EbuildId.EbuildId == E.EbuildId.EbuildId and K.KeywordId.Keyword != '*' %} |
474 |
- {% if K.Status == 'Stable' %}<span class="label label-success">{{ K.KeywordId.Keyword }}</span>{% endif %} |
475 |
- {% if K.Status == 'Unstable' %}<span class="label label-warning">{{ K.KeywordId.Keyword }}</span>{% endif %} |
476 |
- {% if K.Status == 'Negative' %}{{ K.KeywordId.Keyword }}{% endif %} |
477 |
- {% endif %} |
478 |
- {% endfor %} |
479 |
+ {% for FI in fi_tmp %} |
480 |
+ {% if FI.EbuildId == E.EbuildId.EbuildId %} |
481 |
+ {% if FI.qa %}<span class="label label-warning">Qa</span>{% endif %} |
482 |
+ {% if FI.repoman %}<span class="label label-warning">Repoman</span>{% endif %} |
483 |
+ {% if FI.fail %} |
484 |
+ <span class="label label-danger">Build</span> |
485 |
+ {% else %} |
486 |
+ <span class="label label-success">Build</span> |
487 |
+ {% endif %} |
488 |
+ {% endif %} |
489 |
+ {% endfor %} |
490 |
</td> |
491 |
</tr> |
492 |
{% endfor %} |
493 |
@@ -26,5 +30,16 @@ |
494 |
{% if PR %} |
495 |
<a class="btn btn-warning btn-xs" href="/repoman/{{P.PackageId.PackageId }}/">Repoman</a> |
496 |
{% endif %} |
497 |
+ {% if QA %} |
498 |
+ <a class="btn btn-warning btn-xs" href="/qa/{{P.PackageId.PackageId }}/">Qa</a> |
499 |
+ {% endif %} |
500 |
+ {% if Bl %} |
501 |
+ {% if Blf %} |
502 |
+ <a class="btn btn-danger btn-xs"> |
503 |
+ {% else %} |
504 |
+ <a class="btn btn-success btn-xs"> |
505 |
+ {% endif %} |
506 |
+ Build</a> |
507 |
+ {% endif %} |
508 |
</div> |
509 |
{% endblock %} |
510 |
\ No newline at end of file |