aboutsummaryrefslogtreecommitdiffstats
path: root/97suifangqa/apps/utils
diff options
context:
space:
mode:
Diffstat (limited to '97suifangqa/apps/utils')
-rw-r--r--97suifangqa/apps/utils/templatetags/__init__.py0
-rw-r--r--97suifangqa/apps/utils/templatetags/dict_get.py14
-rw-r--r--97suifangqa/apps/utils/templatetags/divisible_by.py30
-rw-r--r--97suifangqa/apps/utils/tools.py30
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
+# }}}
+
+