addition to the existing 'pyang' checker. Added modal overlay displays showing the yang check results every place the yin/yang symbol is shown (red or green) to indicate the presencee and result of yang checks. Added a Yang Validation: line in the document meta-information section on the document's page in the datatracker. Added the result of the xym extaction to the yang check results, to make extration failures visible. Added the version of the used xym, pyang, and yanglint commands to the check results. Added an action to move successfully extracted and validated modules to the module library directories immediately on submission. Added the xym and pyang repositories as svn:external components, rather than listing them in requirements.txt, as there has been delays of many months between essential features in the repositories, and an actual release. We may get occasional buildbot failures if broken code is pulled in from the repository, but better that than the functionality failure of severely outdated componets. Added a new management command to re-run yang validation for active drafts for which yang modules were found at submission time, in order to pick up imported models which may have arrived in the model libraries after the draft's submission. Run daily from bin/daily. Added a table to hold version information for external commands. The yang checker output should include the version information of the used checkers, but seems unnecessary to run each command with its --version switch every time we check a module... Added a new management command to collect version information for external commands on demand. To be run daily from bin/daily. Added tests to verify that xym, pyang and yanglint information is available on the submission confirmation page, and updated the yang module contained in the test document to validate under both pyang and yanglint. Updated admin.py and resource.py files as needed. - Legacy-Id: 13630
110 lines
4.5 KiB
HTML
110 lines
4.5 KiB
HTML
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
|
|
{% load widget_tweaks %}
|
|
{% load ietf_filters %}
|
|
{% load ballot_icon %}
|
|
|
|
<tr {% spaceless %}
|
|
{% if color_row_positions %}
|
|
{% with doc|ballotposition:user as pos %}
|
|
{% if pos %}class="position-{{pos.slug}}-row"{% endif %}
|
|
{% endwith %}
|
|
{% endif %}
|
|
{% endspaceless %}>
|
|
|
|
<td>
|
|
{% if user.is_authenticated %}
|
|
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}" class="track-untrack-doc {% if not doc.tracked_in_personal_community_list %}hide{% endif %}" title="Remove from your personal ID list">
|
|
<span class="fa fa-bookmark"></span>
|
|
</a>
|
|
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}" class="track-untrack-doc {% if doc.tracked_in_personal_community_list %}hide{% endif %}" title="Add to your personal ID list">
|
|
<span class="fa fa-bookmark-o"></span>
|
|
</a>
|
|
{% endif %}
|
|
</td>
|
|
|
|
<td class="doc">
|
|
<div>
|
|
<a href="{{ doc.get_absolute_url }}">{% if doc.get_state_slug == "rfc" %}RFC {{ doc.rfc_number }}{% else %}{{ doc.name }}-{{ doc.rev }}{% endif %}</a>
|
|
|
|
{% if doc.get_state_slug == "rfc" and "draft" in doc.name %}
|
|
<i>(was {{ doc.name }})</i>
|
|
{% endif %}
|
|
<br>
|
|
<b>{{ doc.title }}</b>
|
|
{% if doc.has_errata %}
|
|
<a class="label label-danger pull-right" href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}">Errata</a>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if user|has_role:"Secretariat" and doc.reschedule_form %}
|
|
<div class="form-group">
|
|
<label for="{{ doc.reschedule_form.telechat_date.auto_id}}">Reschedule:</label>
|
|
{{ doc.reschedule_form.telechat_date|add_class:"form-control input-sm" }}
|
|
</div>
|
|
{% if doc.reschedule_form.show_clear %}
|
|
<div class="checkbox">
|
|
<label>{{ doc.reschedule_form.clear_returning_item }} <b>Clear "returning item"</b></label>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
</td>
|
|
|
|
<td>
|
|
<span class="text-nowrap">
|
|
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}<a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}">{% endif %}
|
|
{% if doc.get_state_slug == "rfc" %}{{ doc.latest_revision_date|date:"Y-m" }}{% else %}{{ doc.latest_revision_date|date:"Y-m-d" }}{% endif %}
|
|
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}</a>{% endif %}
|
|
</span>
|
|
|
|
{% for check in doc.submission.latest_checks %}
|
|
{% if check.passed != None and check.symbol.strip %}
|
|
{% if check.errors or check.warnings %}
|
|
<span class="checker-warning pull-right" data-toggle="modal" data-target="#check-{{check.pk}}" title="{{check.checker|title}} returned warnings or errors." >{{ check.symbol|safe }}</span>
|
|
{% else %}
|
|
<span class="checker-success pull-right" data-toggle="modal" data-target="#check-{{check.pk}}" title="{{check.checker|title}} passed">{{ check.symbol|safe }}</span>
|
|
{% endif %}
|
|
{% include "doc/yang-check-modal-overlay.html" %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if doc.pages %}
|
|
<br><small class="text-muted">{{doc.pages}} page{{ doc.pages|pluralize }}</small>
|
|
{% endif %}
|
|
|
|
{% if doc.latest_revision_date|timesince_days|new_enough:request %}
|
|
<wbr><span class="label label-success">New</span>
|
|
{% endif %}
|
|
|
|
{% if doc.get_state_slug == "active" and doc.expirable and doc.expires|timesince_days|expires_soon:request %}
|
|
<wbr><span class="label label-warning">Expires soon</span>
|
|
{% endif %}
|
|
|
|
</td>
|
|
|
|
{% include "doc/search/status_columns.html" %}
|
|
|
|
<td class="ipr text-center">
|
|
{% if doc.related_ipr %}
|
|
<a href="{% url "ietf.ipr.views.search" %}?submit=draft&id={{ doc.name }}">
|
|
<span class="label label-default">{{ doc.related_ipr|length }}</span>
|
|
</a>
|
|
{% endif %}
|
|
</td>
|
|
|
|
{% if ad_name == None or ad_name != doc.ad.plain_name %}
|
|
<td class="area-director">
|
|
{% if doc.ad %}
|
|
<a title="Area Director" href="mailto:{{ doc.ad.email_address|urlencode }}">{{ doc.ad }}</a><br>
|
|
{% endif %}
|
|
{% if doc.shepherd %}<a title="Shepherd" href="mailto:{{doc.shepherd}}"><small class="text-muted">{{doc.shepherd.person.name}}</small></a>{% endif %}
|
|
</td>
|
|
{% endif %}
|
|
|
|
{% if color_row_positions %}
|
|
{% with doc|ballotposition:user as pos %}
|
|
<td {% if pos %}class="changebar position-{{pos.slug}}"{% endif %}></td>
|
|
{% endwith %}
|
|
{% endif %}
|
|
|
|
</tr>
|