<%inherit file="master.html"/> <%namespace name="json" module="json"/> <% from urllib.parse import urljoin from bodhi.server import models install_command = update.install_command %> <%block name="pagetitle"> ${update.alias} — ${update.type} update for ${update.get_title(amp=True,beautify=True) | h} — Fedora Updates System <% update.bugs.sort(key = lambda x: x.bug_id) %> <%block name="css"> ${parent.css()} <% actions = {} if can_edit and update.release.composed_by_bodhi: if not update.locked: if not update.pushed: if update.request is None: if update.status.value != 'testing': actions['push to testing'] = True else: actions['revoke'] = True elif update.pushed and (update.status.value != 'stable' or (update.status.value == 'stable' and 'releng' in [group.name for group in request.user.groups])): actions['unpush'] = True if update.meets_testing_requirements: actions['push to stable'] = True %>
% if update.type: ${self.util.type2icon(update.type) | n} % endif % if update.critpath:
% endif
${update.alias} created by ${update['user']['name']} ${self.util.age(update['date_submitted'], True)} ago for ${update['release']['long_name']}
% if can_edit and (not update.locked and update.status.value != 'stable'): Edit % elif update.locked and update.date_locked: Locked % endif % if actions: % else: ${self.fragments.status_text(update)} % endif
% if update.notes: ${self.util.markup(update.notes) | n} % endif % if not 'unspecified' in update.suggest:

% if 'logout' in update.suggest:

Logout Required
After installing this update it is required that you logout of your current user session and log back in to ensure the changes supplied by this update are applied properly. % elif 'reboot' in update.suggest:
Reboot Required
After installing this update it is required that you reboot your system to ensure the changes supplied by this update are applied properly. % endif

% endif % if install_command:

How to install

${install_command}
% endif
% for comment in update.comments:
${self.fragments.comment(comment, display_update=False)}
% endfor

% if request.user and update.status.value == "stable" and update.pushed == True:
Comments and Feedback are Closed

this update has been pushed to stable

% elif request.user:
<% help_content = "Comments support Fedora-Flavored Markdown" if request.registry.settings.get('privacy_link'): help_content = help_content + "

Comments are governed under this privacy policy." %>
${self.fragments.karma(-1)}
${self.fragments.karma(0)}
${self.fragments.karma(1)}
Karma: Is the update generally functional?
% if update.bugs:
${self.fragments.karma(-1)}
${self.fragments.karma(0)}
${self.fragments.karma(1)}
Bugs
% for bug in update.bugs:
${self.util.bug_link(bug) | n}
% endfor % endif % if update.full_test_cases:
${self.fragments.karma(-1)}
${self.fragments.karma(0)}
${self.fragments.karma(1)}
Test Cases
% for test in update.full_test_cases:
${self.util.testcase_link(test) | n}
% endfor % endif
% else:

% if request.matched_route: Please login to add feedback. % else: Please login to add feedback. % endif

%endif
Metadata
% if update.type:
Type
${self.util.type2icon(update.type) | n} ${update.type.value}
% endif % if update.severity and update.severity.value != 'unspecified':
Severity
${update.severity.value}
% endif
Karma
${self.fragments.karma(update.karma, show_digit=True)}
% if update.signed:
Signed
% endif % if update.content_type:
Content Type
${update.content_type.description | n}
% endif
% if request.registry.settings.get('test_gating.required'):
% if request.registry.settings.get('test_gating.url'): Test Gating % else: Test Gating % endif
% if can_edit and self.util.can_waive_test_results(update): % endif
% endif
Builds
${len(update.builds)} % if request.user and update.from_tag: ${update.from_tag} % endif
% for build in update.builds: <% koji_web_url = request.registry.settings.get('koji_web_url').strip('/') + '/' build_url = urljoin(koji_web_url, 'search?terms='+build.nvr+'&type=build&match=glob') %> % endfor
Settings
% if update.unstable_karma:
Unstable by Karma
${update.unstable_karma}
% endif % if update.autokarma is True and update.stable_karma:
Stable by Karma
${update.stable_karma}
% endif % if update.autotime is True and update.stable_days:
Stable by Time
${update.stable_days} days
% endif
Dates
submitted
${self.util.age(update.date_submitted)}
% if update.date_testing:
in testing
${self.util.age(update.date_testing)}
% endif % if update.date_stable:
in stable
${self.util.age(update.date_stable)}
% endif % if update.days_to_stable and update.status.value == 'testing':
days to stable
${str(update.days_to_stable)}
% endif % if update.date_modified:
modified
${self.util.age(update.date_modified)}
% endif % if update.date_approved:
approved
${self.util.age(update.date_approved)}
% endif
% if update.bugs:
% for bug in update.bugs:
${self.util.bug_link(bug) | n}
${self.fragments.karma(update.get_bug_karma(bug)[0], show_digit=True, zero_thumbsup=False)}
${self.fragments.karma(update.get_bug_karma(bug)[1], show_digit=True, zero_thumbsup=True)}
% endfor
% endif
% for build in update.builds: % endfor
<% koji_web_url = request.registry.settings.get('koji_web_url').strip('/') + '/' build_url = urljoin(koji_web_url, 'search?terms='+build.nvr+'&type=build&match=glob') %> ${build.nvr} % if build.signed: % endif % if can_edit: % if build.override: % else: % endif % endif

Automated Test Results

% if update.test_cases:

Test Cases

% for test in update.full_test_cases: % endfor
${self.fragments.karma(update.get_testcase_karma(test)[0], show_digit=True, zero_thumbsup=False)} ${self.fragments.karma(update.get_testcase_karma(test)[1], show_digit=True, zero_thumbsup=True)} ${self.util.testcase_link(test) | n}
% endif
% if self.util.can_waive_test_results(update): % endif <%block name="javascript"> ${parent.javascript()}