diff options
author | Alvin Li <liweitianux@gmail.com> | 2013-10-09 15:52:53 +0800 |
---|---|---|
committer | Alvin Li <liweitianux@gmail.com> | 2013-10-09 15:52:53 +0800 |
commit | 02afd8a32edb13ea7fc2266ac80092ea15c0930c (patch) | |
tree | c7a2a3f50378c017b425da47e04a71c6beaae56c /97suifangqa/apps/utils | |
parent | fafce2cfc72f4e1cd14ff6cb693c8ec7854159c5 (diff) | |
download | 97dev-02afd8a32edb13ea7fc2266ac80092ea15c0930c.tar.bz2 |
* treat 'apps/utils' as regular django app; which used to store
general tools for used in other apps
* moved 'templatetags' from 'apps/indicator' to 'apps/utils'
* '.gitignore' to ignore 'fixtures_bak'
* moved js plugins from 'apps/indicator/static/plugins' to
'staticfiles/plugins'
apps/recommend:
* updated 'recommend.models';
o commented 'recommend.models.ResearchCombination' (not used)
* implemented views 'add_edit_blog_info' and 'ajax_add_edit_configs';
* added pages 'templates/recommend/add_edit_blog_info.html',
'add_edit_blog_info_error.html';
o related css and javascripts files
* added 'tools.py';
* added 'utils/tools.py' for placing generic functions;
* deleted 'initial_data.json' (mv 'fixtures' to 'fixtures_bak');
* small fixes to 'indicator.models', 'sciblog.models' and
'sfaccount.views'
* fixed automatically show 'proper_nouns' annotation in blog:
recovered the line 'import signals' in 'sciblog.models'
* added 'is_ok()' method for 'recommend.models.ResearchConfig';
Diffstat (limited to '97suifangqa/apps/utils')
-rw-r--r-- | 97suifangqa/apps/utils/templatetags/__init__.py | 0 | ||||
-rw-r--r-- | 97suifangqa/apps/utils/templatetags/dict_get.py | 14 | ||||
-rw-r--r-- | 97suifangqa/apps/utils/templatetags/divisible_by.py | 30 | ||||
-rw-r--r-- | 97suifangqa/apps/utils/tools.py | 30 |
4 files changed, 74 insertions, 0 deletions
diff --git a/97suifangqa/apps/utils/templatetags/__init__.py b/97suifangqa/apps/utils/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/utils/templatetags/__init__.py diff --git a/97suifangqa/apps/utils/templatetags/dict_get.py b/97suifangqa/apps/utils/templatetags/dict_get.py new file mode 100644 index 0000000..49de3cd --- /dev/null +++ b/97suifangqa/apps/utils/templatetags/dict_get.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- + +from django import template + +register = template.Library() + +@register.filter +def dict_get(dict, key): + """ + filter to get the value of key in the dict: + return dict[key] + """ + return dict.get(key) + diff --git a/97suifangqa/apps/utils/templatetags/divisible_by.py b/97suifangqa/apps/utils/templatetags/divisible_by.py new file mode 100644 index 0000000..96638e7 --- /dev/null +++ b/97suifangqa/apps/utils/templatetags/divisible_by.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- + +from django import template + +register = template.Library() + +@register.filter +def divisible_by(dividend, divisor): + """ + if 'dividend' can be *exactly* divided by 'divisor', + return True; + else, return False. + + input parameters: + dividend: <type 'int'> + divisor: <class 'django.utils.safestring.SafeUnicode'> + """ + if not isinstance(dividend, int): + raise ValueError(u'Error: dividend="%s" not int type' % dividend) + try: + divisor = int(divisor) + except ValueError, TypeError: + raise ValueError(u'Error: divisor="%s" cannot convert to int' + % divisor) + # + if dividend % divisor == 0: + return True + else: + return False + diff --git a/97suifangqa/apps/utils/tools.py b/97suifangqa/apps/utils/tools.py new file mode 100644 index 0000000..33cf012 --- /dev/null +++ b/97suifangqa/apps/utils/tools.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# +# generic tools for apps +# + + +def format_float(number): # {{{ + """ + format the display style of a float number + """ + threshold_min = 0.001 + threshold_max = 9999.9 + fix_fmt = '{:,.1f}' # comma as a thousands separator + exp_fmt = '{:.1e}' + # + if isinstance(number, int) or isinstance(number, float): + #return type(number) + pass + else: + return False + # + if (number > threshold_max) or (number < threshold_min): + str = exp_fmt.format(number) + else: + str = fix_fmt.format(number) + # + return str +# }}} + + |