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)
* 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>
* Added translation using Weblate (Indonesian)
* Translated using Weblate (Indonesian)
Currently translated at 100.0% (158 of 158 strings)
Translation: I Hate Money/I Hate Money
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/id/
* Added translation using Weblate (Ukrainian)
* Translated using Weblate (Ukrainian)
Currently translated at 11.4% (18 of 158 strings)
Translation: I Hate Money/I Hate Money
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/uk/
* Translated using Weblate (Chinese (Simplified))
Currently translated at 20.9% (33 of 158 strings)
Translation: I Hate Money/I Hate Money
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/zh_Hans/
* Translated using Weblate (German)
Currently translated at 100.0% (155 of 155 strings)
Translation: I Hate Money/I Hate Money
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/de/
Co-authored-by: Muhammad Fauzi <fauzipadlaw@users.noreply.github.com>
Co-authored-by: Muge Niu <mugeniu12138@gmail.com>
Co-authored-by: flolilo <30194876+flolilo@users.noreply.github.com>
Fix#417
* New tab upload
* Extract data from JSON
* Add users
* Black format
* Try to add bill
* Import bills
* Add french translation msg
* Black reformat missing
* Deactivated users are supported
* Test import
* Remove temp file in upload_json()
* Incomplete tests
* tests import
* Update ihatemoney/translations/fr/LC_MESSAGES/messages.po
Co-Authored-By: Rémy HUBSCHER <hubscher.remy@gmail.com>
* Remove useless variable and check json format
* Use String.IO and test for wrong json
* Remove coma
Co-authored-by: Rémy HUBSCHER <hubscher.remy@gmail.com>
* Add a `make update-translations` command
To collect new strings to be translated from code.
Totally cheated on @Glandos commands :-)
Ref #336
Ref https://github.com/spiral-project/ihatemoney/issues/336#issue-322069517
* Document translation process
Fix#336
* Drop noisy location comments from .po files
Fix#339
* Drop .pot header
As it serves no purpose with our translation workflow.
.po header could be removed also, but pybabel has no option for that.
Ref #339
* Use token based auth in invitation e-mails
Invitation e-mails no longer contain the clear
text project password
* Skip invite page after project creation
- Replace ``The project identifier is demo, remember it!``
by ``Invite other people to join this project!``
(linking to the invite page)
- Encourage users to share the project password via other
communication means in the reminder email
* Update to a more flexible admin authentication
* Admin can now access any project
* Add delete and edit options in the dashboard
* Add a link to the dashboard in the nav bar
This is a rework of the changes proposed by @Olivd, so they can apply on top of
the latest master without trouble. All credit goes to him for the code.
* Protect admin endpoints against brute force attacks
Add a throttling mechanism to prevent a client brute
forcing the authentication form, based on its ip address
Closes#245
* Reset attempt counters if they get memory hungry
* Use absolute imports and rename package to ihatemoney
* Add a ihatemoney command
* Factorize application creation logic
* Refactor the tests
* Update the wsgi.py module with the new create_app() function
* Fix some styling thanks to Flake8.
* Automate Flake8 check in the CI.