Commit Graph

41922 Commits

Author SHA1 Message Date
John BOTELLA
2a6d7739ba UIUX : initNewContent event system (Dolibarr JS context) (#37394)
* Fix doc page

* wip doc

* Add doc

* Factoring
2026-03-05 01:13:38 +01:00
Laurent Destailleur
3dfce11ae8 Merge 2026-03-05 00:42:13 +01:00
Laurent Destailleur
7a8e0ace2e Automated merge from 22.0 to 23.0 by tool pullmerge.sh 2026-03-04 19:50:18 +01:00
Laurent Destailleur
3a15740c73 Automated merge from 21.0 to 22.0 by tool pullmerge.sh 2026-03-04 19:50:16 +01:00
Laurent Destailleur
7bb2713bd9 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2026-03-04 19:49:33 +01:00
Laurent Destailleur
1650d96091 FIX Pb with import of agendaevents. Date and import id not visible. 2026-03-04 16:52:48 +01:00
Laurent Destailleur
cf0ab8d300 Fix label of type 2026-03-04 12:51:56 +01:00
Laurent Destailleur
01a94ed23f NEW Add a separtor between won/lost and other opportunity status in list 2026-03-04 12:11:35 +01:00
Laurent Destailleur
9c0cdee7c6 Fix css and truncation on creation of event 2026-03-04 11:52:05 +01:00
Laurent Destailleur
23716a217e Default radius to 8 2026-03-04 03:19:31 +01:00
Laurent Destailleur
92f76fcef4 Add info fulldayevent 2026-03-04 03:06:42 +01:00
Laurent Destailleur
9940db94d9 Debug v23 2026-03-04 03:04:31 +01:00
Laurent Destailleur
dc794ff2fb NEW Add method dolOutputDates() 2026-03-04 02:20:56 +01:00
Laurent Destailleur
aaf64cf696 CSS 2026-03-03 20:58:33 +01:00
Laurent Destailleur
17857b271c Fix regression 2026-03-03 20:30:37 +01:00
Laurent Destailleur
eaf2faebdb Fix regression 2026-03-03 20:24:59 +01:00
Laurent Destailleur
fc19612af0 Fix critical perf trouble making IO scan at each image output 2026-03-03 20:15:57 +01:00
Laurent Destailleur
4213a06ad8 Fix load of cache currencies is doing ton of SQL access 2026-03-03 20:12:34 +01:00
Laurent Destailleur
4406dbe2c4 Fix critical perf trouble making IO scan at each image output 2026-03-03 19:25:02 +01:00
Laurent Destailleur
6fb8b21471 css 2026-03-03 17:17:01 +01:00
Laurent Destailleur
6f12d1dfcc css 2026-03-03 17:11:18 +01:00
Laurent Destailleur
749b45a16d Fix from may be empty 2026-03-03 14:24:04 +01:00
Laurent Destailleur
61c935b827 Debug v23 2026-03-02 20:07:43 +01:00
Laurent Destailleur
343edad341 Debug v23 2026-03-02 20:06:19 +01:00
Laurent Destailleur
864191e881 NEW Refactoring how the counter of print is done.
Now done synchronously in documents.php or receipt.php
2026-03-02 20:05:50 +01:00
Laurent Destailleur
6ca6462466 Clean code 2026-03-02 15:32:13 +01:00
Pierre Ardoin
fcb11df3b8 NEW : enable supplier external download links and expose substitution variables for supplier documents (#37386)
* Implement external download option for supplier invoices

Added a new option to allow external downloads for supplier invoices, enhancing user flexibility.

* Add option for external download in supplier order

* Enable external download for supplier orders and invoices

Added conditions to enable external download for supplier orders and invoices based on configuration settings.

* Add direct download URLs for supplier orders and invoices

* Update copyright information in supplier_invoice.php

Added copyright notice for Pierre Ardoin for 2026.

* Update supplier_order.php

* Cast thirdparty ID to integer in fetch call

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-03-02 15:11:10 +01:00
Laurent Destailleur
b73291cbca Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-03-02 14:59:49 +01:00
Laurent Destailleur
eb778141d6 css 2026-03-02 14:09:11 +01:00
Laurent Destailleur
38142b31d1 NEW Remove legacy crabe template of invoice 2026-03-02 12:47:45 +01:00
Laurent Destailleur
82d3d3ba92 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-03-02 05:54:03 +01:00
Laurent Destailleur
57a1f05d49 FIX #37372 FIX #37374 2026-03-02 05:52:05 +01:00
Laurent Destailleur
9273cbd919 Clean code 2026-03-02 04:26:03 +01:00
Laurent Destailleur
d928b816d7 Fix #GHSA-q29x-7fmx-7gq3 2026-03-02 03:58:48 +01:00
Laurent Destailleur
1ea2a2b0fd Clean code 2026-03-02 03:20:11 +01:00
Laurent Destailleur
848c5b9482 NEW MAIN_DISALLOW_UNSECURED_SELECT_INTO_EXTRAFIELDS_FILTER is on by
default
2026-03-02 03:18:46 +01:00
Laurent Destailleur
29aceee503 Complete fix of MAIN_DISALLOW_UNSECURED_SELECT_INTO_EXTRAFIELDS_FILTER 2026-03-02 03:17:24 +01:00
Laurent Destailleur
19f8fe8e63 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-03-02 03:14:24 +01:00
Laurent Destailleur
2cbde4df2a Report fix of v23 2026-03-02 03:08:41 +01:00
Laurent Destailleur
26c38c52f9 Clean code 2026-03-02 02:15:10 +01:00
Laurent Destailleur
743c22e57c Sec: Fix #GHSA-2mfj-r695-5h9r 2026-03-02 02:04:30 +01:00
Laurent Destailleur
4bfe5d2d4a Protect includes (in case dol_include is used without harcoded filename) 2026-03-02 01:03:34 +01:00
Laurent Destailleur
d1a78bf3ac Debug v23 2026-03-01 18:33:28 +01:00
Laurent Destailleur
f6241de8a0 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-03-01 14:15:34 +01:00
Laurent Destailleur
fc13435730 Debug v23 2026-03-01 14:07:41 +01:00
Laurent Destailleur
53ecd7de15 Debug v23 2026-03-01 14:00:16 +01:00
Charlène Benke
0f777b1cd8 QUAL use shorter label on display lang setting (#37243)
* NEW Add status canceled on direct debit payment

* Link are clicable on page

* Debug v24

* Fix link

* Fix link

* Fix list of status

* Fix status code

* Debug v23

* NEW Add direct debit to close on home thumbs

* Fix link

* Debug v23

* Debug v23

* Clean code

* Debug extrafields chckbxlist v23

* Debug extrafields chckbxlist v23

* Debug v23

* Fix missing lagal requirement

* Better rate showing

* Debug v23 - sql request for list of actioncomm must not use a OR

* Clean code

* Code comment

* Debug v23

* Fix the limit

* css

* Debug v23

* Fix max

* Fix CI

* More debug info

* Increase editor height for note input fields (#37128)

* Edit form must match have order of field similat to create form

* Update card.php (#37108)

@defrance https://github.com/Dolibarr/dolibarr/issues/36767

* Update card.php (#37108)

@defrance https://github.com/Dolibarr/dolibarr/issues/36767

* Fix CI

* Fix CI

* Fix CI

* Correct linked_objects assignment for 'propal' #Wrong sourcetype 'commande' instead of 'propal' when creating recurring invoice template from invoice linked to proposal #37099 @defrance (#37112)

* Correct linked_objects assignment for 'propal'

@defrance Adam Hocini

* Refactor linked objects assignment for proposals

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fixed Bug : email sending test #36741 (#37107)

Fixed Bug : email sending test #36741
@defrance 
-->
Issue fixed
The problem was caused by initializing $result = 0 in core/actions_sendmails.inc.php.
When sending a test email from Setup → Emails, there is no $object to fetch. As a result, $result remained 0 and the code incorrectly triggered ErrorFailedToReadObject.

The fix consists in explicitly setting $result = 1 when no $object is provided (test email / generic email context). This correctly treats the absence of an object as a valid case and restores the ability to send test emails, while keeping $result properly initialized.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix CI

* Fixed Bug : email sending test #36741 (#37107)

Fixed Bug : email sending test #36741
@defrance 
-->
Issue fixed
The problem was caused by initializing $result = 0 in core/actions_sendmails.inc.php.
When sending a test email from Setup → Emails, there is no $object to fetch. As a result, $result remained 0 and the code incorrectly triggered ErrorFailedToReadObject.

The fix consists in explicitly setting $result = 1 when no $object is provided (test email / generic email context). This correctly treats the absence of an object as a valid case and restores the ability to send test emails, while keeping $result properly initialized.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Correct linked_objects assignment for 'propal' #Wrong sourcetype 'commande' instead of 'propal' when creating recurring invoice template from invoice linked to proposal #37099 @defrance (#37112)

* Correct linked_objects assignment for 'propal'

@defrance Adam Hocini

* Refactor linked objects assignment for proposals

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix CI

* Fix CI

* FIX Replace direct $_POST access with GETPOST() in origin/originid recovery paths (#37143)

When a create action fails and rolls back, several list/card pages
restore origin parameters by assigning $_POST values directly to
$_GET. This causes 'undefined array key' warnings on PHP 8.1+ if
the POST data is missing or malformed.

Replace raw $_POST['origin'] with GETPOST('origin', 'alpha') and
raw $_POST['originid'] with GETPOSTINT('originid') which safely
handle missing parameters.

Files fixed:
- htdocs/expedition/list.php
- htdocs/fourn/commande/list.php
- htdocs/commande/list.php
- htdocs/compta/facture/card.php
- htdocs/reception/list.php

These files had TODO-style comments ('Keep this ?', 'Keep GET and
POST here ?') indicating the pattern was already questionable.

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>

* FIX Add missing isset() check for $_GET['file'] in viewimage.php (#37141)

On line 65, $_GET['file'] is accessed without isset() check inside
the modulepart=='mycompany' condition. This causes an 'undefined array
key' warning on PHP 8.1+ when modulepart is 'mycompany' but no file
parameter is provided.

Note: GETPOST() is intentionally not used here as it is not available
before main.inc.php is loaded (see existing code comment).

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>

* CI

* Debug v23

* Debug v23

* FIX Show total on multicurrency only if currency are the same on all
lines

* FIX Show total on multicurrency only if currency are the same on all
lines

* Fix regression

* fix avoids undefined array key (#37103)

* NEW Add method formatLogObject to allow logs in 1 line #37135

* Initialize arrayforbutaction before hook (#37149)

* Initialize arrayforbutaction before hook (#37149)

* FIX #36923 Fix undefined array key warnings in opensurvey create_survey.php (#37140)

The session variable initialization logic was inverted: it set variables
to null only when they already existed, instead of initializing them
when they were missing. This caused 'undefined array key' warnings on
PHP 8.1+ when accessing the poll creation form for the first time.

Changes:
- Inverted isset() condition to !isset() to properly initialize missing
  session variables
- Initialize to empty string instead of null
- Added missing session variables (allow_comments, allow_spy, champdatefin)
  to the initialization array
- Added dol_escape_htmltag() for title output (XSS hardening)

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* CI

* Debug v23

* FIX #34342 PHP 8.1 undefined array key warnings in Product::getSellPrice() multiprices (#37144)

When using multiprices (PRODUIT_MULTIPRICES or
PRODUIT_CUSTOMER_PRICES_AND_MULTIPRICES), getSellPrice() accesses
$this->multiprices[$level], multiprices_ttc, multiprices_min,
multiprices_min_ttc, and multiprices_base_type arrays using the
buyer's price_level as key without checking if the key exists.

This causes 'undefined array key' warnings on PHP 8.1+ when a
third party has a price_level set but the product doesn't have
prices defined for that specific level.

Similarly, prices_by_qty array accesses for PRODUIT_CUSTOMER_PRICES_BY_QTY
and PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES modes could trigger
warnings when the array index doesn't exist.

Changes:
- Add isset() checks with safe defaults for all multiprices array
  accesses (0 for prices, 'HT' for price_base_type)
- Replace direct prices_by_qty access with !empty() checks

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix CI

* Qual: Update comments from French to English (#37097)

* Qual: Update comments from French to English

# Qual: Update comments from French to English

* Qual: Fix missing initialisations

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Debug v23

* Ensure that if $object->members is not loaded either we do not send m… (#37126)

* Ensure that if $object->members is not loaded either we do not send members to LDAP or we explicitly loads them before according to LDAP configuration

* Fix typo

* Sec: Add param $dolibarr_website_allow_custom_php to block by default
any PHP content in website module.

* Fix CI

* Comment

* Debug v23 - Min price was wrong in multicurrency mode

* Debug v23 - Filter on action type ko

* Debug v23 - Filter on action type ko

* add fk_parent on group group for permission inheritance (#37152)

* FIX PHP 8.1 undefined array key warnings in ProductCombination multiprices loop (#37142)

When PRODUIT_MULTIPRICES is enabled and a product variant's parent has
multiprices configured, the updateChildPrice() method iterates through
all price levels up to PRODUIT_MULTIPRICES_LIMIT. For price levels that
don't have prices defined, accessing $parent->multiprices[$i] and
related arrays directly causes 'undefined array key' warnings on
PHP 8.1+.

Changes:
- Add isset() check before comparing $parent->multiprices[$i]
- Use isset() ternary for $parent->multiprices_min[$i] (default: 0)
- Use !empty() for $parent->prices_by_qty_list[$i] check
- Use isset() ternary for $parent->multiprices_ttc[$i] (default: 0)
- Use isset() ternary for second $parent->multiprices[$i] (default: 0)

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Add error message

* Avoid ( in sql

* Clean sql

* Fix spellcheck

* Debug v23

* TakePOS hook “AddAction” jamais exécuté (#35961) (#37113)

@defrance 
Adam Hocini

* Update modProduct.class.php (#37087)

Fix: allow import of sell_or_eat_by_mandatory for products

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Update modProduct.class.php (#37087)

Fix: allow import of sell_or_eat_by_mandatory for products

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Clean code

* Fix package debian

* NEW Use the js lib into htdocs/public/includes instead of htdocs/includes

* New LNE Collect of buisness informations (#37084)

* Working LNE ping

* remove GPDA

* Add of other informations

* remove testing var

* fix Ci

* fix Ci

* fix ci

* fix CI

* Fix Ci

* fix Ci

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>

* CI

* CI

* CI

* CI

* Clean code. File not used.

* CSS

* CSS

* Fix phpunit

* More legal info

* CI

* Fix CI

* Fix: IRPF tax not applied when creating invoice from project times (#37077)

* Remove 'supplier_invoice' from old path array

* Update module path in arrayforoldpath

Sorry Eldy, I was confused. You are absolutely right, it is already corrected.

* Replace localtax2 assignment with get_localtax function


Error when creating an invoice with personal income tax from project times. The rate does not apply

* Refactor localtax1 calculation using get_localtax

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix: IRPF tax not applied when creating invoice from project times (#37077)

* Remove 'supplier_invoice' from old path array

* Update module path in arrayforoldpath

Sorry Eldy, I was confused. You are absolutely right, it is already corrected.

* Replace localtax2 assignment with get_localtax function


Error when creating an invoice with personal income tax from project times. The rate does not apply

* Refactor localtax1 calculation using get_localtax

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Protect module

* Add currency

* CSS

* WIP LNE

* Fix navigation

* cs

* Debug registration process

* Debug setup navigation

* CI

* CI

* Factorize code

* Fix CI

* Fix CI

* Fix CI

* CI

* CI

* CI

* CI

* Disable phan on v23

* CI

* CI

* FIX: missing include for blockedlog lib (#37165)

* Debug CI

* fix ternary always true (#37161)

* fix ternary always true

* Update requests.php

* Update registration.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* CI

* FIX: missing include for blockedlog lib (#37165)

* FIX #37134 Use json_encode for IMAP search logging in EmailCollector (#37135)

var_export() produces multiline output that breaks log aggregators
(Loki, Splunk, Elasticsearch) as each line becomes a separate log entry.

Using json_encode() produces single-line structured output that works
correctly with all log aggregation tools.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Populate syslog with placeholder (#37163)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Doc

* datamodel for user change password next time (#37155)

* Qual: Update phan baseline (#37172)

* Fix typo in file path (#37160)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix phpunit

* Complete call to setStatus so we have a trigy as 4th parameter (help to
fix the #37129)

* FIX Product - Warning on admin (#37157)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* FIX Product - Warning on admin + CSS (#37158)

* FIX Product - Warning on admin

* CSS

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* CI

* CI

* CI

* Avoid error if include fails

* More functions in blacklist (even if nw we use the whitelist by default)

* #37166 [SQL] add: email template for ticket admin creation (#37182)

* Replace var_export with new function formatLogObject (#37178)

* FIX BOM - Class product missing, column offset and information recording (form/input overlap) in admin (#37177)

* FIX BOM - Class product missing in admin

* Fix column offset and information recording (form/input overlap)

* ci

* ci

* FIX Intracommreport - Warning & link problem on tab (#37176)

* FIX Bank transfer admin - Warning & save 0 on constant PAYMENTBYBANKTRANSFER_ADDDAYS (#37175)

* Look and feel v24

* Update default time handling in index.php (#37150)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix file path comment in supplier invoice module (#37133)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix file path comment in supplier invoice module (#37133)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix CI

* Add template in migration

* fix phpdoc comment (#37184)

* fix phpdoc comment

* fix phpdoc comment

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* CI

* Fix phpstan

* Replace var_export by formatLogObject (continued) (#37188)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Debug amount suggested on membership public form

* Issue 36923 Fix session title handling in survey creation (#37105)

* Issue 36923 Fix session title handling in survey creation

* Change input field to use id attribute for title

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* fix phpstan errors blocking action baseline (#37189)

* fix phpstan errors blocking action baseline

* fix phpstan errors blocking action baseline

* fix phpstan errors blocking action baseline

* fix phpstan errors blocking action baseline

* fix phpstan errors blocking action baseline

* refresh baseline

* QUAL Replace var_export() with json_encode() in dol_syslog() calls (#37138)

var_export() produces multiline output that breaks log aggregators
(Loki, Splunk, Elasticsearch, Graylog) as each line becomes a separate
log entry.

json_encode() produces single-line structured output that works correctly
with all log aggregation tools. This pattern is already used elsewhere
in Dolibarr (accountancy, install modules).

Files changed:
- core/class/commoninvoice.class.php (payment intent logging)
- core/class/commonobject.class.php (payment terms logging)
- core/modules/mailings/advthirdparties.modules.php (mailing targets)
- core/modules/oauth/google_oauthcallback.php (userinfo logging)
- core/modules/oauth/generic_oauthcallback.php (userinfo logging)
- public/payment/newpayment.php (GET/POST debug logging)
- public/payment/paymentok.php (payment tag logging)
- public/stripe/ipn.php (Stripe event data logging)
- paypal/lib/paypal.lib.php (PayPal response logging)
- api/index.php (API debug logging)
- stripe/class/stripe.class.php (payment/setup intent logging)

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix CI

* CI

* Check if upload_max_filesize is not empty

* clean code

* Debug v23

* CI

* Fix #33521 VAT total false (#36990)

* - Fix #33521 VAT total false
- Fix some warnings
- Fix : delete $this->vat_rate

* - Fix #33521 VAT total false
- Fix some warnings
- Fix  :delete $this->tva array (replaced by $this->tva_array)

* - Fix #33521 VAT total false
- Fix some warnings
- Fix  :delete $this->tva array (replaced by $this->tva_array)

* Update pdf_octopus.modules.php

* Update pdf_octopus.modules.php

* Update pdf_octopus.modules.php

* Update pdf_octopus.modules.php

* Update pdf_octopus.modules.php

---------

Co-authored-by: vmaury <vmaury@vmaury-Lafite-Pro-16-AMD>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* NEW #25829 Automatically send the invoice generated from a template (#36967)

* Update DB

* ADD email template

* Ajout d'une clé de trad

* Ajout des traductions

* Suppression des traductions, sauf en_US

* Add flag auto send

* Modif form + cron auto send

* Suppression auto_send

* correction loopError

* ajout du selected au model de mail

* Prise en compte default model

* Fix pre-commit

* ménage

* precommit

* Correction Phan

* Correction Phan

* Correction, double cal du trigger

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Develop force user change pass userclass (#37174)

* datamodel for user change password next time

* add force_pass_change in user object

* Initialize force_pass_change to 0

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Another step for #37171

* Qual: Partial phan run on PR's, complete run on integration branches (#37186)

* Qual: Partial phan run on PR's, complete on main

# Qual: Partial phan run on PR's, complete on main

The selection is based on the branch name.
To run a complete phan run in a PR, the branch name of the PR must include phan_full.
This can help to fix remaining phan issue before re-integrating to the develop branch.

* qual: Update workflow and pre-commit configurations

- Enable phan workflow by uncommenting the relevant lines
- Update actionlint version to v1.7.10
- Add manual stage to actionlint hook in pre-commit-config.yaml

* qual: Update Phan analysis conditions

The conditions for running Phan analysis have been updated to include an additional check for branches containing 'phan_full'.

* qual: Update Phan workflow

- Replace github.event.ref with github.ref_name
- Add FILE_CHANGE_LIST environment variable for better file handling
- Update file list creation and usage in the workflow

* qual: Update Phan workflow conditions

Fix the branch reference (head_ref in PR, ref_name otherwise)

* Add step for debug information

* Remove debug step

* Fix: Missing initialisations members/new.php

Following a suppression of assignments, the variables disabledphy and disabledmor were undefined.

* fix: Update budget selection dropdown arguments in member creation form

Correct the arguments in the member creation form.

* qual: Add cs2pr to phan workflow

- Add cs2pr to the tools list in the phan workflow
- Change the output mode of phan to checkstyle
- Add a step to add results to PR as Github notices
- Add a step to provide phan log as artifact

* qual: Update Phan workflow to use environment variable for file list

The change fixes the Phan workflow to use the environment variable `$FILE_CHANGED_LIST` to clear the file

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix phan

* Fix phan

* Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0

* Doc

* Qual: Fix ambigious redirect error on Phan workflow (#37200)

# Qual: Fix ambigious redirect error on Phan workflow

Rewrote the shell command that is supposed to suppress a file contents
but is flagged by the environment.

* PHPStan > Update baseline (#37197)

Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>

* Typo fix (#37195)

* css

* qual: Update PHPStan workflow to run on all files in integration (#37207)

The PHPStan workflow has been updated to run on all files in integration branches.

* Fix CI

* CLOSE #37190 ODT Templates for thirdparties - Birthday is returned in epoch format (#37198)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* fix: Remove HTML from accounting menu tooltips in eldy theme (#37203)

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Qual: Update spelling (#37199)

* Qual: Update spelling for pre-select variants

# Qual: Update spelling for pre-select variants

In English, preselect is without the hyphen.  Update text and made some translations
related to preselect.

* Qual: Update composant to component and/or adequate translation.

# Qual: Update composant to component and/or adequate translation.

"Composant(s)" was mostly referenced in french file/class comments.
Updated

* Qual: Fix misspellings related to "criteria"

# Qual: Fix misspellings related to "criteria"

* Qual: Fix produt misspellings

# Qual: Fix produt misspellings

Change 'produt' to 'product'.

* Qual: Update French comments with "composants"

#Qual: Update French comments with "composants"

- Translating French comments to English (avoid codespell notice)

* Qual: Fixed typo 'bad practive' to 'bad practice'

# Qual: Fixed typo 'bad practive' to 'bad practice'

* Qual: Update phan.yml to exclude specific files from analysis

- Added file exclusion pattern to match phan configuration
- Added check for empty file list to avoid unnecessary phan execution

* Qual: Update file filtering in phan.yml workflow

The change updates the file filtering process in the phan.yml workflow to correctly redirect the output of the grep command to a temporary file.

* Qual: Ignore $systemfunction always exists

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Error handling methods for commonobject (#37201)

* NEW Can request and force user to change its password (#37196)

* force user to change password : redirect to user card on login

* force user to change password : redirect to user card on login

* redirect to a dedicated page

* bad old idea : self change passwd on user card + edit mode and rights: it makes a hole on security check

* only apply on dolibarr auth mode context

* only on dolibarr auth mode context

* Fix force_pass_change SQL assignment logic

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Doc

* Setup easier to understand between INVOICE_CHECK_POSTERIOR_DATE and
FAC_FORCE_DATE_VALIDATION

* Setup easier to understand between INVOICE_CHECK_POSTERIOR_DATE and
FAC_FORCE_DATE_VALIDATION

* Qual: Ignore exit code from `grep -v` in phan flow (#37213)

# Qual: Ignore exit code from `grep -v` in phan flow

`grep -v` returns 1 when the resulting filtered list is empty and would stop the execution.
This is fixed with `|| true` to have a final exit code that is 0.

* WIP LNE

* Debug v23

* WIP LNE

* FIX Bad header name

* Fix CSP for ping

* Compatibility with multicompany

* Debug

* Fix include

* FIX phpdoc on createFixedAmountDiscount() (#37212)

* FIX phpdoc on createFixedAmountDiscount

* FIX phpdoc

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* Fix in card css modal display (#36569)

* Fix display of cards in a modal

* fix php stan

* fix php stan

* Try a change to force CI

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* select language display AutoDetectLangShort if no showcode

* Add short version for AutoDetectLang

* Add AutoDetectLangShort translation to French

* Update html.formadmin.class.php

* Fix spacing in condition for showcode

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: AnthoXic <a.sapet-dev@proton.me>
Co-authored-by: adamhocini <72007447+adamhocini@users.noreply.github.com>
Co-authored-by: DarmonNoah <152853486+DarmonNoah@users.noreply.github.com>
Co-authored-by: minimexat <minimexat@gmail.com>
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Mathieu G. <118812426+MathieuGDev@users.noreply.github.com>
Co-authored-by: Vanyo <vanyolai@gmail.com>
Co-authored-by: MDW <mdeweerd@users.noreply.github.com>
Co-authored-by: David Beniamine <david.beniamine@tetras-libre.fr>
Co-authored-by: Laurent Destailleur <eldy@users.sourceforge.net>
Co-authored-by: Eric - CAP-REL <1468823+rycks@users.noreply.github.com>
Co-authored-by: Jarvis <94354305+Jarvis-69@users.noreply.github.com>
Co-authored-by: Lucas Marcouiller <45882981+Hystepik@users.noreply.github.com>
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Yamil Esteban Garcia <120027058+developmentOYR@users.noreply.github.com>
Co-authored-by: Noé Cendrier <81741011+altairis-noe@users.noreply.github.com>
Co-authored-by: Frédéric FRANCE <frederic34@users.noreply.github.com>
Co-authored-by: hansemschnokeloch <hansemschnokeloch@users.noreply.github.com>
Co-authored-by: Alexandre SPANGARO <alexandre.spangaro@gmail.com>
Co-authored-by: evarisk-kilyan <kilyan.evarisk@gmail.com>
Co-authored-by: jeremydassaud <49372108+jeremydassaud@users.noreply.github.com>
Co-authored-by: Vincent Maury <artec.vm@arnac.net>
Co-authored-by: vmaury <vmaury@vmaury-Lafite-Pro-16-AMD>
Co-authored-by: Vincent Penel <vincent.penel@atm-consulting.fr>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
Co-authored-by: Joris Le Blansch <jleblansch@gmail.com>
Co-authored-by: intelliking <tyleradams93226@gmail.com>
Co-authored-by: Benjamin Falière <121813548+BenjaminFlr@users.noreply.github.com>
Co-authored-by: John BOTELLA <68917336+thersane-john@users.noreply.github.com>
2026-02-28 17:44:03 +01:00
Laurent Destailleur
3aaa626fd6 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-28 17:42:49 +01:00
Laurent Destailleur
97f1bbc219 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-02-28 17:42:25 +01:00
Laurent Destailleur
c99e556ba8 FIX #36907 Close #37100 2026-02-28 16:50:41 +01:00