2024-08-18 16:16:08 +00:00
-- Copyright (C) ---Replace with your own copyright and developer email---
2017-05-08 19:00:23 +00:00
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
2019-09-23 19:55:30 +00:00
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
2017-05-08 19:00:23 +00:00
2019-12-17 13:47:58 +00:00
-- delete from llx_mymodule_myobject;
- - INSERT INTO llx_mymodule_myobject VALUES ( 1 , 1 , ' mydata ' ) ;
-- delete from llx_c_mydictionarytabme;
- - INSERT INTO llx_c_mydictionarytabme ( code , label , active ) VALUES ( ' ABC ' , ' Label ABC ' , 1 ) ;
- - INSERT INTO llx_c_mydictionarytabme ( code , label , active ) VALUES ( ' DEF ' , ' Label DEF ' , 1 ) ;
-- new types of automatic events to record in agenda
NEW: ModuleBuilder - consistent status labels and explicit trigger naming (#38883)
* NEW : Derive ModuleBuilder status labels from arrayofkeyval
LibStatut() in the ModuleBuilder object template hardcoded the
Draft/Enabled/Disabled labels, which diverged from the labels defined
in the 'status' field arrayofkeyval used by the list filter and the
select. Build labelStatus/labelStatusShort from arrayofkeyval so the
badge, the filter and the select all show the same configurable labels.
Add ModuleBuilderTemplateConventionsTest covering the derivation.
Next: normalize trigger codes to MYMODULE_MYOBJECT_ACTION in class line 637 + typo line 50, sql/data.sql lines 27/30-32, myobject_card.php line 378; extend the test with trigger assertions.
* NEW : Use explicit MODULE_OBJECT_ACTION trigger naming in template
The ModuleBuilder object template emitted the validate trigger as the
generic MYOBJECT_VALIDATE, inconsistent with the MYMODULE_MYOBJECT
prefix already advertised by $TRIGGER_PREFIX and used by the
unvalidate/cancel/reopen/sentbymail trigger codes. Normalize the
validate trigger, the seed data.sql agenda triggers and the close
notification example to the MYMODULE_MYOBJECT_<ACTION> policy so
generated modules expose clear, non-ambiguous trigger codes. Also fix a
typo in the $TRIGGER_PREFIX comment.
Extend ModuleBuilderTemplateConventionsTest with trigger naming checks.
Next: ChangeLog entry covering both features, then dolibarr-audit + functional verification, then push to remote quentin and run pr-review-v2.
* DOC : Add ChangeLog entries for ModuleBuilder status labels and triggers
Next: dolibarr-audit on both features, then functional verification, then push to remote quentin and run pr-review-v2.
* FIX : Guard ModuleBuilder LibStatut against undefined status key
Hardening from audit: when LibStatut() is called with a status value
that is not present in the 'status' field arrayofkeyval, reading
labelStatus/labelStatusShort raised an undefined-array-key warning under
PHP 8. Default both labels to an empty string, which dolGetStatus
already accepts, so the badge degrades gracefully to the status code.
Next: push branch to remote quentin and run dolibarr-pr-review-v2 on the full diff vs develop.
* CHORE Drop the files CONTRIBUTING forbids to edit in a PR [skip-claudemd]
ChangeLog is generated from the commit messages at release time, and the
language files other than en_US are synced from Transifex.
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: Alexandre SPANGARO <aspangaro.dolibarr@gmail.com>
2026-08-17 19:41:18 +00:00
-- 'code' must be a value matching 'MYMODULE_MYOBJECT_ACTION'
2019-12-17 13:47:58 +00:00
-- 'elementtype' must be value 'mymodule' ('myobject@mymodule' may be possible but should not be required)
2025-04-03 13:59:30 +00:00
NEW: ModuleBuilder - consistent status labels and explicit trigger naming (#38883)
* NEW : Derive ModuleBuilder status labels from arrayofkeyval
LibStatut() in the ModuleBuilder object template hardcoded the
Draft/Enabled/Disabled labels, which diverged from the labels defined
in the 'status' field arrayofkeyval used by the list filter and the
select. Build labelStatus/labelStatusShort from arrayofkeyval so the
badge, the filter and the select all show the same configurable labels.
Add ModuleBuilderTemplateConventionsTest covering the derivation.
Next: normalize trigger codes to MYMODULE_MYOBJECT_ACTION in class line 637 + typo line 50, sql/data.sql lines 27/30-32, myobject_card.php line 378; extend the test with trigger assertions.
* NEW : Use explicit MODULE_OBJECT_ACTION trigger naming in template
The ModuleBuilder object template emitted the validate trigger as the
generic MYOBJECT_VALIDATE, inconsistent with the MYMODULE_MYOBJECT
prefix already advertised by $TRIGGER_PREFIX and used by the
unvalidate/cancel/reopen/sentbymail trigger codes. Normalize the
validate trigger, the seed data.sql agenda triggers and the close
notification example to the MYMODULE_MYOBJECT_<ACTION> policy so
generated modules expose clear, non-ambiguous trigger codes. Also fix a
typo in the $TRIGGER_PREFIX comment.
Extend ModuleBuilderTemplateConventionsTest with trigger naming checks.
Next: ChangeLog entry covering both features, then dolibarr-audit + functional verification, then push to remote quentin and run pr-review-v2.
* DOC : Add ChangeLog entries for ModuleBuilder status labels and triggers
Next: dolibarr-audit on both features, then functional verification, then push to remote quentin and run pr-review-v2.
* FIX : Guard ModuleBuilder LibStatut against undefined status key
Hardening from audit: when LibStatut() is called with a status value
that is not present in the 'status' field arrayofkeyval, reading
labelStatus/labelStatusShort raised an undefined-array-key warning under
PHP 8. Default both labels to an empty string, which dolGetStatus
already accepts, so the badge degrades gracefully to the status code.
Next: push branch to remote quentin and run dolibarr-pr-review-v2 on the full diff vs develop.
* CHORE Drop the files CONTRIBUTING forbids to edit in a PR [skip-claudemd]
ChangeLog is generated from the commit messages at release time, and the
language files other than en_US are synced from Transifex.
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: Alexandre SPANGARO <aspangaro.dolibarr@gmail.com>
2026-08-17 19:41:18 +00:00
- - insert into llx_c_action_trigger ( code , label , description , elementtype , rang ) values ( ' MYMODULE_MYOBJECT_VALIDATE ' , ' MyObject validated ' , ' Executed when myobject is validated ' , ' myobject@mymodule ' , 1000 ) ;
- - insert into llx_c_action_trigger ( code , label , description , elementtype , rang ) values ( ' MYMODULE_MYOBJECT_UNVALIDATE ' , ' MyObject unvalidated ' , ' Executed when myobject is unvalidated ' , ' myobject@mymodule ' , 1001 ) ;
- - insert into llx_c_action_trigger ( code , label , description , elementtype , rang ) values ( ' MYMODULE_MYOBJECT_DELETE ' , ' MyObject deleted ' , ' Executed when myobject deleted ' , ' myobject@mymodule ' , 1004 ) ;