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

The Return of the PuzzleTime Sync #730

Open
Robin481 opened this issue Jun 17, 2024 · 0 comments
Open

The Return of the PuzzleTime Sync #730

Robin481 opened this issue Jun 17, 2024 · 0 comments
Assignees
Labels
plan needs to be planned

Comments

@Robin481
Copy link
Member

Robin481 commented Jun 17, 2024

Once upon a time... We started the PuzzleTime Sync to make data less redundant.

This has now been a long time ago 😁

The following was the idea:

  • PuzzleTime becomes the source of truth in all person details
  • We run a nightly job that syncs the data from PuzzleTime -> PuzzleSkills
  • The fields in PuzzleSkills that are synced from PuzzleTime become read only and a relevant banner is displayed
  • There is a "manual sync" button that triggers the delayed_job that Carina or Tru can click after entering e new Member in PTime
  • When a new Member is added in PTime the delayed_job recognizes that and creates a new profile in PuzzleSkills
  • It needs to somewhat intelligently handle when someone gets renamed (when getting married or similar). For this we can probably just save the PuzzleTime Person ID in Skills and sync this way. (Meaning instead of comparing Robin Steiner is still named Robin Steiner we check if the ID is still 227, so if Robin Steiner gets renamed to Robin Müller it will be able to just change the name in PuzzleSkills)

There is this Branch from Miro's IPA: https://github.com/puzzle/skills/tree/sync_person_data

I would probably recommend to start over and use said branch as inspiration as just bringing it up to date would probably be quite annoying...

TODO:

  • Look at what the branch and its code does
  • Conceptualize how we could do this now
  • Write split up tickets to spread the needed changes over several tasks (write sync, implement delayed_job, make profile fields write only, tests etc. etc.)
  • Start working on the tickets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plan needs to be planned
Projects
None yet
Development

No branches or pull requests

4 participants