mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 12:49:01 +02:00

Version downgrades (or what appear to be downgrades) do occasionally happen, and if they did then the RRS was previously simply ignoring them, resulting in the latest version being reported incorrectly. Allow downgrades to be recorded as an upgrade with a new 'Downgrade' type option set, and display a label on such records in the UI. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
282 lines
11 KiB
HTML
282 lines
11 KiB
HTML
{% extends "base.html" %}
|
|
{% load i18n %}
|
|
{% load staticfiles %}
|
|
|
|
{% comment %}
|
|
|
|
rrs-web - recipe detail page template
|
|
|
|
Copyright (C) 2015 Intel Corporation
|
|
Licensed under the MIT license, see COPYING.MIT for details
|
|
|
|
{% endcomment %}
|
|
|
|
{% autoescape on %}
|
|
{% block title_append %} - {% if recipe %}{{ recipe.name }}{% else %}{{ recipesymbol.pn }}{% endif %}{% endblock %}
|
|
{% endautoescape %}
|
|
|
|
{% block topfunctions %}
|
|
{% endblock %}
|
|
|
|
{% block contenttag %}<div id="content" class="container-fluid top-padded">{% endblock %}
|
|
|
|
{% block content %}
|
|
<link rel="stylesheet" href="{% static "css/rrs-additional.css" %}" />
|
|
{% autoescape on %}
|
|
|
|
<ul class="breadcrumb">
|
|
<li><a href="{% url 'rrs_maintplan' maintplan_name %}">{{ maintplan_name }}</a></li>
|
|
<li><a href="{% url 'layer_item' recipesymbol.layerbranch.branch.name recipesymbol.layerbranch.layer.name %}">{{ recipesymbol.layerbranch.layer.name }}</a></li>
|
|
<li class="active">{% if recipe %}{{ recipe.name }}{% else %}{{ recipesymbol.pn }}{% endif %}</li>
|
|
</ul>
|
|
|
|
<div class="page-header">
|
|
<h1>
|
|
{% if recipe %}
|
|
{{ recipe.name }} {{ recipe.pv }}
|
|
{% else %}
|
|
{{ recipesymbol.pn }} <span class="label label-default">deleted</span>
|
|
{% endif %}
|
|
</h1>
|
|
</div>
|
|
|
|
<nav class="navbar navbar-default">
|
|
<div class="container-fluid">
|
|
<ul class="nav navbar-nav">
|
|
{% if upstream_status == "Up-to-date" %}
|
|
<li class="lead">Upstream status: <span class="text-success">{{ upstream_status }}</span></li>
|
|
{% elif upstream_status == "Not updated" %}
|
|
<li class="lead">Upstream status: <span class="text-danger">{{ upstream_status }}</span></li>
|
|
{% elif upstream_status == "Can't be updated" %}
|
|
<li class="lead">Upstream status: <span class="text-muted">{{ upstream_status }}</span></li>
|
|
{% else %}
|
|
<li class="lead">Upstream status: <span class="text-warning">{{ upstream_status }}</span></li>
|
|
{% endif %}
|
|
{% if upstream_status == "Not updated" or upstream_status == "Can't be updated" %}
|
|
<li class="divider-vertical"></li>
|
|
<li class="lead">Upstream version: <span>{{ upstream_version }}</span></li>
|
|
{% endif %}
|
|
<li class="divider-vertical"></li>
|
|
<li class="lead">Maintainer:
|
|
{% if maintplan.per_recipe_maintainers %}
|
|
<span><a href="{% url 'rrs_recipes' maintplan_name release_name milestone_name %}?maintainer_name={{ maintainer_name|urlencode }}">{{ maintainer_name }}</a></span>
|
|
{% else %}
|
|
<span>{% for maintainer in recipe.layerbranch.active_maintainers %}{{ maintainer.name }}{% if not forloop.last %}, {% endif %}{% endfor %}</span>
|
|
{% endif %}
|
|
</li>
|
|
<li class="divider-vertical"></li>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
{% if upstream_no_update_reason %}
|
|
<h2>Reason why this recipe can't be updated</h2>
|
|
<p class="lead">{{ upstream_no_update_reason }}</p>
|
|
{% endif %}
|
|
|
|
<h2>Updates</h2>
|
|
{% if recipe_upgrade_detail_count == 0 %}
|
|
<div class="alert alert-info">
|
|
There are no updates prior to <strong>{{ milestone_name }}</strong>
|
|
</div>
|
|
{% else %}
|
|
<table class="table table-striped table-bordered">
|
|
<tbody>
|
|
<tr>
|
|
<th>Title</th>
|
|
<th>Version</th>
|
|
<th>Milestone</th>
|
|
<th>Date</th>
|
|
<th>Committer</th>
|
|
<th>Commit</th>
|
|
</tr>
|
|
{% for rud in recipe_upgrade_details %}
|
|
<tr>
|
|
<td>{{ rud.title }}</td>
|
|
<td>{% if rud.upgrade_type != 'R' %}{{ rud.version }}{% if rud.upgrade_type == 'D' %} <span class="label label-warning">downgrade</span>{% endif %}{% endif %}</td>
|
|
{% if rud.milestone_name %}
|
|
<td>
|
|
<a href="{% url 'rrs_recipes' rud.maintplan_name rud.release_name rud.milestone_name %}">
|
|
{{ rud.release_name }}
|
|
{% if rud.milestone_name != "All" %}
|
|
{{ rud.milestone_name }}
|
|
{% endif %}
|
|
</a>
|
|
</td>
|
|
{% else %}
|
|
<td>
|
|
{{ rud.release_name }}
|
|
{% if rud.milestone_name != "All" %}
|
|
{{ rud.milestone_name }}
|
|
{% endif %}
|
|
</td>
|
|
{% endif %}
|
|
<td>{{ rud.date }}</td>
|
|
|
|
{% if rud.is_recipe_maintainer %}
|
|
<td><a href="{% url 'rrs_recipes' rud.maintplan_name rud.release_name rud.milestone_name %}?maintainer_name={{ rud.maintainer_name|urlencode }}">{{ rud.maintainer_name }}</a></td>
|
|
{% else %}
|
|
<td>{{ rud.maintainer_name }}</a></td>
|
|
{% endif %}
|
|
<td><a href="{{ rud.commit_url }}">{{ rud.commit }}</a></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
|
|
{% if recipe %}
|
|
<h2>Patches</h2>
|
|
{% if recipe.patch_set.exists %}
|
|
<table class="table table-striped table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th class="col-md-6">Patch</th>
|
|
<th>Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for patch in recipe.patch_set.all %}
|
|
<tr>
|
|
<td><a href="{{ patch.vcs_web_url }}">{{ patch.src_path }}</a></td>
|
|
<td>{{ patch.get_status_display }} {{ patch.status_extra | urlize }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% else %}
|
|
<p>None</p>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if otherbranch_recipes %}
|
|
<h2>Other branches</h2>
|
|
<p>This recipe in other branches of {{ recipe.layerbranch.layer.name }}:</p>
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th class="col-md-4">Branch</th>
|
|
<th>Recipe</th>
|
|
</tr>
|
|
</thead>
|
|
{% for other in otherbranch_recipes %}
|
|
<tr>
|
|
<td>
|
|
{{ other.layerbranch.branch }}
|
|
</td>
|
|
<td>
|
|
{% if other == recipe %}
|
|
{{ other.pn }} {{ other.pv }} (this recipe)
|
|
{% else %}
|
|
<a href="{% url 'recipe' other.id %}">{{ other.pn }} {{ other.pv }}</a>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<h2>About {{ recipe.pn }}</h2>
|
|
<div class="well well-transparent">
|
|
<dl>
|
|
<dt>Summary</dt>
|
|
<dd>{% if recipe %}{{ recipe.summary }}{% else %}{{ recipesymbol.summary }}{% endif %}</dd>
|
|
<dt>Section</dt>
|
|
<dd>{{ recipe.section }}</dd>
|
|
<dt>License</dt>
|
|
<dd>{{ recipe.license }}</dd>
|
|
<dt>Recipe file</dt>
|
|
<dd>
|
|
{% if recipe %}
|
|
{% if recipe.vcs_web_url %}
|
|
<a href="{{ recipe.vcs_web_url }}">{{ recipe.full_path }}</a>
|
|
{% else %}
|
|
{{ recipe.full_path }}
|
|
{% endif %}
|
|
{% else %}
|
|
{{ last_filepath }}
|
|
{% endif %}
|
|
</dd>
|
|
<dt>Layer</dd>
|
|
<dd><a href="{{ recipe_layer_branch_url }}">{{ recipesymbol.layerbranch.layer.name }} ({{ recipesymbol.layerbranch.branch.name}} branch)</a></dd>
|
|
|
|
{% if recipe.homepage %}
|
|
<dt>Homepage</dt>
|
|
<dd>{% if recipe.homepage %}<a href="{{ recipe.homepage }}">{{ recipe.homepage }}</a>{% endif %}</dd>
|
|
{% endif %}
|
|
|
|
{% if recipe.bugtracker %}
|
|
<dt>Bug tracker</dt>
|
|
<dd><a href="{{ recipe.bugtracker }}">{{ recipe.bugtracker }}</a></dd>
|
|
{% endif %}
|
|
|
|
{% if recipe.source_set.exists %}
|
|
<dt>Sources</dt>
|
|
<dd>
|
|
<ul class="list-unstyled">
|
|
{% for source in recipe.source_set.all %}
|
|
<li><a href="{{ source.url }}">{{ source.url }}</a></li>
|
|
{% endfor %}
|
|
</ul>
|
|
</dd>
|
|
{% endif %}
|
|
|
|
{% if recipe_provides %}
|
|
<dt>Provides</dt>
|
|
<dd>
|
|
<ul class="list-unstyled">
|
|
{% for p in recipe_provides %}
|
|
<li>{{ p }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</dd>
|
|
{% endif %}
|
|
|
|
{% if recipe_depends or recipe.packageconfig_set %}
|
|
<dt>Depends</dt>
|
|
<dd>
|
|
<ul class="list-unstyled">
|
|
{% for d in recipe_depends %}
|
|
<li>{{ d }}</li>
|
|
{% endfor %}
|
|
{% for pkc in recipe.packageconfig_set.all %}
|
|
{% for dep in pkc.get_deps_list %}
|
|
<li>{{ dep }} (optional)</li>
|
|
{% endfor %}
|
|
{% endfor %}
|
|
</ul>
|
|
</dd>
|
|
{% endif %}
|
|
|
|
{% if recipe_distros or recipe.comparison_recipes.exists %}
|
|
<dt>Distributions</dt>
|
|
<dd>
|
|
<ul class="list-unstyled">
|
|
{% for cr in recipe.comparison_recipes %}
|
|
<li><a href="{% url 'comparison_recipe' cr.id %}">{{ cr.layerbranch.branch }} - {{ cr.pn }}</a>
|
|
{% if cr.extra_urls %}
|
|
<ul>
|
|
{% for extra_url in cr.extra_urls %}
|
|
<li><a href="{{ extra_url.url }}">{{ extra_url.name }}</a></li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
{% for d in recipe_distros %}
|
|
<li>{{ d }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</dd>
|
|
{% endif %}
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endautoescape %}
|
|
{% endblock %}
|