Slow month where we concentrate on reducing technical debt and optimizing the code. We fit in some new features and the constant bug-fixing activity. Nice!
Create Custom Fields with table and column name
We can now select the table and column names of custom fields in the layout editor. The table is a select box where we can choose between the custom and the main table of the module. The column name is a normal input box where we put the field name we want to create.
There is no duplication check on the field name so, be careful!
Features and Implementor/Developer enhancements
- add separate HTML element to the application message so we can set messages dynamically
- Backup System: We review, clean, and refactor the Backup code.
- GenDoc:
- permit relating generated document with any entity
- send "save as document" context information
- set generated document name into workflow context
- support field mapping business map and record context for setting fields in the generated document record
- Workflow now supports scheduled SQL with
getFromContext
- style Settings: eliminate background image in table headers
- Custom View now permits filtering on NULL/empty dates
- Custom View
None
selection in standard filters to delete them
EvolutivoFW Standard Code Formatting, Security, Optimizations, and Tests
- EvolutivoFW Standard Formatting (a lot)
- Documentation: code and wiki.
- function headers and help messages
- FieldInconsistency: comment about override parameter
__AcceptInconsistencies
- wiki documentation keeps going
- Refactor and Optimize code
- SonarQube recommendations. This month we made another BIG effort. Read why in the insights section.
- php:S6600 Remove the parentheses from return call
- php:S125 Remove this commented out code
- php:S1117 Local variables should not have the same name as class fields
- reduce duplicate code
- Rector basic set up and test in vtlib directory. Interesting tool!
- substitute variables for their value, reduce SQL columns, reduce query_result, simplify debug message, direct returns
- optimize reports endpoint calls to do less database operations
- PHP 8.4 testing and fixes
- update DOMPurify to 3.2.0
- update HTMLPurifier to 4.18
- CI: correct duplicate specification and exclude duplicate control
- Unit Tests: keeps getting more and more assertions. We increment the code coverage measure in one point!
- Anchors must have content and the content must be accessible by a screen reader Web:S6827
- use correct variable for AutoNumber workflow expression calculation
- add BrowserVariables initialization to Popup
- Calendar
- repeat events class and make methods private
- yearly repeat events interval was incorrect
- clean DMS UI for filename
- prevent Menu infinite loop and render the first menu if the default is deleted
- add label for detail view widget blocks in Layout Editor
- add decimal fields CSS to List View properties (lv-decimal-float)
- incorrect label in Mail Converter workflow option
- automatically check checkbox when editing textarea in MassEdit screen and skip read-only and hidden fields
- Master Grid
- first load detection separated for each instance
- init event variable for popup master grids
- Filter get sort options only if required, do not apply the second sort field if no sorting is active
- make Smarty methods and local property private
- delete unused variable and set autonumber to a more significant prefix in Tasks
- set parent_id record in Upload Widget context
getWSID
and getCRMID
support for special 0x format
- XML object reference as a string in vtlib
- Web Service
- decode HTML of queued operation result
- eliminate warning by setting a default value
- put in queue condition fix and optimization
- accepting non web service values for User reference fields (like other fields)
- Workflow
- SQL expression processing for math operations and maybe others too
- executeSQL expression for debugging
- pass workflow context on
Launch Workflow
rule evaluation
- allow editing of multi-picklist fields in the Upsert task
- Translations
After updating Sonarqube last month I fell into the gamification trap looking way too much at the dashboard numbers and putting in a lot of effort into optimizing the code base. I also tried out Rector, like I didn't have enough with Sonarqube! It is a very nice tool that can be helpful in the future once we get it configured correctly.
You can see the difference in KPIs this month.
November |
December |
|
|
Thanks for reading.