Commit graph

93 commits

Author SHA1 Message Date
VIAL-GOUTEYRON Quentin
ea54342891
NEW Drag and drop a file on the 23 remaining cards (#39473)
* FIX Drag and drop of a file reports a wrong error, or none at all

The error handler of dragAndDropFileUpload() had three defects that all end on
the user believing the file was attached when it was not.

 - The first assignment of the message was dead code, there was no return after
   the test on the http code 403, so a refusal was reported as a generic error.
 - The key ErrorUploadPermissionDenied it used exists in no language file, so
   the raw key was shown.
 - JSON.parse() was called with no try/catch on an answer that is not always a
   json, a fatal error of the endpoint or a request over post_max_size for
   example. The exception left the user on a page with no message at all.
 - An empty list of files was treated as a success, while it means the endpoint
   stored nothing.

The value of PHP_SELF is also escaped before it is written into the 6 generated
javascript strings. It holds the path info of the request on a server that
accepts it, so it is a user input. dol_escape_js() is called with the mode that
escapes a double quote by a double quote, the strings being delimited by double
quotes, and the sequence '</' is escaped too because the function does not do it
and the path info could otherwise close the script tag and open one of its own.

Adds the key ErrorOnAtLeastOneFileUpload to en_US, used when some files of a
batch failed and some did not.

* FIX getMultidirOutput returns a directory the Documents tab does not read

Four defects of the same function, all ending on a file stored where the user
will never see it, or written outside the documents directory.

 - The ref of the project of a task was only passed through dol_sanitizePathName(),
   which keeps a slash, a colon and the accented chars, while projet/tasks/document.php
   sanitizes it with dol_sanitizeFileName(). A project ref holding a slash even
   created an extra level of directory. Measured on real databases: 304 projects
   over 330 hold a slash on one of them, carrying 701 tasks over 824.
 - The same case calls $object->fetchProject() with no guard, while the signature
   of the function accepts an object that is not a CommonObject, and even a null
   when a module is given. Such a caller gets a fatal error where it expects the
   error string. No core caller is in that case today, an external module or a
   hook can be.
 - The entity of the object may have no declared directory, an object shared by
   another entity for example. The undefined index returned a relative path, so
   the caller read or wrote under the web root. The current entity is used
   instead, and the fallback is logged because the directory is then not the one
   of the entity of the object, which matters for a caller that deletes files.
 - When the current entity has no declared directory either, the fallback
   returned the sub directory alone, again a relative path. The same error than
   for a module that declares no directory at all is now returned.

Adds the sub directory of a partnership and of a stock transfer, which their own
document tabs already read.

* FIX getElementProperties answers wrong properties for 9 elements

A customer payment, a supplier payment, a various payment, a stock transfer and
the 4 objects of the hrm module had no properties at all, or wrong ones, so any
caller that resolves a class, a table or a document directory from an element
failed on them.

 - payment, payment_supplier and payment_various had no branch. The branch of a
   customer payment tests $elementType and not $element, because the rule on the
   elements named myobject_mysubobject rewrites $element to 'payment' for
   'payment_salary' too, which is stored somewhere else.
 - job, position, skill and evaluation answered a wrong table (hrm_job_user for
   a position, and so on) and no sub directory, while their document tabs read
   one named after the element.
 - stocktransfer answered an empty classname, because it is not the ucfirst() of
   the element, so a caller doing new $classname($db) ended on a fatal error.
 - The sub directory was concatenated even when the module is disabled and the
   directory is empty, which answered a path at the root of the file system.
 - A contact and a conference are stored into a sub directory their tab reads.

isModEnabled('invoice') is tested for a customer payment: there is no module
named 'compta', so testing it was always false, while $conf->compta->payment is
set unconditionally by Conf::setValues() and could not be used as a proxy.

* FIX Access refused to everyone on 11 objects of the core

restrictedArea() and checkUserAccessToObject() refuse the access to objects that
no permission and no rule can match, whatever the user, an administrator
included.

 - The hrm module declares no permission at its first level, only 'all', and the
   stocktransfer module only 'stocktransfer'. A check on the module itself
   therefore tests a permission that does not exist. The mapping is the same one
   as into User::hasRight().
 - The module of an event organization declares no permission at all, its whole
   permission block being commented out on purpose, and its cards check the
   parent project instead. The feature is mapped onto that project, with the two
   guards the card has: an external user is refused, and so is a conference with
   no parent project, whose id of 0 would otherwise grant an access with no check
   on the record at all.
 - The default rule of checkUserAccessToObject() builds its sql on the columns
   entity and fk_soc of the table. llx_asset, llx_paiement, llx_paiementfourn and
   llx_workstation_workstation have no fk_soc, and llx_hrm_job, llx_hrm_job_user
   and llx_hrm_skill have neither. The sql failed, so the access was refused to
   every user this rule applies to. These tables are now checked on their entity
   only, which is what the $check rule already does for the same class of tables,
   and the 3 tables of hrm can be checked on nothing at all. The rule is selected
   on the table and not on the element, because $object is an id and not an
   object for most of the callers, the cards of an asset and of a workstation
   included, which are broken today for any user without the permission to see
   all third parties.
 - An external user is refused explicitly on those tables: none of these objects
   is linked to a third party, so the default rule refused him through a link
   that does not exist, and the rules that replace it do not look at the third
   party of the user at all.

Measured on a vanilla instance with 5 profiles, an administrator, an internal
user with every right, one without the permission to see all third parties, one
that is not a sales representative of the third party of the object, and an
external user: the 11 objects go from refused to granted for the internal users
and stay refused for the external one, and the 26 other elements answer exactly
the same for the 5 profiles.

* FIX A file dropped on a card is lost, or reported as refused when it was stored

FileUpload stores the file into a directory that the "Attached files" tab of the
object never reads, so the user attaches a file that no screen will ever show,
and nothing is indexed in database to find it back. Measured on real databases:
216487 thirdparties over 216887 and 157852 products over 280319 are in that case
on the cards that already enable the drag and drop.

 - The directory of the object is now forged with get_exdir(), the way the tabs
   do: it always uses the id for a thirdparty, whose ref is a company name and is
   not unique, and it falls back on the id when the ref is empty. The sub
   directory of the module is read with getMultidirOutput(), which knows the
   elements that store their documents into one. That function does not return
   an empty string when it fails but a string starting with 'error-', so only an
   absolute path is accepted: writing into that string would create the files
   under the web root.
 - fetchObjectByElement() returns an object even when fetch() returned 0. The
   object was then not loaded, and the file was stored at the root of the
   directory of the module, out of any object. The constructor now throws, and
   the endpoint answers the error with the same json contract than a successful
   call so that the caller can show it, instead of a fatal error and an http 500.
 - An attachment of the same name was silently overwritten, dol_move_uploaded_file()
   being called with $allowoverwrite = 1 while the name was checked before the
   ref of the object was added as a prefix. The check is done again on the final
   name, and on the .noexe suffixed name too, which that function appends to an
   executable file.
 - An executable file was renamed with that .noexe suffix and then reported as an
   error, while it was correctly stored.
 - The endpoint called restrictedArea() with an empty feature when the element is
   unknown, and the loop of that function then takes no branch at all and grants
   the access with no check. It refuses before, with the same http code and the
   same message than a refusal, so that a user cannot tell an object that exists
   but is not allowed from an object that does not exist. The refusal of an
   external user on an object of another third party answered a message of its
   own, which allowed the same enumeration.

Comes with the tests of the path resolution, of the fallback of get_exdir(), of
the rejection of the error string of getMultidirOutput(), and of the file name
deduplication.

* FIX Remove the drop area from 13 cards where dropping a file is harmful

Two distinct groups, both of them removing a drop area that only produces a
result the user does not want.

7 pages have no "Attached files" tab at all, so a file dropped on them can be
reached by no screen: a fiscal year and its info page, an accounting model, a
webhook trigger history, an intracomm report, a bookcal calendar and its booking
list. Measured: 4 of them accepted the upload and wrote an orphan file, the
accounting model wrote it at the root of the directory of the module, out of any
object, and the 2 bookcal ones answered an http 500.

6 cards print their tabs inside their edit form, so the drop area covered that
form: a product, an expense report, a VAT payment, a social contribution, a loan
and a salary. Dropping a file there reloads the page, which discards what the
user is typing. A product and an expense report have a second call for the read
only view, so the drop area is only removed from the call of the edit branch;
the 4 others share a single call between both views, so the parameter is now
conditional.

* NEW Drag and drop a file on the 23 remaining cards

Every card of the core that owns an "Attached files" tab can now receive a file
by drag and drop, which was the case of 32 of them only. The 23 added here are
an asset, an event, a various payment, a customer payment, a contact, a donation,
a conference or booth, a shipment, a supplier payment, a leave request, an
evaluation, a job, a position, a skill, a knowledge record, a manufacturing
order, a partnership, a lot, a stock transfer, a task, a reception, a resource
and a workstation.

The tab bar of a leave request and of a resource is printed inside their edit
form, so the drop area is not enabled there: dropping a file reloads the page,
which would discard what the user is typing. The card of a supplier payment
prints its tab bar even when the object was not loaded, so the drop area is only
enabled when it is.

* FIX getMultidirOutput refuses an entity with no directory instead of falling back [skip-claudemd]

The previous revision of this PR fell back on the directory of the current
entity when the entity of the object had none, with a LOG_WARNING. On a
multicompany install that made a caller read, write and above all delete
files in the directory of another entity. Refuse instead: the function
already answers 'error-diroutput-not-defined-for-this-object' when the
module declares no directory at all, so the caller has one behaviour to
handle, not two.

The entity is cast to int, which is what the array index needs and what
silences the four PhanTypeMismatchDimFetchNullable this function reported.

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-08-19 02:46:21 +02:00
MDW
63833674bb
Qual: Fix PHPStan notices (#38039)
* Qual: Fix PHPStan notices

# Qual: Fix PHPStan notices

Fix multiple PHPStan notices, mostly possibly undefined variable

* Qual: Fix Phan notices

* Qual: Fix Phan notice, $id declared before include

* Fix array initialisations

* Qual: Update phpstan baseline

* Qual: Fix Phan notices

* Qual: Update phan baseline
2026-05-11 20:39:31 +02:00
kkhelifa-opendsi
4a7950a1e6
FIX #33038 drag and drop files are not prefixed with object reference (second time because not fix not propagated from 18.0) (#37860) 2026-04-14 11:55:10 +02:00
splohmer
f919a83721
FIX upload of files with multiple spaces via drag'n'drop flow (#37271)
* Debug savedemo

* Fix mention

* FIX upload of files with multiple spaces via drag'n'drop flow

Currently there are two ways to upload files to products, orders, etc. via the "old" way and the document tab and the "new" flow via drag'n'drop on the main tab of the object.

Both ways triggering completely different code paths. In the end the new way uses dol_sanitzieFileName to sanitize the name of the file and the old way uses dol_string_nohtmltag (both from functions.lib.php).

One of the main difference between the two mentioned functions is that in the old way multiple spaces behind each other are replaced by a single space. E.g. "A␠␠B␠␠␠C␠␠D" is tranformed to "A␠B␠C␠D".

This is needed to make sure that the files are properly uploaded and can be later also downloaded correctly.

How to reproduce?
Upload a file like "test␠␠test.txt" via the drag'n'drop flow and try to download it from the document tab. This is not working. You can see the file but cannot download it. The same flow via the input field of the document tab is working correctly.

* typo in comment

* FIX Phan warnings (unrelated to feature)

* FIX Phan warnings (unrelated to feature)

* FIX Phan warnings (unrelated to feature)

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-23 20:08:30 +01:00
Laurent Destailleur
e80a9929c0 Debug v23. dolChmod required after file_puts_content 2025-12-15 16:57:06 +01:00
ldestailleur
86564e0c03 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2025-04-15 20:28:52 +02:00
ldestailleur
3d8704ae63 Prepare code for a better implementation of #33857 2025-04-15 20:24:34 +02:00
MDW
c3104905b3
Qual: Fix phan notices (html/core) (#33474)
* FIX: Replace compromised tj-actions/changed-files

# FIX: Replace compromised tj-actions/changed-files

See https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised .

* Add changed php file for test

* Qual: Fix phan notices (html/core)

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2025-03-15 16:34:35 +01:00
MDW
7150af31dc
Fix Phan notices introduced since 30/12/2024 2025-01-27 13:24:29 +01:00
MDW
67e9eaff46
Qual: Fix phan/phpstan notices in class files (part 2) (#31523)
* Qual: Fix phan notices in class files (part 2)

* Qual: Fix phan notices doleditor...events.class

* Qual: Fix phan notices defaultvalues...formprojet.class

* Qual: Fix notices formsetup...formwebsite.class

* Qual: Fix phan notices in class files (part 2)

* Qual: Fix phan notices doleditor...events.class

* Qual: Fix phan notices defaultvalues...formprojet.class

* Qual: Fix notices formsetup...formwebsite.class
2024-10-26 18:24:40 +02:00
Frédéric FRANCE
80d1f47d4d
fix ignored phpstan (most of expects string, int given) (#30649)
* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

fix ignored phpstan

fix ignored phpstan

fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

fix ignored phpstan

fix ignored phpstan

fix ignored phpstan

fix ignored phpstan

fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* fix ignored phpstan

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* more ignore

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan

* fix phpstan
2024-09-05 16:05:37 +02:00
Laurent Destailleur
e5609f4617 Fix phpstan 2024-07-31 13:44:48 +02:00
MDW
83d8f9cdd7
Fix: Ensure string type for urlencode() 2024-03-09 16:55:43 +01:00
MDW
8592f6ba49
Qual: Apply automatic phan fixes (deprecations, unneeded imports) (#28154)
* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).

* Qual: Apply automatic phan fixes (deprecations, unneeded imports)

# Qual: Apply automatic phan fixes (deprecations, unneeded imports)

This applies automatic fixes by phan for deprecated functions, unneeded imports).
2024-02-13 21:46:12 +01:00
Laurent Destailleur
ca0a3432b6 Fix phpcs 2024-02-09 16:00:35 +01:00
MDW
7b54824d49
Fix #28071 - New branch to fix bad merge (#28083)
* Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

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

* Qual: Introduce getDataToShowPhoto to prepare generic code

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

* Fix missing trans

* Fix langs

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

* Remove useless files in web templates

* Clean code

* Fix duplicate translation key

* Fix duplicate translation key

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

* Fix duplicate key

* Fix $object

* Debug v19

* WIP SMSing

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

* WIP EMAILINGS_SUPPORT_ALSO_SMS

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

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

* WIP SMSing

* Debug the "validate" feature

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

* Clean code

* Move rights->x->y into hasRight('x', 'y')

* Move rights->x->y into hasRight('x', 'y')

* Move rights->x->y into hasRight('x', 'y')

* Move rights->x->y into hasRight('x', 'y')

* Move rights->x->y into hasRight('x', 'y')

* Move rights->x->y into hasRight('x', 'y')

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

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

* Enhance rector to fix empty($user->rights->modulex->perm1)

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

* Fix template to use v19 dev rules

* Fix use v19 dev rules

* Fix phpunit

* Debug v19

* Clean code

* Use rector to convert user->rights into user->hasRight

* Clean code

* Use rector to convert user->rights into user->hasRight

* Use rector to convert user->rights into user->hasRight

* Clean code

* Fix phpcs

* add editorconfig for sql files (#27999)

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

* add model_pdf field in llx_ticket-ticket.sql (#27996)

* add model_pdf field in llx_ticket-ticket.sql

* Update 19.0.0-20.0.0.sql

* Update 19.0.0-20.0.0.sql

* Improve wording in README (#27994)

* fix phpstan (#27989)

* fix phpstan

* Update UserRightsToFunction.php

---------

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

* Qual: Fix spelling/working in datapolicy translations (#28006)

# Qual: Fix spelling/wording in datapolicy translations

Fixed some spelling and wording in datapolicy translations.

* qual: phpstan for htdocs/ticket/class/ticketstats.class.php (#27986)

htdocs/ticket/class/ticketstats.class.php	98	Parameter #1 $year (string) of method TicketStats::getNbByMonth() should be compatible with parameter $year (int) of method Stats::getNbByMonth()

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

* Fix user with readonly perm on email template must be able to read.

* Fix doc

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

* Better message

* Add missing fields in merge of thirdparty

* Debug v19 selection of ticket printer per terminal

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

* Use constant

* NEW: Adding a recipient on emails sent, change status to sent partialy.

* fix travis (#28052)

* fix travis

* Update partnership.class.php

* fix php doc (#28047)

* fix undefined array key (#28048)

* Add region and departament for Cuba (#28046)

* Update llx_10_c_regions.sql

Add Cuba Regions (id_country=77)

* Update llx_20_c_departements.sql

Add Provinces Cuba (id country=77)

* Find the typo (#28050)

* Find the typo

* clean code

* add last_main_doc field to product (#28045)

* add las_main_doc field to product

* add field fetch

* NEW Add Categorie filter for ActionComm (#28041)

* New Add Categorie filter for ActionComm

New Add Categorie filter for ActionComm

* Fix space errors

Fix space errors

* Fix space errors 2

Fix space errors 2

* Update cunits.class.php (#28056)

FIX: error SQL when creating a Cunit

* Update codespell-lines-ignore.txt to avoid PR merge conflict

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: Frédéric FRANCE <frederic34@users.noreply.github.com>
Co-authored-by: thibdrev <thibault.drevet@gmail.com>
Co-authored-by: sonikf <93765174+sonikf@users.noreply.github.com>
Co-authored-by: Ikarus <44511582+LeKarSol@users.noreply.github.com>
Co-authored-by: Anthony Damhet <73399671+EchoLoGeek@users.noreply.github.com>
Co-authored-by: Quentin-Seekness <72733832+Quentin-Seekness@users.noreply.github.com>
2024-02-09 15:58:49 +01:00
Laurent Destailleur
763d70cf52 Clean comment to avoid false alert with travis 2024-02-08 01:50:03 +01:00
Laurent Destailleur
4d49dfc161 Qual: Removed dead code 2024-02-07 22:18:45 +01:00
Laurent Destailleur
32e205b5d1 Clean code 2024-02-02 19:50:43 +01:00
MDW
89004f7e03
Qual: Spelling htdocs/core (#27491)
Highlights:
- initialY in pdf_standard.modules.php was unused
  - remove (otherwise -> initially) (+same in other file)
2024-01-13 19:48:20 +01:00
Laurent Destailleur
d21a5000a8 Fix #yogosha19665 2023-12-21 11:48:00 +01:00
Laurent Destailleur
fbf91cc211 Fix #yogosha19665 2023-12-21 11:43:30 +01:00
Laurent Destailleur
54e6de0d7f Fix with php-cs-fixer 2023-12-04 12:04:36 +01:00
Laurent Destailleur
570ff85433 Debug v18 2023-07-10 22:45:15 +02:00
Laurent Destailleur
0a8e7e3208 Debug v18 - drag drop bank 2023-06-11 01:07:21 +02:00
Laurent Destailleur
f61f425231 NEW upload a file by drag and drop on social contribution and salary 2023-05-04 17:28:42 +02:00
Laurent Destailleur
8e0db1071a Fix warning 2023-05-01 18:49:47 +02:00
hystepik
098e670008 add security and enable 2023-03-23 13:43:16 +01:00
Laurent Destailleur
a618bed16d Add phpunit for DDLUpdateField 2023-03-22 15:22:23 +01:00
Laurent Destailleur
6c110fb2b5 Fix warnings 2023-03-19 10:19:35 +01:00
Laurent Destailleur
6c259fa3b8 Doc 2023-03-12 14:19:25 +01:00
Laurent Destailleur
4b2a2c530e
Merge pull request #24079 from Daviid-P/allow_file_upload_not_linked_to_dolibarr_class
Allow FileUpload to be used when $fk_element and $element are null
2023-03-12 14:15:05 +01:00
Laurent Destailleur
54d1250887 Merge + Clean duplicate trigger code. We must use the context. 2023-03-02 02:19:24 +01:00
Laurent Destailleur
a62d029d7d Disable non secured feature 2023-03-01 21:37:18 +01:00
David Pareja Rodriguez
0e9451e100 fix should check the negative 2023-03-01 10:11:55 +01:00
David Pareja Rodriguez
2a706411cf fix wrong string concatenation 2023-03-01 08:44:06 +01:00
David Pareja Rodriguez
c2d6e9adcf Allow FileUpload to be used when $fk_element and $element are null but enforce a valid upload_dir 2023-03-01 08:33:52 +01:00
FLIO
9bf878a635 fix (qodana) delete the edit of the fuction post in the fileupload and edit the comment 2023-02-11 19:23:32 +01:00
FLIO
629f354800 fix(qodana) remove a var_dump 2023-02-08 19:20:55 +01:00
FLIO
cd289ca8ac fix(qodana) fix function comment wrong return 2023-02-08 19:09:05 +01:00
Laurent Destailleur
f8abd0b7f6 Debug bad params 2023-01-03 14:53:55 +01:00
Laurent Destailleur
6df4795ded Debug bad params 2023-01-03 14:47:00 +01:00
Laurent Destailleur
1b1e4e188e Debug v17 2022-12-31 17:17:21 +01:00
Laurent Destailleur
dd392143e1 Fix conf->projet conf->project 2022-06-14 17:53:17 +02:00
Regis Houssin
334baeffaa FIX syntax error 2022-05-20 17:37:36 +02:00
Regis Houssin
56d6dd0603 FIX scrutinizer 2022-05-20 17:34:37 +02:00
Laurent Destailleur
1934a37676 Escape to avoid false positive, even if it should be useless. 2021-11-07 17:35:43 +01:00
Frédéric FRANCE
a4e25359e7
add missing rule 2021-03-01 20:37:16 +01:00
Frédéric FRANCE
554e449e40
code syntax core directory 2021-02-23 22:03:23 +01:00
Scrutinizer Auto-Fixer
7f52920716 Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2020-10-31 13:32:18 +00:00