Skip to content
......@@ -53,27 +53,6 @@ def query_db(query, *args, **kwargs):
return None
def get_status_icon(status):
table = {'reproducible': 'weather-clear.png',
'FTBFS': 'weather-storm.png',
'FTBR': 'weather-showers-scattered.png',
'E404': 'weather-severe-alert.png',
'depwait': 'weather-snow.png',
'NFU': 'weather-few-clouds-night.png',
'untested': 'weather-clear-night.png',
'blacklisted': 'error.png'}
spokenstatus = status
if status == 'unreproducible':
status = 'FTBR'
elif status in ('not for us', 'not_for_us'):
status = 'NFU'
try:
return (status, table[status], spokenstatus)
except KeyError:
log.exception('Status %s not recognized', status)
raise
def get_trailing_bug_icon(bug, bugs, package=None):
html = ''
if not package:
......
......@@ -149,7 +149,7 @@ set_icon() {
;;
E404) ICON=weather-severe-alert.png
;;
NFU|not_for_us|"not for us") ICON=weather-few-clouds-night.png
NFU) ICON=weather-few-clouds-night.png
STATE_TARGET_NAME="NFU"
;;
blacklisted) ICON=error.png
......
......@@ -20,13 +20,13 @@ import pystache
from string import Template
from collections import OrderedDict
from math import sqrt
from rblib.models import Package
from rblib.bugs import Bugs
from reproducible_html_packages import gen_packages_html
from reproducible_html_indexes import build_page
from sqlalchemy import select, and_, bindparam
from rblib import query_db, get_status_icon, db_table, get_trailing_bug_icon
from rblib import query_db, db_table, get_trailing_bug_icon
from rblib.models import Package, Status
from rblib.bugs import Bugs
from rblib.confparse import log
from rblib.html import tab, create_main_navigation, write_html_page
from rblib.const import (
......@@ -321,7 +321,8 @@ def gen_html_issue(issue, suite):
if not pkgs:
continue
affected += tab*4 + '<p>\n'
affected += tab*5 + '<img src="/static/' + get_status_icon(status)[1] + '"'
icon = Status.get(status).value.icon
affected += tab*5 + '<img src="/static/{}"'.format(icon)
affected += ' alt="' + status + ' icon" />\n'
affected += tab*5 + str(len(pkgs)) + ' ' + status + ' packages in ' + suite + '/' + arch +':\n'
affected += tab*5 + '<code>\n'
......
......@@ -16,9 +16,9 @@ import pystache
import apt_pkg
apt_pkg.init_system()
from rblib import query_db, get_status_icon
from rblib import query_db
from rblib.confparse import log, args
from rblib.models import Package
from rblib.models import Package, Status
from rblib.utils import strip_epoch, convert_into_hms_string
from rblib.html import gen_status_link_icon, write_html_page
from rblib.const import (
......@@ -236,7 +236,7 @@ def gen_suitearch_section(package, current_suite, current_arch):
final_status, final_version, status, version)
build_date = package.builds[s][a].build_date
status, icon, spokenstatus = get_status_icon(status)
status = Status.get(status)
if not (build_date and status != 'blacklisted'):
build_date = ''
......@@ -249,21 +249,22 @@ def gen_suitearch_section(package, current_suite, current_arch):
suitearch_details_html = ''
if (s == current_suite and a == current_arch):
suitearch_details_html, default_view = gen_suitearch_details(
package.name, version, s, a, status, spokenstatus, build_date)
package.name, version, s, a,
status.value.name, status.value.spokenstatus, build_date)
dbd_links = get_dbd_links(package.name, strip_epoch(version), s, a)
dbd_page_uri = dbd_links.get('dbd_page_uri', '')
suites.append({
'package': package.name,
'status': status,
'status': status.value.name,
'version': version,
'build_date': build_date,
'icon': icon,
'spokenstatus': spokenstatus,
'icon': status.value.icon,
'spokenstatus': status.value.spokenstatus,
'li_classes': ' '.join(li_classes),
'arch': a,
'suite': s,
'untested': status == 'untested',
'untested': status == Status.UNTESTED,
'current_suitearch': s == current_suite and a == current_arch,
'package_uri': package_uri,
'suitearch_details_html': suitearch_details_html,
......@@ -307,9 +308,10 @@ def gen_history_page(package, arch=None):
record['node1'] = shorten_if_debiannet(record['node1'])
record['node2'] = shorten_if_debiannet(record['node2'])
# add icon to result
status, icon, spokenstatus = get_status_icon(record['result'])
result_html = spokenstatus + ' <img src="/static/{icon}" alt="{spokenstatus}" title="{spokenstatus}"/>'
record['result'] = result_html.format(icon=icon, spokenstatus=spokenstatus)
status = Status.get(record['result'])
result_html = '{spokenstatus}<img src="/static/{icon}" alt="{spokenstatus}" title="{spokenstatus}"/>'
record['result'] = result_html.format(
icon=status.value.icon, spokenstatus=status.value.spokenstatus)
# human formatting of build duration
record['build duration'] = convert_into_hms_string(
int(record['build duration']))
......