Merge pull request #185 from dod-ccpo/format-dollars
Add jinja filter to format dollars
This commit is contained in:
commit
d8bc81a493
@ -10,7 +10,7 @@ from flask_wtf.csrf import CSRFProtect
|
|||||||
|
|
||||||
from atst.database import db
|
from atst.database import db
|
||||||
from atst.assets import environment as assets_environment
|
from atst.assets import environment as assets_environment
|
||||||
|
from atst.filters import register_filters
|
||||||
from atst.routes import bp
|
from atst.routes import bp
|
||||||
from atst.routes.workspaces import bp as workspace_routes
|
from atst.routes.workspaces import bp as workspace_routes
|
||||||
from atst.routes.requests import requests_bp
|
from atst.routes.requests import requests_bp
|
||||||
@ -40,6 +40,7 @@ def make_app(config):
|
|||||||
|
|
||||||
make_flask_callbacks(app)
|
make_flask_callbacks(app)
|
||||||
make_crl_validator(app)
|
make_crl_validator(app)
|
||||||
|
register_filters(app)
|
||||||
|
|
||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
csrf.init_app(app)
|
csrf.init_app(app)
|
||||||
@ -77,11 +78,6 @@ def make_flask_callbacks(app):
|
|||||||
"atat_permissions": [],
|
"atat_permissions": [],
|
||||||
}
|
}
|
||||||
|
|
||||||
@app.template_filter('iconSvg')
|
|
||||||
def _iconSvg(name):
|
|
||||||
with open('static/icons/'+name+'.svg') as contents:
|
|
||||||
return contents.read()
|
|
||||||
|
|
||||||
|
|
||||||
def map_config(config):
|
def map_config(config):
|
||||||
return {
|
return {
|
||||||
|
16
atst/filters.py
Normal file
16
atst/filters.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
def iconSvg(name):
|
||||||
|
with open('static/icons/'+name+'.svg') as contents:
|
||||||
|
return contents.read()
|
||||||
|
|
||||||
|
|
||||||
|
def dollars(value):
|
||||||
|
try:
|
||||||
|
numberValue = float(value)
|
||||||
|
except ValueError:
|
||||||
|
numberValue = 0
|
||||||
|
return "${:,.0f}".format(numberValue)
|
||||||
|
|
||||||
|
|
||||||
|
def register_filters(app):
|
||||||
|
app.jinja_env.filters['iconSvg'] = iconSvg
|
||||||
|
app.jinja_env.filters['dollars'] = dollars
|
@ -116,7 +116,7 @@
|
|||||||
<td>{{ r['full_name'] }}</td>
|
<td>{{ r['full_name'] }}</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td>${{ r['annual_usage'] }}</td>
|
<td>{{ r['annual_usage'] | dollars }}</td>
|
||||||
<td>{{ r['status'] }}</td>
|
<td>{{ r['status'] }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
15
tests/test_filters.py
Normal file
15
tests/test_filters.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from atst.filters import dollars
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("input,expected", [
|
||||||
|
('0', '$0'),
|
||||||
|
('123.00', '$123'),
|
||||||
|
('1234567', '$1,234,567'),
|
||||||
|
('-1234', '$-1,234'),
|
||||||
|
('one', '$0'),
|
||||||
|
])
|
||||||
|
def test_dollar_fomatter(input, expected):
|
||||||
|
assert dollars(input) == expected
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user