Skip to content

Commit

Permalink
Merge branch '235-popover-large-numbers'
Browse files Browse the repository at this point in the history
  • Loading branch information
Sean Hammond committed Jan 24, 2013
2 parents 45c6d0e + e5d42fd commit 67900cb
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 16 deletions.
30 changes: 29 additions & 1 deletion ckan/lib/formatters.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def rnd(number, divisor):
return localised_number(float(number * 10 / divisor) / 10)

if number < 1024:
return _('{bytes} bytes').format(bytes=number)
return _('{bytes} bytes').format(bytes=localised_number(number))
elif number < 1024 ** 2:
return _('{kibibytes} KiB').format(kibibytes=rnd(number, 1024))
elif number < 1024 ** 3:
Expand All @@ -120,3 +120,31 @@ def rnd(number, divisor):
return _('{gibibytes} GiB').format(gibibytes=rnd(number, 1024 ** 3))
else:
return _('{tebibytes} TiB').format(tebibytes=rnd(number, 1024 ** 4))


def localised_SI_number(number):
''' Returns a localised unicode representation of a number in SI format
eg 14700 becomes 14.7k '''

def rnd(number, divisor):
# round to 1 decimal place
return localised_number(float(number * 10 / divisor) / 10)

if number < 1000:
return _('{n}').format(n=localised_number(number))
elif number < 1000 ** 2:
return _('{k}k').format(k=rnd(number, 1000))
elif number < 1000 ** 3:
return _('{m}M').format(m=rnd(number, 1000 ** 2))
elif number < 1000 ** 4:
return _('{g}G').format(g=rnd(number, 1000 ** 3))
elif number < 1000 ** 5:
return _('{t}T').format(t=rnd(number, 1000 ** 4))
elif number < 1000 ** 6:
return _('{p}P').format(p=rnd(number, 1000 ** 5))
elif number < 1000 ** 7:
return _('{e}E').format(e=rnd(number, 1000 ** 6))
elif number < 1000 ** 8:
return _('{z}Z').format(z=rnd(number, 1000 ** 7))
else:
return _('{y}Y').format(y=rnd(number, 1000 ** 8))
11 changes: 11 additions & 0 deletions ckan/lib/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1408,6 +1408,16 @@ def resource_preview(resource, pkg_id):
)


def SI_number_span(number):
''' outputs a span with the number in SI unit eg 14700 -> 14.7k '''
number = int(number)
if number < 1000:
output = literal('<span>')
else:
output = literal('<span title="' + formatters.localised_number(number) + '">')
return output + formatters.localised_SI_number(number) + literal('<span>')


# these are the functions that will end up in `h` template helpers
__allowed_functions__ = [
# functions defined in ckan.lib.helpers
Expand Down Expand Up @@ -1485,6 +1495,7 @@ def resource_preview(resource, pkg_id):
'render_markdown',
'format_resource_items',
'resource_preview',
'SI_number_span',
# imported into ckan.lib.helpers
'literal',
'link_to',
Expand Down
11 changes: 10 additions & 1 deletion ckan/public/base/less/profile.less
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,17 @@
display: block;
font-size: 30px;
font-weight: 700;
line-height: 1.2;
line-height: 36px;
margin-left: 0;
.smallest {
font-size: 13px;
}
.smaller {
font-size: 16px;
}
.small {
font-size: 21px;
}
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions ckan/templates/ajax_snippets/popover_context_dataset.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
<div class="nums">
<dl>
<dt>{{ _('Resources') }}</dt>
<dd>{{ num_resources }}</dd>
<dd>{{ h.SI_number_span(num_resources) }}</dd>
</dl>
<dl>
<dt>{{ _('Tags') }}</dt>
<dd>{{ num_tags }}</dd>
<dd>{{ h.SI_number_span(num_tags) }}</dd>
</dl>
</div>
</div>
4 changes: 2 additions & 2 deletions ckan/templates/ajax_snippets/popover_context_group.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
<div class="nums">
<dl>
<dt>{{ _('Followers') }}</dt>
<dd>{{ num_followers }}</dd>
<dd>{{ h.SI_number_span(num_followers) }}</dd>
</dl>
<dl>
<dt>{{ _('Datasets') }}</dt>
<dd>{{ num_datasets }}</dd>
<dd>{{ h.SI_number_span(num_datasets) }}</dd>
</dl>
</div>
</div>
6 changes: 3 additions & 3 deletions ckan/templates/ajax_snippets/popover_context_user.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
<div class="nums">
<dl>
<dt>{{ _('Followers') }}</dt>
<dd>{{ num_followers }}</dd>
<dd>{{ h.SI_number_span(num_followers) }}</dd>
</dl>
<dl>
<dt>{{ _('Datasets') }}</dt>
<dd>{{ number_administered_packages }}</dd>
<dd>{{ h.SI_number_span(number_administered_packages) }}</dd>
</dl>
<dl>
<dt>{{ _('Edits') }}</dt>
<dd>{{ number_of_edits }}</dd>
<dd>{{ h.SI_number_span(number_of_edits) }}</dd>
</dl>
</div>
</div>
4 changes: 2 additions & 2 deletions ckan/templates/group/read_base.html
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ <h1 class="heading">{{ c.group_dict.display_name }}</h1>
<div class="nums">
<dl>
<dt>{{ _('Followers') }}</dt>
<dd>{{ c.group_dict.num_followers }}</dd>
<dd>{{ h.SI_number_span(c.group_dict.num_followers) }}</dd>
</dl>
<dl>
<dt>{{ _('Datasets') }}</dt>
<dd>{{ c.group_dict.packages|length }}</dd>
<dd>{{ h.SI_number_span(c.group_dict.packages|length) }}</dd>
</dl>
</div>
</section>
Expand Down
5 changes: 3 additions & 2 deletions ckan/templates/snippets/organization.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
{% snippet 'snippets/organization, organization=c.group_dict %}

#}

{% with truncate=truncate or 0, url=h.url_for(controller='organization', action='read', id=organization.name) %}
<div class="module profile-info">
<section class="module-content">
Expand All @@ -30,11 +31,11 @@ <h1 class="heading">{{ organization.title or organization.name }}</h1>
<div class="nums">
<dl>
<dt>{{ _('Members') }}</dt>
<dd>{{ organization.members|length }}</dd>
<dd>{{ h.SI_number_span(organization.members|length) }}</dd>
</dl>
<dl>
<dt>{{ _('Datasets') }}</dt>
<dd>{{ organization.packages|length }}</dd>
<dd>{{ h.SI_number_span(organization.packages|length) }}</dd>
</dl>
</div>
</section>
Expand Down
6 changes: 3 additions & 3 deletions ckan/templates/user/read_base.html
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ <h1 class="heading">{{ user.fullname or _('No full name provided') }}</h1>
<div class="nums">
<dl>
<dt>{{ _('Followers') }}</dt>
<dd>{{ user.num_followers }}</dd>
<dd>{{ h.SI_number_span(user.num_followers) }}</dd>
</dl>
<dl>
<dt>{{ _('Datasets') }}</dt>
<dd>{{ user.number_administered_packages }}</dd>
<dd>{{ h.SI_number_span(user.number_administered_packages) }}</dd>
</dl>
<dl>
<dt>{{ _('Edits') }}</dt>
<dd>{{ user.number_of_edits }}</dd>
<dd>{{ h.SI_number_span(user.number_of_edits) }}</dd>
</dl>
</div>
<div class="info">
Expand Down

0 comments on commit 67900cb

Please sign in to comment.