Mercurial > kallithea
changeset 1890:a3efaaa6ed4f beta
fixes issue #271
- OrderedDict serialization sometimes failed due to how odict is implemented. Dropped usage of it for a simple tuple
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 13 Jan 2012 00:18:10 +0200 |
parents | 10e6c850d4cc |
children | 40b0d4851880 |
files | rhodecode/controllers/summary.py rhodecode/lib/compat.py rhodecode/templates/summary/summary.html |
diffstat | 3 files changed, 18 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/summary.py Fri Jan 13 00:15:31 2012 +0200 +++ b/rhodecode/controllers/summary.py Fri Jan 13 00:18:10 2012 +0200 @@ -154,11 +154,9 @@ "desc": LANGUAGES_EXTENSIONS_MAP.get(x)}) for x, y in lang_stats_d.items()) - c.trending_languages = json.dumps(OrderedDict( - sorted(lang_stats, reverse=True, - key=lambda k: k[1])[:10] - ) - ) + c.trending_languages = json.dumps( + sorted(lang_stats, reverse=True, key=lambda k: k[1])[:10] + ) last_rev = stats.stat_on_revision + 1 c.repo_last_rev = c.rhodecode_repo.count()\ if c.rhodecode_repo.revisions else 0
--- a/rhodecode/lib/compat.py Fri Jan 13 00:15:31 2012 +0200 +++ b/rhodecode/lib/compat.py Fri Jan 13 00:18:10 2012 +0200 @@ -87,6 +87,7 @@ _nil = _Nil() + class _odict(object): """Ordered dict data structure, with O(1) complexity for dict operations that modify one element. @@ -146,7 +147,7 @@ dict_impl = self._dict_impl() try: dict_impl.__getitem__(self, key)[1] = val - except KeyError, e: + except KeyError: new = [dict_impl.__getattribute__(self, 'lt'), val, _nil] dict_impl.__setitem__(self, key, new) if dict_impl.__getattribute__(self, 'lt') == _nil: @@ -158,7 +159,7 @@ def __delitem__(self, key): dict_impl = self._dict_impl() - pred, _ , succ = self._dict_impl().__getitem__(self, key) + pred, _, succ = self._dict_impl().__getitem__(self, key) if pred == _nil: dict_impl.__setattr__(self, 'lh', succ) else: @@ -351,6 +352,7 @@ dict_impl.__getattribute__(self, 'lt'), dict_impl.__repr__(self)) + class OrderedDict(_odict, dict): def _dict_impl(self):
--- a/rhodecode/templates/summary/summary.html Fri Jan 13 00:15:31 2012 +0200 +++ b/rhodecode/templates/summary/summary.html Fri Jan 13 00:18:10 2012 +0200 @@ -295,33 +295,35 @@ var data = ${c.trending_languages|n}; var total = 0; var no_data = true; -for (k in data){ - total += data[k].count; - no_data = false; -} var tbl = document.createElement('table'); tbl.setAttribute('class','trending_language_tbl'); var cnt = 0; -for (k in data){ + +for (var i=0;i<data.length;i++){ + total += data[i][1].count; cnt += 1; + no_data = false; + var hide = cnt>2; var tr = document.createElement('tr'); if (hide){ tr.setAttribute('style','display:none'); tr.setAttribute('class','stats_hidden'); } - var percentage = Math.round((data[k].count/total*100),2); - var value = data[k].count; + var k = data[i][0]; + var obj = data[i][1]; + var percentage = Math.round((obj.count/total*100),2); + var td1 = document.createElement('td'); td1.width = 150; var trending_language_label = document.createElement('div'); - trending_language_label.innerHTML = data[k].desc+" ("+k+")"; + trending_language_label.innerHTML = obj.desc+" ("+k+")"; td1.appendChild(trending_language_label); var td2 = document.createElement('td'); td2.setAttribute('style','padding-right:14px !important'); var trending_language = document.createElement('div'); - var nr_files = value+" ${_('files')}"; + var nr_files = obj.count+" ${_('files')}"; trending_language.title = k+" "+nr_files;