diff --git a/build/models/br.py b/build/models/br.py index d72fca4..18cd0e0 100644 --- a/build/models/br.py +++ b/build/models/br.py @@ -113,6 +113,8 @@ class BuildRelease(models.Model): @property def done(self): + if self.built_projects is None: + return False built_len = len(self.built_projects) return built_len == self.release_jobs_len + 1 + len(self.projects) diff --git a/panel/static/panel/js/panel.js b/panel/static/panel/js/panel.js index a55b512..0d55e6e 100644 --- a/panel/static/panel/js/panel.js +++ b/panel/static/panel/js/panel.js @@ -65,7 +65,7 @@ function update_stats_progress() { var total = $.release.projects.size; if ( $.release.uuid ) { - total += $.release.stats.queued.size; + total = parseInt( $( "#stats-total" ).text(), 10 ); } for ( var label of labels ) { diff --git a/panel/static/panel/js/panel_release.js b/panel/static/panel/js/panel_release.js index c7dcca7..d3c5b5f 100644 --- a/panel/static/panel/js/panel_release.js +++ b/panel/static/panel/js/panel_release.js @@ -174,6 +174,18 @@ function is_project_done( project ) { } +function is_done() { + var success = parseInt( $( "#stats-success" ).text(), 10 ); + var failed = parseInt( $( "#stats-danger" ).text(), 10 ); + var queued = parseInt( $( "#stats-queued" ).text(), 10 ); + var building = parseInt( $( "#stats-created" ).text(), 10 ); + + if ( failed === 0 && queued === 0 && building === 0 && success > 0 ) { + return true; + } + return false; +} + function is_stuck() { var success = parseInt( $( "#stats-success" ).text(), 10 ); var failed = parseInt( $( "#stats-danger" ).text(), 10 ); @@ -199,7 +211,12 @@ function update_release_info( release ) { get_uuids_for_project( release, project ); } } - if ( is_stuck() ) { + if ( is_done() ) { + clearInterval( $.release.timer ); + clearInterval( $.release.update_info_timer ); + $( "#update-info-all" ).addClass( "hidden" ); + $( "#resume" ).prop( "disabled", true ); + } else if ( is_stuck() ) { $( "#resume" ).prop( "disabled", false ); } } diff --git a/panel/templates/panel/release_stats.html b/panel/templates/panel/release_stats.html index 7abe523..09a5126 100644 --- a/panel/templates/panel/release_stats.html +++ b/panel/templates/panel/release_stats.html @@ -1,6 +1,8 @@