Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: apply duplicate i18n values on entry load #7145

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

demshy
Copy link
Member

@demshy demshy commented Mar 14, 2024

Summary
We are using a github-gateway implementation with 7 language variants on a pretty large website. For a while we were struggling with a bug, where every once in a while all the duplicated field values would be lost on one of the languages upon saving.
I suspect that when you create a new entry and the CMS entry is updated with the files it requests from Github for each language, sometimes one of the files is not loaded correctly and data is null. If you then publish again without switching to the "broken" language variant it will save the empty file.
There were also some cases when we already had the files, but added a duplicate field to the collection later on and the values were only saved to the default language.

This patch fixes the second part of this problem - when loading data it will apply the duplicate field values to all i18n variants, so it will get properly updated when published.
I need to test a few more edge cases with lists, so we don't create any breaking changes and will update this accordingly.

Test plan

i18n:
  structure: multiple_files
  locales: [en, hr, de, it, si, nl, pl]

  ...

  - name: offers
    folder: content/offers
    create: true
    i18n: true
    fields: [
      {name: title, label: Title, widget: string, i18n: true, pattern: ['^.{0,240}$', Max 240 characters]},
      {name: publishDate, label: Publish date, widget: datetime, picker_utc: true, hint: UTC timezone, i18n: duplicate},
      {name: hideOfferDate, label: Unpublish date, widget: datetime, picker_utc: true, hint: UTC timezone, i18n: duplicate, required: false},
    ]

This was my testing collection. Test case: create a new offer then manually clear one of the files. Open the default entry in CMS, change the title and publish.

  • before this patch: the file that you manually cleared will still be empty (even if you switched and changed the title it will not duplicate the untouched fields)
  • after this patch: the file will have all the duplicate field values

Checklist

Please add a x inside each checkbox:

A picture of a cute animal (not mandatory but encouraged)
20231219_104352m

@demshy demshy requested a review from a team as a code owner March 14, 2024 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants