Merge pull request #185 from dod-ccpo/format-dollars

Add jinja filter to format dollars
This commit is contained in:
patricksmithdds 2018-08-20 12:00:03 -04:00 committed by GitHub
commit d8bc81a493
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 7 deletions

View File

@ -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
View 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

View File

@ -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
View 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