Milimetric has submitted this change and it was merged.

Change subject: enabling cache-busting on static files
......................................................................


enabling cache-busting on static files

Change-Id: I7d3461a310b475a28f90574b589f6df0169e52be
---
M wikimetrics/configurables.py
M wikimetrics/controllers/home.py
2 files changed, 39 insertions(+), 2 deletions(-)

Approvals:
  Milimetric: Verified; Looks good to me, approved



diff --git a/wikimetrics/configurables.py b/wikimetrics/configurables.py
index be56fbd..2cebd01 100644
--- a/wikimetrics/configurables.py
+++ b/wikimetrics/configurables.py
@@ -1,6 +1,7 @@
 import imp
 import os
 import yaml
+import subprocess
 
 
 # TODO: does not work in labs environment
@@ -37,6 +38,10 @@
     if args.override_config:
         web_config = create_object_from_text_config_file(args.override_config)
         app.config.from_object(web_config)
+    
+    version, latest = get_wikimetrics_version()
+    app.config['WIKIMETRICS_LATEST'] = latest
+    app.config['WIKIMETRICS_VERSION'] = version
     
     global login_manager
     login_manager = LoginManager()
@@ -86,3 +91,22 @@
     queue.config_from_object(celery_config)
     if args.override_config:
         queue.config_from_object(args.override_config)
+
+
+def get_wikimetrics_version():
+    """
+    Returns
+        a tuple of the form (pretty version string, latest commit sha)
+    """
+    cmd = ['git', 'log', '--date', 'relative', "--pretty=format:'%an %ar %h'", 
'-n', '1']
+    p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE)
+    version, err =  p.communicate()
+    if err is not None:
+        version = 'Unknown version'
+    cmd = ['git', 'log', '--date', 'relative', "--pretty=format:%h", '-n', '1']
+    p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE)
+    latest, err =  p.communicate()
+    if err is not None:
+        latest = 'unknown'
+    
+    return version, latest
diff --git a/wikimetrics/controllers/home.py b/wikimetrics/controllers/home.py
index 587316d..86b10dc 100644
--- a/wikimetrics/controllers/home.py
+++ b/wikimetrics/controllers/home.py
@@ -1,5 +1,5 @@
-from flask import render_template, send_from_directory
-from ..configurables import app
+from flask import render_template, send_from_directory, url_for
+from wikimetrics.configurables import app
 from authentication import is_public
 
 
@@ -34,3 +34,16 @@
 @is_public
 def favicon():
     return send_from_directory(app.static_folder, 'favicon.ico')
+
+
[email protected]_processor
+def override_url_for():
+    return dict(url_for=dated_url_for)
+
+def dated_url_for(endpoint, **values):
+    """
+    Cache-busting version of url_for, works only for static files
+    """
+    if endpoint and endpoint.strip() == 'static':
+        values['v'] = app.config['WIKIMETRICS_LATEST']
+    return url_for(endpoint, **values)

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

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

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

Reply via email to