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