When writing to the normalized cache (record), it's crucial to use _refs
for relationships to avoid many problems. Essentially, we only deal with
level 0 and generate all fields to be comfortable with their defaults.
When writing in queries (which should be very rare, the only cases are
prefetch and the case of activities due to the nested query; I've
reduced this to a single file for activities
usePrepareFindManyActivitiesQuery 🙂), it's important to use queryFields
to avoid bugs. I've implemented them on the side of query generation and
record generation.
When doing an updateOne / createOne, etc., it's necessary to distinguish
between optimistic writing (which we actually want to do with _refs) and
the server response without refs. This allows for a clean write in the
optimistic cache without worrying about nesting (as the first point).
To simplify the whole activities part, write to the normalized cache
first. Then, base queries on it in an idempotent manner. This way,
there's no need to worry about the current page or action. The
normalized cache is up-to-date, so I update the queries. Same idea as
for optimisticEffects, actually.
Finally, I've triggered optimisticEffects rather than the manual update
of many queries.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* default value boolean fixed
* fixed creation, fixed updating a value to false
* fixed default value for default value if boolean
* fixed tests
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
* feat: wip refactor default-value
* feat: health check to migrate default value
* fix: tests
* fix: refactor defaultValue to make it more clean
* fix: unit tests
* fix: front-end default value
* fix: sever not throwing when enum contains two identical values
* fix: enum column name cannot be change
* fix: put field create/update inside transactions
* fix: check for options duplicate values front-end
* fix: missing commit transaction
* Being implementing events on the frontend
* Rename JSON to RAW JSON
* Fix handling of json field on frontend
* Log user id
* Add frontend tests
* Update packages/twenty-server/src/engine/api/graphql/workspace-query-runner/jobs/save-event-to-db.job.ts
Co-authored-by: Weiko <corentin@twenty.com>
* Move db calls to a dedicated repository
* Add server-side tests
---------
Co-authored-by: Weiko <corentin@twenty.com>
* feat: display record identifier field as first column in table
& forbid hiding and moving record identifier column
Closes#3303
* refactor: add availableTableColumnKeysSelectorScopeMap
* feat: show plus icon button for label identifier column and dropdown menu for other columns
* fix: use label identifier field value in RecordShowPage title
* refactor: remove availableColumnKeys selector
* refactor: review - compute label identifier logic in mapViewFieldsToColumnDefinitions + remove selectors
* fix: several fixes
* fix: fix board fields isVisible
* fix: fix board fields reordering
* fix: more board fields fixes
* fix: fix hiddenTableColumnsSelectorScopeMap
* refactor: apply relation optimistic effects on record update
Related to #3509
* refactor: remove need to pass relation id field to create and update mutations
* fix: fix tests
* fix: fix SingleEntitySelect glitch
* fix: fix usePersistField tests
* fix: fix wrong import after rebase
* fix: fix several tests
* fix: fix test types
* feat: display label identifier table cell as chip with link to RecordShowPage
Closes#3502
* Fix test
---------
Co-authored-by: Charles Bochet <charles@twenty.com>
* feat: set field as custom object label identifier in Object Detail
Closes#3302
* feat: prevent disabling Object label identitifer field in back-end
* refactor: review - extract isLabelIdentifier variable
* feat: display identifier field in Object Detail page for custom objects
Closes#3301
* fix: show Name as object label identifier by default
* Minor improvements
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* feat: add link to relation filtered table in Record Show Page
Closes#3125
* refactor: use generateFindManyRecordsQuery for optimization
* Fixes from review
* Minor fixes
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
* WIP
* Finished cleaning favorites create, update, delete on record show page
* Fixed context menu favorite
* Fixed relation field bug
* Fix from review
* Review
---------
Co-authored-by: Charles Bochet <charles@twenty.com>
* fix: display label identifier field input in Show Page
Fixes#3003
* Cleaned a bit after comments
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>