Commit Graph
5776 Commits
Author SHA1 Message Date
Cédric Krier 7d040c8cb9 Check button states when testing access
Closes #14591
2026-02-09 18:13:34 +01:00
Cédric Krier fa9e60bb9c Do not use Literal to count in SQL
Following ce972acc1cf2, this conversion was missing and prevent psycopg 3 to
determine the data type.
2026-03-24 18:25:19 +01:00
Nicolas Évrard 475e68df76 Remove the files of Binary fields from the Filestore
Closes #13861
2026-03-24 09:30:17 +01:00
Nicolas Évrard b44c004825 Add deletion on FileStore
We're identifying each file in the filestore with a UUID4 in order to avoid
collisions. It has the drawback that we will store twice the same file but on
the other hand we can now remove each file from the store as there is no more
collision.

In order to identify files named previously we're using textual representation
of the UUID with the hyphens. Previous IDs do not have hyphens.
2025-01-09 18:53:09 +01:00
Cédric Krier a88c575fcc Retry to dump status later after unexpected exception
Closes #14678
2026-03-16 10:30:54 +01:00
Cédric Krier 145ce8f2f8 Make retrieval of metadata via build really quiet 2026-03-22 09:07:23 +01:00
Cédric Krier 5310b00496 Remove grouped_slice per IN_MAX
The usage of ``grouped_slice`` without size is deprecated since `=
ANY(ARRAY[%s])` is used for PostgreSQL and SQLite is used only for tests.

The ``Database.IN_MAX`` is replaced by ``backend.MAX_QUERY_PARAMS`` which is a
more accurate limit of the backend.
The SQLite limits is indeed SQLITE_MAX_EXPR_DEPTH so we use a empirical value.
2026-03-22 21:05:26 +01:00
Cédric Krier 0da67bce21 Deprecate reduce_ids for SQL_OPERATORS['in']
Closes #12989 #13897
2025-12-26 10:57:44 +01:00
Cédric Krier 7b231e74e9 Use array as IN operators 2025-12-26 10:58:30 +01:00
Cédric Krier 6b4218f8dd Use psycopg_pool resize to clear unused database connections 2025-11-25 15:05:02 +01:00
Nicolas Évrard 299dd6b1c9 Update to Psycopg 3
Closes #10901
2026-03-22 19:53:32 +01:00
Cédric Krier 7fb5a4a3de Do not use Literal to count in SQL
The * is not actually a parameter of the aggregate function so it is better to
let python-sql manage it with its default value.
2025-12-25 09:47:23 +01:00
Nicolas Évrard 4ab7069dab Delegate the notifications handling to the backend 2025-11-25 13:27:24 +01:00
Cédric Krier dada23bcb5 Do not install mrml on Python version greater than 3.14
See https://github.com/jdrouet/mrml/issues/597
2026-03-21 12:07:21 +01:00
Cédric Krier d3c8a8e55d Add support for Python 3.14 2026-03-21 09:02:25 +01:00
Cédric Krier 42b0fc7061 Remove support for Python 3.9 2026-03-21 08:48:06 +01:00
Cédric Krier e15c0b7d7a Upgrade to pyproject using hatchling as build-system 2026-03-21 18:46:34 +01:00
Cédric Krier 199408510a Store column widths per occurrence
Closes #14645
2026-03-03 19:48:24 +01:00
Cédric Krier 2eafdd5564 Explicitly close sqlite connection
The context manage on Connection only commit the connection but it should still
be explicitly closed.

Closes #13859
2026-03-05 08:10:46 +01:00
Cédric Krier 33856ac2a1 Add model attribute to table handler 2026-03-14 18:12:02 +01:00
Cédric Krier 2b626f1708 Document history attribute of table handler 2026-03-14 18:11:34 +01:00
Maxime Richez 72efd7a9de Rename also columns in history table when renaming columns
Closes #14561
2026-03-14 18:09:29 +01:00
Cédric Krier c0396ab1db Define Function field with column_ as searchable and sortable 2026-02-25 09:08:24 +01:00
Cédric Krier e4c5d7c575 Add model and field Many2One on translations 2026-02-24 11:35:00 +01:00
Cédric Krier fa9749fe48 Support fmany2one based on Function fields 2026-02-24 11:34:42 +01:00
Cédric Krier d494939b5f Use label Name for the name of translation 2026-02-24 09:19:37 +01:00
Cédric Krier a81f79a497 Use length of the name field of translation as fallback of substring
Closes #14623
2026-02-24 09:19:16 +01:00
Cédric Krier 126d71063c Do not insert values for Function fields in history table
Since 49748579c23a Function fields can have an SQL type so it is not enough to
distinct the columns that must be inserted as first record in history table.

Closes #14636
2026-03-02 09:55:54 +01:00
Cédric Krier b06d0b3c7e Remove internal name from record name of model field 2026-02-18 14:24:35 +01:00
Cédric Krier 4d0070784b Search for unused view XML recursively 2026-02-27 13:30:52 +01:00
José Antonio Díaz Miralles 72c809e6f6 Fix typo in menuitem handler docstring
Closes #14655
2026-03-05 19:13:11 +01:00
Cédric Krier 3d41e8c42b Order cron logs by descending ID
User is mostly interested in the last runs.
2026-02-27 21:41:52 +01:00
Cédric Krier e37a2be600 Use relation name to retrieve the invalid domain of Reference field
Closes #14603
2026-02-12 12:58:09 +01:00
Cédric Krier 071d5e4fef Add timestamp field on ModelStorage for last modified
Closes #14202
2026-02-25 09:04:03 +01:00
Cédric Krier 62bc81360b Filter dictionary mapping of model names by classes
Closes #14601
2026-02-12 11:14:07 +01:00
Cédric Krier 57aabfb14e Support Function field without getter but SQL expression
Closes #4369
2026-01-30 18:06:45 +01:00
Cédric Krier 52326c4b08 Allow customizing SQL expression of field 2026-01-29 15:24:10 +01:00
Cédric Krier dfe58aa125 Use tables and Model as arguments for sql_column of the Field 2026-01-29 12:42:56 +01:00
Nicolas Évrard cceb3e81d9 Use always fork method to test process local
We can not rely on the default process method of multiprocessing module.

Closes #14579
2026-02-09 17:33:32 +01:00
Cédric Krier 86bc62d126 Display and order by create date/time in error list 2026-01-31 17:22:42 +01:00
Cédric Krier 16ca654159 Allow the UserError and UserWarning exceptions to be raised when testing the buttons
Closes #14539
2026-01-22 23:15:21 +01:00
Cédric Krier 14088e1de3 Replace extension separator by underscore in report name used as temporary file 2026-01-28 10:39:07 +01:00
Cédric Krier d7b80ff2ee Add support for basic authentication for user application
Closes #14528
2026-01-21 14:55:49 +01:00
Cédric Krier e7fa8e4461 Add environment variable to enable development mode
Closes #14530
2026-01-21 19:12:34 +01:00
Cédric Krier bddbc06222 Do not check for missing parent depends when the One2Many is readonly
Closes #14526
2026-01-20 17:31:26 +01:00
Nicolas Évrard a56b42b66c Rename history sequence when the table is renamed
Just like in ff68233bdeb1 we need to also rename the history sequence name as
the migration to identity relies on the sequence name including the table name.

Closes #14598
2026-02-10 18:21:47 +01:00
Cédric Krier 2989e66585 Lazy import html2text and weasyprint 2025-12-11 17:57:01 +01:00
Cédric Krier b034e23e91 Support the conversion of MJML reports to HTML
Closes #12597
2025-12-11 16:31:51 +01:00
Cédric Krier a5bb7d8835 Remove old field names when updating model data
Closes #14511
2026-01-17 00:55:00 +01:00
Cédric Krier b57bedf337 Support clause on multiselection field with operator in and value None
Closes #14520
2026-01-19 16:40:01 +01:00