mirror of
https://github.com/pretix/pretix.git
synced 2026-10-01 19:14:43 +00:00
* Money representation in templates: Allow more precision When rendering money in templates, we used to have the following logic: - When the decimal places fit the currency, render with Babel - When they don't, e.g. we stored 123.67 JPY, even though there are no fractional Yens, render without Babel with a custom format, but render the fractional Yens because we'd rather *show* wrong data and make the bug obvious than hide it. However, we only did that up to a prevision of two places, we never showed more. This is still sufficient for core pretix, but we have plugins that need to operate in fractional cents. Also, we CAN render everything through babel for consistent formatting. There is one **risk**: This might cause weird results on SQLite. Since SQLite has no concept of precise decimal math, results of in-SQL computations can sometimes experience floating point errors and show with A LOT of decimal palces. This used to be invisible since the UI performed the rounding. With this PR – not any more. We'll need to see how annoying it is, but it should only affect development mode. This PR also fixes a bug in tax_rate_format that for some reason did not do what it was supposed to do, even though I tested it back then, weird. Might even be a Python version thing? * Update src/pretix/base/templatetags/money.py Co-authored-by: pajowu <engelhardt@pretix.eu> * Apply suggestion from @pajowu Co-authored-by: pajowu <engelhardt@pretix.eu> * Fix typing stuff * Fix precision issue --------- Co-authored-by: pajowu <engelhardt@pretix.eu>