diff --git a/server.py b/server.py index ec46e2e..ac93fd1 100755 --- a/server.py +++ b/server.py @@ -103,14 +103,14 @@ def getRankLevel(points): if points == 0: return 0 else: - return float("{:.2f}".format(math.log(points, cfg.getint('CONTRIB' ,'rankMultiplier')))) + return float("{:.2f}".format(math.log(points, cfg.getfloat('CONTRIB' ,'rankMultiplier')))) def getRemainingPoints(points): prev = 0 - for i in [cfg.getint('CONTRIB' ,'rankMultiplier')**x for x in range(1,17)]: + for i in [math.floor(cfg.getfloat('CONTRIB' ,'rankMultiplier')**x) for x in range(1,17)]: if prev <= points < i: return { 'remainingPts': i-points, 'stepPts': prev } prev = i - return 0 + return { 'remainingPts': 0, 'stepPts': cfg.getfloat('CONTRIB' ,'rankMultiplier')**16 } @app.route("/") def index(): @@ -145,7 +145,7 @@ def geo(): def contrib(): return render_template('contrib.html', currOrg="", - rankMultiplier=cfg.getint('CONTRIB' ,'rankMultiplier') + rankMultiplier=cfg.getfloat('CONTRIB' ,'rankMultiplier') ) @app.route("/_getLastContributor") @@ -272,7 +272,7 @@ def getOrgRank(): org = request.args.get('org') except: org = '' - points = random.randint(1,2**16) + points = random.randint(1,math.floor(cfg.getfloat('CONTRIB' ,'rankMultiplier')**16)) #FIXME put 0 if org has no points remainingPts = getRemainingPoints(points) data = {'org': org, 'points': points, 'rank': getRankLevel(points), 'remainingPts': remainingPts['remainingPts'], 'stepPts': remainingPts['stepPts']} diff --git a/static/js/contrib.js b/static/js/contrib.js index 0ae80fd..5ba8933 100644 --- a/static/js/contrib.js +++ b/static/js/contrib.js @@ -79,7 +79,11 @@ var typeaheadOption = { /* FUNCTIONS */ function getRankIcon(rank, size, header) { - rankLogoPath = url_baseRankLogo+rank+'.png'; + if (rank > 16) { + rankLogoPath = url_baseRankLogo+0+'.png'; + } else { + rankLogoPath = url_baseRankLogo+rank+'.png'; + } var img = document.createElement('img'); img.src = rankLogoPath; if(size == undefined) { @@ -141,18 +145,22 @@ function generateRankingSheet(rank, stepPnt, pnt, Rpnt) { var tbody = document.createElement('tbody'); for (var i=1; i<=maxRank; i++) { var tr = document.createElement('tr'); - var td = document.createElement('td'); - td.innerHTML = getRankIcon(i, 20); - td.style.padding = "2px"; - tr.appendChild(td); - var td = document.createElement('td'); - td.innerHTML = Math.pow(rankMultiplier, i); - td.style.padding = "2px"; + var td1 = document.createElement('td'); + td1.innerHTML = getRankIcon(i, 20); + td1.style.padding = "2px"; + var td2 = document.createElement('td'); + td2.innerHTML = Math.floor(Math.pow(rankMultiplier, i)); + td2.style.padding = "2px"; tr.style.textAlign = "center"; if (i == rank) { // current org rank - tr.classList.add('info') + tr.style.backgroundColor = "#337ab7"; + tr.style.color = "white"; + } else if (i == rank+1) { + tr.style.backgroundColor = "#f0ad4e"; + tr.style.color = "white"; } - tr.appendChild(td); + tr.appendChild(td1); + tr.appendChild(td2); tbody.appendChild(tr); } table.appendChild(thead);