Commit graph

1060 commits

Author SHA1 Message Date
Baptiste Jonglez
95b2cf870b Fix test for project deletion 2021-07-17 13:54:11 +02:00
Baptiste Jonglez
db982572aa History: also ask for private code to confirm deletion
This is the same idea as deleting a project: deleting history is also a
major destructive action.  We reuse the same form as for project deletion
to ask for the private code and provide CSRF validation.
2021-07-17 13:54:11 +02:00
Baptiste Jonglez
969029a811 Add CSRF validation to project history deletion 2021-07-17 13:54:11 +02:00
Baptiste Jonglez
2bb6f2b6a7 Rework project deletion to add CSRF validation
It requires reworking the user interface, but it's probably for the best.
2021-07-17 13:54:11 +02:00
Baptiste Jonglez
109d7fca17 Add CSRF validation to most disruptive actions
This also switches all such actions to POST requests.

Deleting the project is handled in another commit because it requires more
changes.
2021-07-17 13:54:11 +02:00
Raju Subramanian
942617a436 Change Dockerfile to compile python dependencies at build time.
- Updated entrypoint.sh
- Updated docs for running with Docker
- Added .dockerignore
2021-07-14 18:01:34 +02:00
Baptiste Jonglez
078f9e8b6b Fix invalid HTML 2021-07-14 16:10:13 +02:00
Jocelyn Delalande
4ee47da131 Add missing 4.1.4 changelog entry 2021-07-14 13:40:11 +02:00
Jocelyn Delalande
01594b70ac Add some missing 5.0 ChangeLog entries 2021-07-14 13:40:11 +02:00
Jocelyn Delalande
d7bf7cfac4 Import 4.1 changelog from stable-4.1 branch 2021-07-14 13:40:11 +02:00
Baptiste Jonglez
e25bc6825d Document how to generate and use tokens with the API 2021-07-14 13:37:24 +02:00
Baptiste Jonglez
ae02c11521 setup: get rid of ~= specifier
Experience shows that it's highly confusing, so convert it to the
equivalent version constraints.
2021-07-14 11:22:03 +02:00
Baptiste Jonglez
d216116dd2 CI: add more minimal variants 2021-07-14 11:22:03 +02:00
Baptiste Jonglez
7e6776403f Update dependencies for Flask 2 compatibility 2021-07-14 11:22:03 +02:00
Baptiste Jonglez
48cc73b756 CI: Add variant with minimal versions of all dependencies 2021-07-14 11:22:03 +02:00
Baptiste Jonglez
d557119762 Don't constrain the version of psycopg2 2021-07-14 11:22:03 +02:00
Baptiste Jonglez
2e4bb0ec8c tests: ensure that /tmp/ihatemoney.db does not get overwritten
Most of the tests are using a separate database, but we have a few tests
that are loading default values and are writing to /tmp/ihatemoney.db.

This is annoying because it's also the database used for development:
running the test suite breaks the dev database.

To fix this, always use a separate testing database to avoid interference.
2021-07-14 10:36:39 +02:00
Glandos
31a9ed29f6 bump pymysql upper bound 2021-07-12 23:42:31 +02:00
dependabot[bot]
288bde2ad8 Bump sphinx from 4.0.3 to 4.1.0
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.0.3 to 4.1.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/4.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v4.0.3...v4.1.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 23:31:15 +02:00
Reza Almanda
686c60e7c5 Translated using Weblate (Indonesian)
Currently translated at 100.0% (235 of 235 strings)

Co-authored-by: Reza Almanda <rezaalmanda27@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/id/
Translation: I Hate Money/I Hate Money
2021-07-12 23:30:30 +02:00
Andrew Dickinson
72230448a7
Improve localization on the History page using string replacement (#587) 2021-07-12 22:48:19 +02:00
Glandos
2f42afbc69 Translated using Weblate (French)
Currently translated at 100.0% (235 of 235 strings)

Co-authored-by: Glandos <bugs-github@antipoul.fr>
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/fr/
Translation: I Hate Money/I Hate Money
2021-07-11 00:25:19 +02:00
phlostically
12167a09bf Translated using Weblate (Esperanto)
Currently translated at 100.0% (235 of 235 strings)

Co-authored-by: phlostically <phlostically@mailinator.com>
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/eo/
Translation: I Hate Money/I Hate Money
2021-07-11 00:25:19 +02:00
Oğuz Ersen
e377bc6443 Translated using Weblate (Turkish)
Currently translated at 100.0% (235 of 235 strings)

Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/tr/
Translation: I Hate Money/I Hate Money
2021-07-11 00:25:19 +02:00
Glandos
98c30f0914 bump minimal WTForms version 2021-07-10 10:22:16 +02:00
Glandos
526db044b2 Use "No one" instead of "Noone", that is really too old. 2021-07-10 00:40:06 +02:00
Glandos
ccad5ac859 align translation with existing tokens 2021-07-10 00:40:06 +02:00
Glandos
3f9303d5b5 badges for selectors, and payees in column 2021-07-10 00:40:06 +02:00
Glandos
e9afc539c8 slightly more margin for details 2021-07-10 00:40:06 +02:00
Glandos
c4f98580c1 move extra options to bottom 2021-07-10 00:40:06 +02:00
Glandos
6e2283f915 draft 2021-07-10 00:40:06 +02:00
Baptiste Jonglez
7ceb66f01b Enable CI builds with postgresql and mariadb 2021-07-10 00:39:54 +02:00
Baptiste Jonglez
33aad60352 Clarify that the test config files are not used for all tests... 2021-07-10 00:39:54 +02:00
Baptiste Jonglez
2616bed4ff Fix SQL query in has_multiple_currencies
The previous query was working fine on sqlite and mariadb, but not on
postgresql :

    return self.get_bills_unordered().group_by(Bill.original_currency).count() > 1

    psycopg2.errors.GroupingError: column "bill.id" must appear in the GROUP BY clause or be used in an aggregate function

The failing SQL query was:

    [SQL: SELECT count(*) AS count_1
    FROM (SELECT bill.id AS bill_id, ...
    FROM bill JOIN person ON person.id = bill.payer_id JOIN project ON project.id = person.project_id
    WHERE bill.payer_id = person.id AND person.project_id = project.id AND project.id = %(id_1)s GROUP BY bill.original_currency) AS anon_1]

The problem is that sqlalchemy creates a subquery for postgresql, and the
internal query does not make sense.

GROUP BY is not actually useful, we simply need to count the number of
distinct currencies in the list of bills.
2021-07-10 00:34:43 +02:00
Eugenia Russell
df5d27da50 Translated using Weblate (Greek)
Currently translated at 63.6% (147 of 231 strings)

Co-authored-by: Eugenia Russell <eugenia.russell2019@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/el/
Translation: I Hate Money/I Hate Money
2021-07-09 10:05:06 +02:00
Baptiste Jonglez
8b2da3757c Add missing field description from #774 2021-07-09 01:24:29 +02:00
Baptiste Jonglez
42dd2d6f7d Regenerate translation files 2021-07-09 01:20:50 +02:00
Baptiste Jonglez
ec1e6cf26e project edit form: allow empty private code (= no change)
Currently, the private code is mandatory in the edit form, and it's not
clear whether it's meant to **check** for the right private code or to
**change** the private code.

Make the field optional and rename the help message to make it clearer
it's only meant to **change** the private code.

Also change the field type to "password" instead of simple string.
2021-07-09 01:20:50 +02:00
Baptiste Jonglez
856412a70d project forms: Clarify relation between inheriting classes
The save() function is used to create a new project, so it belongs to the
form creation class.

Also clarify overriden form fields.
2021-07-09 01:20:50 +02:00
dependabot[bot]
f7ae02546e Bump sphinx from 4.0.2 to 4.0.3
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/4.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v4.0.2...v4.0.3)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-07 22:35:21 +02:00
Baptiste Jonglez
dae7870b12 Fix error message syntax to allow translation extraction 2021-07-07 01:01:00 +02:00
Glandos
07b86bc580
Rework currency switching (#661)
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>

Currency switching is both simpler and less powerful. This was done primarily for users, to have a clear and logical understanding, but the code is also simpler. The main change is that it is now forbidden to switch a project to "no currency" if bills don't share the same currency.

Also, tests assume that projects are created without currency, as in the web UI.
2021-07-06 21:51:32 +02:00
Glandos
fec5a82b0c
Create SECURITY.md 2021-07-06 21:41:49 +02:00
Baptiste Jonglez
def6dba825 Replace MySQL by MariaDB in all documentation / README / changelog
Also document the new requirement for MariaDB >= 10.3.2

Fixes: #632
Fixes: #743
2021-07-05 08:52:13 +02:00
Baptiste Jonglez
477fc20cd4 Update Jinja dependency to >= 3.0
This is necessary since c62965d4bf ("fix basic deprecation warnings")
2021-07-04 12:52:21 +02:00
Glandos
25c42d36eb
Update README.rst
Badge to GitHub Actions instead of the dead Travis
2021-06-26 23:05:29 +02:00
Glandos
f9756cc87d
Update and rename python-package.yml to test-docs.yml 2021-06-26 23:03:32 +02:00
Eugenia Russell
6f662e9dae Translated using Weblate (Greek)
Currently translated at 63.2% (146 of 231 strings)

Co-authored-by: Eugenia Russell <eugenia.russell2019@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/i-hate-money/i-hate-money/el/
Translation: I Hate Money/I Hate Money
2021-06-24 23:00:00 +02:00
Glandos
27c5a5f102
Run Lint & Docs 2021-06-23 22:58:24 +02:00
Glandos
45f672b3cd
First test of github actions 2021-06-23 22:49:55 +02:00