In one case, we were not catching a family of possible exceptions
(socket.error), and in the two other cases there was no error handling at
all. Sending emails can easily fail if no email server is configured, so
it is really necessary to handle these errors instead of crashing with a
HTTP 500 error.
Refactor email sending code and add proper error handling.
Show alert messages that tell the user if an email was sent or if there
was an error.
When sending a password reminder email or inviting people by email, we
don't proceed to the next step in case of error, because sending emails is
the whole point of these actions.
Translated using Weblate (Italian) Currently translated at 36.4% (83 of 228 strings)
Translated using Weblate (French) Currently translated at 100.0% (228 of 228 strings)
This fixes#607 and add a test case for this bug.
It also renames participants in test cases to avoid alphabetical ordering.
Inserting participants in alphabetical order is a special case, because ordering by ID will be the same as ordering by name. This is a bad idea in test cases, as #607 has shown.
Now each project can have a currency, default to None.
Each bill can use a different currency, and a conversion to project default currency is done on settle.
Fix#512
Currently the string representation of a Bill is: "<amount> for <description>"
It is used in the History Page to describe changes that were applied to
Bills, for instance:
Bill "42.0 for Test" renamed to "Another Test"
This is inconsistent, not easy to read, and the "for" in the middle is not
translatable.
To solve this issue, simply switch the string representation of a bill to
its description.
Co-authored-by: Baptiste Jonglez <git@bitsofnetworks.org>
* Direct Alembic to ignore the sqlite_sequence table
* Direct Alembic to ignore the sqlite_sequence table
* Fix "Skipping unsupported ALTER" warning on database migration
* Fix user-facing string and update translation catalog
In the flash message confirming member creation, change "member had been
added" into the correct form "member has been added".
No translation has been changed. Some translators seem to have already
spotted the mistake while translating, but I can't tell for all languages.
* Change "Person" to "Participant" in history view
Currently, the main user-facing term is "Participant", as seen for
instance in the "Add participant" form. "Person" is not used anywhere in
the interface.
See #302 for a more general discussion on choosing the right terminology.
* Fix obsolete translations.
Co-authored-by: Baptiste Jonglez <git@bitsofnetworks.org>
Co-authored-by: Rémy HUBSCHER <hubscher.remy@gmail.com>
* Reorganize "Contributing" documentation to be more accessible to new contributors
The following changes were done:
- move "How to contribute" first, and "Set up a dev environment" as the
second section. This way, a new contributor has access to the most
general information first, instead of the very specific "dev
environment" documentation.
- reduce "How to contribute" / "As a developer" by moving the part about
tests to a new "Contributing as a developer" section (see below). This
way, all types of contributions get roughly the same amount of text in
the first "How to contribute" section.
- add a new "Contributing as a developer" section, which lists items that
are useful when preparing a code contribution (running tests, formatting
code, create database migration). These items were moved either from
"How to contribute" or from "Set up a dev environment".
* Add brief documentation about updating and adding tests
Co-authored-by: Baptiste Jonglez <git@bitsofnetworks.org>
According to https://hosted.weblate.org/projects/i-hate-money/i-hate-money/
these translations are almost complete (69% and 58% currently, but that's
because there have been lots of new strings to translate recently)
Co-authored-by: Baptiste Jonglez <git@bitsofnetworks.org>