[19.0][ADD] web_timeline_gantt_ux: Enterprise-style Gantt UX for timeline views - #3625
Open
nghorbani wants to merge 1 commit into
Open
[19.0][ADD] web_timeline_gantt_ux: Enterprise-style Gantt UX for timeline views#3625nghorbani wants to merge 1 commit into
nghorbani wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New module that layers an Enterprise-style Gantt UX on top of
web_timeline, opt-in per view via agantt_ux="true"arch attribute. Everything ispatch()-based:web_timelineitself is untouched, and views that do not opt in keep stock look and behavior bit for bit.We built this for our own project-task planning on Community 19.0 and have been running it in production; it is generic (nothing model-specific), so contributing it here where
web_timelinelives.What it adds
colors=rules become harmonized pills, weekend + today shading, today's axis label as a pill, day-snapped drags, and a stable window (the stock per-reloadfit()is suppressed in gantt mode, so the view never re-zooms after an edit).dependency_arrowlink. Client-side validation (self/duplicate/reverse), pending dashed arrow while the write is in flight, success toast with Undo, arrow click / focus+Delete removal with confirmation, and per-record gating when the model exposes anallow_task_dependencies-style field:Design notes
grp_<id>bands /rec_<id>rows) while item ids stay raw record ids, so the stock write paths keep working. The one stock coupling (the moveQueue group-by write, which would sendproject_id: "rec_42"on drags in row-per-record mode) is guarded by a regression test.search_readorders by the group-by field only, so database tie order would otherwise shuffle rows on every reload.Tests
static/tests/(bezier geometry, arch options, group building incl. row-order stability, model remap, controller move/add, drag validation, dependency writes, move cascade).tests/.Related
Known limitations (also in ROADMAP)