MT#7247 add uuid panel

Change-Id: I5b0f76cabf249540badf33b202571f90f81e9253
changes/05/7505/2
Victor Seva 10 years ago
parent 30cfa2edb3
commit 80970c9270

@ -219,6 +219,7 @@ function create_new_job_div(project, uuid, job) {
function create_new_uuid_panel(project, uuid) {
var id = project + '-' + uuid;
var div_uuid = $('#' + project +' > .panel-body .uuid-clone').clone();
var uuid_url;
div_uuid.removeClass('hidden');
div_uuid.attr('id', id).removeClass('uuid-clone').addClass('uuid');
@ -228,7 +229,15 @@ function create_new_uuid_panel(project, uuid) {
var div_title = $('.panel-heading > .panel-title', div_uuid);
var div_uuid_name = $('.uuid-name', div_title).attr('id', id + '-name').removeClass('uuid-name');
div_uuid_name.attr('name', id).html(uuid);
if ($.panel == 'project_uuid') {
uuid_url = '#';
} else if ($.panel == 'release') {
uuid_url = project + '/' + uuid;
} else {
uuid_url = uuid;
}
div_uuid_name.attr('name', id).html(
'<a href="' + uuid_url + '">' + uuid + '</a>');
var div_uuid_date = $('.uuid-date', div_title).attr('id', id + '-date').removeClass('uuid-date');
div_uuid_date.html('date');
var div_uuid_badge = $('.uuid-badge', div_title).attr('id', id + '-badge').removeClass('uuid-badge');

@ -18,16 +18,16 @@
<script type="text/javascript">
$( document ).ready(function() {
var values;
$.panel = 'project';
$.release.max_uuids = 15;
$.release.interval = 30000;
$.release.timer = setInterval(function(){
get_uuids_for_project('{{ release }}', '{{ project }}');
}, $.release.interval);
create_new_project('{{ release }}', '{{ project }}');
create_new_project('{{ release }}', '{{ project }}', false);
{% for uuid in uuids %}
values = {tag: '{{ uuid.tag }}', latest: false }
create_new_uuid('{{ release }}', '{{ project }}', values);
{% endfor %}
values = {tag: '{{ uuid.tag }}', latest: false };
create_new_uuid('{{ release }}', '{{ project }}', values);{% endfor %}
});
</script>
{% endblock %}

@ -0,0 +1,37 @@
{% extends "panel/base.html" %}
{% load jsonify %}
{% block title %}{{ project }}{% endblock %}
{% block navlist %}
<!-- hello -->
<li><a href="{% url 'panel:release-view' release %}">{{ release }}</a></li>
<li><a href="{% url 'panel:project-view' release project %}">{{ project }}</a></li>
<li class="active"><a href="#">{{ uuid }}</a></li>
{% endblock %}
{% block content %}
<div class="container">
<div class="panel panel-default project-clone hidden">
{% include "panel/base_project.html" %}
</div>
<div id="project-list"></div>
</div>
{% endblock %}
{% block extrajs %}
<script type="text/javascript">
$( document ).ready(function() {
var values;
$.panel = 'project_uuid';
$.release.max_uuids = 1;
$.release.interval = 3000;
$.release.timer = setInterval(function(){
update_uuid_info('{{ release }}', '{{ project }}', '{{ uuid }}');
}, $.release.interval);
create_new_project('{{ release }}', '{{ project }}', false);
create_new_uuid('{{ release }}', '{{ project }}', {{ latest_uuid|jsonify }});
{% if latest_uuid.latest %}
$.release['{{ project }}'].last_uuid = '{{ uuid }}';
showLatestUUID('{{ project }}', '{{ uuid }}');
{% endif %}
});
</script>
{% endblock %}

@ -19,6 +19,7 @@
{% block extrajs %}
<script type="text/javascript">
$( document ).ready(function() {
$.panel = 'release';
$.release.max_uuids = 1;
$.release.interval = 30000;
$.release.timer = setInterval(function(){

@ -21,4 +21,6 @@ urlpatterns = [
url(r'^(?P<_release>[^/]+)/$', views.release, name='release-view'),
url(r'^(?P<_release>[^/]+)/(?P<_project>[^/]+)/$',
views.project, name='project-view'),
url(r'^(?P<_release>[^/]+)/(?P<_project>[^/]+)/(?P<_uuid>[^/]+)/$',
views.uuid, name='uuid-view'),
]

@ -30,6 +30,22 @@ def release(request, _release):
def project(request, _release, _project):
latest_uuid = jbi.objects.latest_uuid_js(_release, _project)
uuids = jbi.objects.release_project_uuids_set(_release, _project)
context = {'project': _project, 'release': _release, 'uuids': uuids}
context = {
'project': _project,
'release': _release,
'uuids': uuids,
'latest_uuid': latest_uuid}
return render(request, 'panel/project.html', context)
def uuid(request, _release, _project, _uuid):
latest_uuid = jbi.objects.is_latest_uuid_js(_release, _project, _uuid)
context = {
'project': _project,
'release': _release,
'uuid': _uuid,
'latest_uuid': latest_uuid,
}
return render(request, 'panel/project_uuid.html', context)

@ -80,15 +80,31 @@ class JenkinsBuildInfoManager(models.Manager):
return self.get_queryset().filter(tag=uuid, param_release=release,
projectname=project).order_by('date')
def latest_uuid(self, release, project):
def _latest_uuid(self, release, project):
qs = self.get_queryset()
res = qs.filter(
param_release=release,
projectname=project,
tag__isnull=False)
if res:
latest_uuid = res.latest('date')
return {'tag': latest_uuid.tag, 'date': latest_uuid.date}
if res is not None:
return res.latest('date')
def latest_uuid(self, release, project):
res = self._latest_uuid(release, project)
if res is not None:
return {'tag': res.tag, 'date': res.date}
def latest_uuid_js(self, release, project):
res = self._latest_uuid(release, project)
if res is not None:
return {'tag': res.tag, 'latest': True}
def is_latest_uuid_js(self, release, project, uuid):
res = self._latest_uuid(release, project)
latest_uuid = {'tag': uuid, 'latest': False}
if res is not None:
latest_uuid['latest'] = (res.tag == uuid)
return latest_uuid
class JenkinsBuildInfo(models.Model):

Loading…
Cancel
Save