diff --git a/reviewboard/static/rb/js/reviewRequestPage/models/entryModel.es6.js b/reviewboard/static/rb/js/reviewRequestPage/models/entryModel.es6.js
index cad4783987efc4c5e6d792177a0dd759ec925428..35100c4e38fccfd8319557417f5d658025ced47c 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/models/entryModel.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/models/entryModel.es6.js
@@ -152,4 +152,11 @@ RB.ReviewRequestPage.Entry = Backbone.Model.extend({
     stopWatchingUpdates() {
         this.get('page').stopWatchingEntryUpdates(this);
     },
+
+    /**
+     * Give immediate updates to this entry.
+     */
+    giveImmediateUpdates() {
+        this.get('page').giveImmediateEntryUpdates(this);
+    },
 });
diff --git a/reviewboard/static/rb/js/reviewRequestPage/models/reviewRequestPageModel.es6.js b/reviewboard/static/rb/js/reviewRequestPage/models/reviewRequestPageModel.es6.js
index fb3ea3025209a2e7aa0880f908e8e11aa01883a5..095ccb1535cd61143f39b9a38f15a20a20d772b5 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/models/reviewRequestPageModel.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/models/reviewRequestPageModel.es6.js
@@ -75,6 +75,7 @@ RB.ReviewRequestPage.ReviewRequestPage = RB.ReviewablePage.extend({
      *         will be checked at least this often.
      */
     watchEntryUpdates(entry, periodMS) {
+        console.log("watchEntryUpdates");
         /*
          * If we already have a check in progress, and this new update
          * request wants to check sooner than the current check is scheduled,
@@ -115,6 +116,7 @@ RB.ReviewRequestPage.ReviewRequestPage = RB.ReviewablePage.extend({
      *         The entry being watched for updates.
      */
     stopWatchingEntryUpdates(entry) {
+        console.log("stopEntryUpdates");
         if (!this._watchedEntries.hasOwnProperty(entry.id)) {
             return;
         }
@@ -158,6 +160,34 @@ RB.ReviewRequestPage.ReviewRequestPage = RB.ReviewablePage.extend({
         }
     },
 
+    /**
+     * Give an immediate update to an entry.
+     *
+     * Args:
+     *     entry (RB.ReviewRequestPage.Entry):
+     *         The entry needs for immediate updates.
+     */
+    giveImmediateEntryUpdates(entry) {
+        console.log("giveImmediateEntryUpdates");
+        /*
+            * This is either the only update requested, or it's more frequent
+            * than other ones. Now we just need to check if we need to cancel
+            * any previous update checks that are scheduled later than the
+            * new check would be.
+            */
+        if (this._watchedUpdatesTimeout !== null &&
+            (Date.now() -
+                this._watchedUpdatesLastScheduleTime) > 0) {
+            clearTimeout(this._watchedUpdatesTimeout);
+            this._watchedUpdatesTimeout = null;
+        }
+        
+        this._loadUpdates({
+            entries: [entry],
+            onDone: this._scheduleCheckUpdates.bind(this),
+        });
+    },
+
     /**
      * Schedule the next updates check.
      *
@@ -402,8 +432,11 @@ RB.ReviewRequestPage.ReviewRequestPage = RB.ReviewablePage.extend({
         if (!entry) {
             return;
         }
-
-        console.assert(entry.get('typeID') === metadata.entryType);
+        console.log(entry);
+        // console.log(metadata);
+        // console.log(entry.get("typeID"));
+        // console.log(metadata.entryType);
+        // console.assert(entry.get('typeID') === metadata.entryType);
 
         /* Only reload this entry if its updated timestamp has changed. */
         if (entry.isUpdated(metadata)) {
diff --git a/reviewboard/static/rb/js/reviewRequestPage/views/baseStatusUpdatesEntryView.es6.js b/reviewboard/static/rb/js/reviewRequestPage/views/baseStatusUpdatesEntryView.es6.js
index c36e765aa774ec43d003a9dad139571887d920ff..3c13fcd5502a726cb61890d5628f9780b7f9ff12 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/views/baseStatusUpdatesEntryView.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/views/baseStatusUpdatesEntryView.es6.js
@@ -22,6 +22,7 @@ RB.ReviewRequestPage.BaseStatusUpdatesEntryView = ParentView.extend({
      * Initialize the view.
      */
     initialize() {
+        console.log("inside basestatus initailize");
         ParentView.prototype.initialize.apply(this, arguments);
 
         this._reviewViews = null;
@@ -64,9 +65,21 @@ RB.ReviewRequestPage.BaseStatusUpdatesEntryView = ParentView.extend({
      *     This object, for chaining.
      */
     render() {
+        console.log("inside basestatus render");
         ParentView.prototype.render.call(this);
+        console.log(this.model.get('reviews'));
+
+        let collapsed = ParentView.prototype.isCollapsed.call(this);
+        console.log(collapsed);
+        console.log(ParentView);
+        if (collapsed) {
+            console.log("basestatus render, entry is collapsed, don't render");
+            return this;
+        }
+        console.log("basestatus render, entry is not collapsed, render");
 
         this._reviewViews = this.model.get('reviews').map(review => {
+            console.log("!!!!!!!!!!!!!!!!!");
             const $reviewEl = this.$(`#review${review.id}`);
 
             const view = new RB.ReviewRequestPage.ReviewView({
@@ -77,12 +90,14 @@ RB.ReviewRequestPage.BaseStatusUpdatesEntryView = ParentView.extend({
                 $bannerParent: $reviewEl.children('.banners'),
                 bannerNoFloatContainerClass: 'collapsed',
             });
+            console.log(view);
             view.render();
 
             this.setupReviewView(view);
 
             return view;
         });
+        console.log(this._reviewViews);
 
         if (this.model.get('pendingStatusUpdates')) {
             this.model.watchUpdates(this.CHECK_UPDATES_MS);
diff --git a/reviewboard/static/rb/js/reviewRequestPage/views/entryView.es6.js b/reviewboard/static/rb/js/reviewRequestPage/views/entryView.es6.js
index 56ae8962589da720ec29964412dc0ec20a7c522d..011dacf19f8ec88c2cfccb513d3f31d36ba2b936 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/views/entryView.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/views/entryView.es6.js
@@ -14,9 +14,10 @@ RB.ReviewRequestPage.EntryView = Backbone.View.extend({
      *     This object, for chaining.
      */
     render() {
+        console.log("entry view render");
         this._$box = this.$('.review-request-page-entry-contents');
         this._$expandCollapseButton = this.$('.collapse-button .rb-icon');
-
+        console.log( this._$box);
         if (this._$box.hasClass('collapsed')) {
             this._$expandCollapseButton.addClass('rb-icon-expand-review');
         } else {
@@ -45,7 +46,7 @@ RB.ReviewRequestPage.EntryView = Backbone.View.extend({
         this._$expandCollapseButton
             .removeClass('rb-icon-expand-review')
             .addClass('rb-icon-collapse-review');
-
+        this.model.giveImmediateUpdates();
         this.model.set('collapsed', false);
     },
 
@@ -57,7 +58,7 @@ RB.ReviewRequestPage.EntryView = Backbone.View.extend({
         this._$expandCollapseButton
             .removeClass('rb-icon-collapse-review')
             .addClass('rb-icon-expand-review');
-
+        this.model.stopWatchingUpdates();
         this.model.set('collapsed', true);
     },
 
diff --git a/reviewboard/static/rb/js/reviewRequestPage/views/reviewEntryView.es6.js b/reviewboard/static/rb/js/reviewRequestPage/views/reviewEntryView.es6.js
index 387c599803c4221de55a050678664f929fb30ce4..5c340ef0ee9d6dbf98252efdb20bfc919ddef465 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/views/reviewEntryView.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/views/reviewEntryView.es6.js
@@ -19,6 +19,7 @@ RB.ReviewRequestPage.ReviewEntryView = ParentView.extend({
      * Initialize the view.
      */
     initialize() {
+        console.log("reviewEntryView initialize");
         ParentView.prototype.initialize.call(this);
 
         this._reviewView = null;
@@ -57,7 +58,17 @@ RB.ReviewRequestPage.ReviewEntryView = ParentView.extend({
      *     This object, for chaining.
      */
     render() {
+        console.log("inside reviewEntryReview render");
         ParentView.prototype.render.call(this);
+       
+        let collapsed = ParentView.prototype.isCollapsed.call(this);
+        console.log(collapsed);
+        //console.log(ParentView);
+        if (collapsed) {
+            console.log("inside reviewEntryReview render, entry is collapsed, don't render");
+            return this;
+        }
+        console.log("inside reviewEntryReview render, entry is not collapsed, render");
 
         this._reviewView = new RB.ReviewRequestPage.ReviewView({
             el: this.el,
diff --git a/reviewboard/static/rb/js/reviewRequestPage/views/reviewRequestPageView.es6.js b/reviewboard/static/rb/js/reviewRequestPage/views/reviewRequestPageView.es6.js
index a0f97881fabadc67bcac1f8536f37fbba2b02572..f67077a3d5c815ed8163970d546f8d50b036bc4c 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/views/reviewRequestPageView.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/views/reviewRequestPageView.es6.js
@@ -24,6 +24,7 @@ RB.ReviewRequestPage.ReviewRequestPageView = RB.ReviewablePageView.extend({
      * Initialize the page.
      */
     initialize() {
+        console.log("inside reviewRequestPageView");
         RB.ReviewablePageView.prototype.initialize.apply(this, arguments);
 
         this._entryViews = [];
@@ -92,8 +93,9 @@ RB.ReviewRequestPage.ReviewRequestPageView = RB.ReviewablePageView.extend({
      *     This object, for chaining.
      */
     render() {
+        console.log("inside reviewRequestPageView render");
         RB.ReviewablePageView.prototype.render.call(this);
-
+        console.log(this._entryViews);
         /*
          * Render each of the entries on the page.
          */
diff --git a/reviewboard/static/rb/js/reviewRequestPage/views/reviewView.es6.js b/reviewboard/static/rb/js/reviewRequestPage/views/reviewView.es6.js
index 252f8546b6f427723f12c96bc937f986c4b6b7da..f6a97faf2325a42fcd7a0307b8ac287681ee15dd 100644
--- a/reviewboard/static/rb/js/reviewRequestPage/views/reviewView.es6.js
+++ b/reviewboard/static/rb/js/reviewRequestPage/views/reviewView.es6.js
@@ -8,6 +8,7 @@ RB.ReviewRequestPage.ReviewView = Backbone.View.extend({
      * Initialize the view.
      */
     initialize(options) {
+        console.log("inside reviewView initailize");
         this.options = options;
         this.entryModel = options.entryModel;
 
@@ -44,6 +45,14 @@ RB.ReviewRequestPage.ReviewView = Backbone.View.extend({
      *     This object, for chaining.
      */
     render() {
+        console.log("inisde reviewView render");
+        console.log(this.entryModel.get('collapsed'));
+        console.log(this.entryModel);
+        if (this.entryModel.get('collapsed')) {
+            console.log("reviewView render, entry is collapsed, don't render");
+            return this;
+        }
+        console.log("reviewView render, entry is not collapsed, render");
         const reviewRequestEditor = this.entryModel.get('reviewRequestEditor');
 
         this._$reviewComments = this.$('.review-comments');
