Added small orange or green yang symbols to draft info- and list-pages, signifying fail or pass for the submission yang validation.

- Legacy-Id: 10994
This commit is contained in:
Henrik Levkowetz 2016-03-28 18:47:53 +00:00
parent 2dc0745d9d
commit be2a2285bc
10 changed files with 38 additions and 7 deletions

View file

@ -521,6 +521,11 @@ class Document(DocumentInfo):
else:
return None
def submission(self):
s = self.submission_set.filter(rev=self.rev)
s = s.first()
return s
class RelatedDocHistory(models.Model):
source = models.ForeignKey('DocHistory')
target = models.ForeignKey('DocAlias', related_name="reversely_related_document_history_set")

View file

@ -124,7 +124,6 @@ def process_files(request,draft):
file_size=txt_size,
document_date=wrapper.get_creation_date(),
submission_date=datetime.date.today(),
idnits_message='idnits bypassed by manual posting',
group_id=draft.group.id,
remote_ip=request.META['REMOTE_ADDR'],
first_two_pages=''.join(wrapper.pages[:2]),

View file

@ -5,10 +5,10 @@ from django.contrib import admin
from ietf.submit.models import Preapproval, Submission, SubmissionCheck
class SubmissionAdmin(admin.ModelAdmin):
list_display = ['id', 'draft_link', 'status_link', 'submission_date',]
list_display = ['id', 'rev', 'draft_link', 'status_link', 'submission_date',]
ordering = [ '-id' ]
search_fields = ['name', ]
raw_id_fields = ['group']
raw_id_fields = ['group', 'draft']
def status_link(self, instance):
url = urlreverse('submit_submission_status_by_hash',

View file

@ -44,6 +44,11 @@ class DraftIdnitsChecker(object):
"""
name = "idnits check"
# start using this when we provide more in the way of warnings during
# submission checking:
# symbol = '<span class="fa fa-check-square"></span>'
symbol = ""
def check_file_txt(self, path):
"""
Run an idnits check, and return a passed/failed indication, a message,
@ -107,6 +112,7 @@ class DraftIdnitsChecker(object):
class DraftYangChecker(object):
name = "yang validation"
symbol = u'<span class="large">\u262f</span>'
def check_file_txt(self, path):
name = os.path.basename(path)

View file

@ -45,7 +45,7 @@ class Submission(models.Model):
submitter = models.CharField(max_length=255, blank=True, help_text="Name and email of submitter, e.g. \"John Doe &lt;john@example.org&gt;\".")
idnits_message = models.TextField(blank=True)
draft = models.ForeignKey(Document, null=True, blank=True)
def __unicode__(self):
return u"%s-%s" % (self.name, self.rev)
@ -76,6 +76,7 @@ class SubmissionCheck(models.Model):
errors = models.IntegerField(null=True, blank=True, default=None)
warnings = models.IntegerField(null=True, blank=True, default=None)
items = jsonfield.JSONField(null=True, blank=True, default='{}')
symbol = models.CharField(max_length=64, default='')
#
def __unicode__(self):
return "%s submission check: %s: %s" % (self.checker, 'Passed' if self.passed else 'Failed', self.message[:48]+'...')

View file

@ -25,9 +25,11 @@ api.submit.register(PreapprovalResource())
from ietf.group.resources import GroupResource
from ietf.name.resources import DraftSubmissionStateNameResource
from ietf.doc.resources import DocumentResource
class SubmissionResource(ModelResource):
state = ToOneField(DraftSubmissionStateNameResource, 'state')
group = ToOneField(GroupResource, 'group', null=True)
draft = ToOneField(DocumentResource, 'draft', null=True)
class Meta:
queryset = Submission.objects.all()
serializer = api.Serializer()
@ -53,6 +55,7 @@ class SubmissionResource(ModelResource):
"submitter": ALL,
"state": ALL_WITH_RELATIONS,
"group": ALL_WITH_RELATIONS,
"draft": ALL_WITH_RELATIONS,
}
api.submit.register(SubmissionResource())

View file

@ -212,6 +212,7 @@ def post_submission(request, submission):
if new_possibly_replaces:
send_review_possibly_replaces_request(request, draft, submitter_info)
submission.draft = draft
submission.save()
def update_replaces_from_submission(request, submission, draft):

View file

@ -121,7 +121,7 @@ def upload_submission(request):
def apply_check(submission, checker, method, fn):
func = getattr(checker, method)
passed, message, errors, warnings, items = func(fn)
check = SubmissionCheck(submission=submission, checker=checker.name, passed=passed, message=message, errors=errors, warnings=warnings, items=items)
check = SubmissionCheck(submission=submission, checker=checker.name, passed=passed, message=message, errors=errors, warnings=warnings, items=items, symbol=checker.symbol)
check.save()
for checker_path in settings.IDSUBMIT_CHECKER_CLASSES:

View file

@ -76,6 +76,13 @@
{% if latest_revision and latest_revision.time.date != doc.time.date %}
(latest revision {{ latest_revision.time|date:"Y-m-d" }})
{% endif %}
{% for check in doc.submission.checks.all %}
{% if check.errors or check.warnings %}
<span class="checker-warning" title="Submission {{check.checker|title}} returned warnings or errors.">{{ check.symbol|safe }}</span>
{% else %}
<span class="checker-success" title="Submission {{check.checker|title}} passed">{{ check.symbol|safe }}</span>
{% endif %}
{% endfor %}
</td>
</tr>

View file

@ -59,13 +59,22 @@
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}</a>{% endif %}
</span>
{% for check in doc.submission.checks.all %}
{% if check.symbol.strip %}
{% if check.errors or check.warnings %}
<span class="checker-warning pull-right" title="{{check.checker|title}} returned warnings or errors.">{{ check.symbol|safe }}</span>
{% else %}
<span class="checker-success pull-right" title="{{check.checker|title}} passed">{{ check.symbol|safe }}</span>
{% endif %}
{% 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 pull-right">New</span>
<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 %}