Milimetric has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/84988


Change subject: ajax fixes
......................................................................

ajax fixes

Change-Id: Ia1929240d11eabcf4f14d07842ba1094544dbc4a
---
M tests/fixtures.py
M wikimetrics/controllers/authentication.py
M wikimetrics/static/js/home.js
3 files changed, 18 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/wikimetrics 
refs/changes/88/84988/1

diff --git a/tests/fixtures.py b/tests/fixtures.py
index 22a8767..171d73f 100644
--- a/tests/fixtures.py
+++ b/tests/fixtures.py
@@ -528,6 +528,8 @@
     Creates a test flask client from the normally configured app.
     Makes sure that a user is authenticated as far as Flask-Login is concerned,
     so that any private routes are still served for testing purposes.
+    NOTE: to simulate ajax requests, do this
+        self.app.get('/', headers=[('X-Requested-With', 'XMLHttpRequest')])
     """
     
     def setUp(self):
diff --git a/wikimetrics/controllers/authentication.py 
b/wikimetrics/controllers/authentication.py
index ae9e10c..fde3b7c 100644
--- a/wikimetrics/controllers/authentication.py
+++ b/wikimetrics/controllers/authentication.py
@@ -10,8 +10,9 @@
 )
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 from flask.ext.login import login_user, logout_user, current_user
-from ..configurables import app, db, login_manager, google
-from ..models import User, UserRole
+from wikimetrics.configurables import app, db, login_manager, google
+from wikimetrics.models import User, UserRole
+from wikimetrics.utils import json_error
 
 
 def is_public(to_decorate):
@@ -34,13 +35,15 @@
     if current_user.is_authenticated():
         return
     
+    if request.is_xhr:
+        return json_error('Please Login to access {0}'.format(request.path))
+    
     if (
             request.endpoint
         and not request.path.startswith('/static/')
         and not request.path == 'favicon.ico'
         and not getattr(app.view_functions[request.endpoint], 'is_public', 
False)
     ):
-        # TODO: make request.url relative or check X-Forwarded-Proto to match 
the protocol
         flash('Please Login before visiting {0}'.format(request.path), 'info')
         return redirect(url_for('login', next=request.path))
 
diff --git a/wikimetrics/static/js/home.js b/wikimetrics/static/js/home.js
index feb9428..100b718 100644
--- a/wikimetrics/static/js/home.js
+++ b/wikimetrics/static/js/home.js
@@ -5,9 +5,16 @@
         metrics: ko.observableArray([]),
         reports: ko.observableArray([]),
     };
-    site.populateCohorts(viewModel);
-    site.populateMetrics(viewModel);
-    site.populateReports(viewModel);
+    
+    $.get('/reports/')
+        .done(function(response){
+            // fail silently since this is the home page
+            if(!response.isError){
+                site.populateCohorts(viewModel);
+                site.populateMetrics(viewModel);
+                site.populateReports(viewModel);
+            }
+        })
     
     ko.applyBindings(viewModel);
 });

-- 
To view, visit https://gerrit.wikimedia.org/r/84988
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia1929240d11eabcf4f14d07842ba1094544dbc4a
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to