Bug #88452
openTCA field type inline ignores l10n_mode "exclude"
0%
Description
- Add a field of type "inline" with l10n_mode="exclude" and l10n_display="defaultAsReadonly" to the TCA of a table with translation stuff (languageField, origUid ...)
- Set the foreign_table and foreign_field of the new field to a table without translation stuff (e.g. a table of participants with relations to a fe_user)
- Open a new or existing record of the table with the new inline field and add one or more inline records (e.g. participants)
- Save the record and create a translation of it
- Watch the normaly viewed and still editable inline records inside the translated record
As far as I understood the TCA manual, l10n_mode="exclude" together with l10n_display="defaultAsReadonly" should prevent, that a record added in the default view whould be editable in a translated record, which is currently not the case.
In addition, which is even worse in my eyes, everytime this record is saved over the backend, a new "translated" (without any translation fields) record of the inlined table with the foreign_field value of the translated record will be created and if a record of this kind already exists this will be marked as deleted. This delete and recreated happens after every save button press, which results in table entries like this:
uid pid education fe_user flag1 flag2 deleted hidden tstamp crdate cruser_id
1 51 1138 1424 1 0 0 0 1559057912 1559055866 1
2 51 1139 1424 1 0 1 0 1559056513 1559055866 1
3 51 1139 1424 1 0 1 0 1559056559 1559056513 1
4 51 1139 1424 1 0 1 0 1559056590 1559056559 1
5 51 1139 1424 1 0 1 0 1559057892 1559056590 1
6 51 1139 1424 0 0 1 0 1559057912 1559057892 1
7 51 1139 1424 0 0 0 0 1559057912 1559057912 1
1138 is the uid of the default parent record, 1139 is the uid of the translated record. "flag1" is a value which is changed in the translated parent record, which should not be possible (defaultAs*Readonly*).
Additional a change in the "flag1" field applied over the default parent record will be not transfered to it's translated record (which btw. should actually not exists).