Create WorkItems::DatesSource model to record Work Items rolledup start/due dates

Create a database table and type migration to save the data

  • WorkItems::DatesSource
    • issue_id: int: association with the workitem
    • due_date: date: value for the due date, either manually set or calculated from a child
    • due_date_is_fixed: boolean: indicator if the due date was manually set
    • due_date_sourcing_work_item_id: int: id of the work item providing the due date
    • due_date_sourcing_milestone_id: int: id of the milestone providing the due date
    • start_date: date: value for the start date, either manually set or calculated from a child
    • start_date_is_fixed: boolean: indicator if the start date was manually set
    • start_date_sourcing_work_item_id: int: id of the work item providing the start date
    • start_date_sourcing_milestone_id: int: id of the milestone providing the start date
  • I liked that proposed structure and it seem to work well with the cases that I was able to test
  • With we decide to reduce the amount of data on the issues table, we could use the work_items_dates_source for all WorkItem's start/due date. This table could be used as a source to two different widgets:
    • StartDueDate: fixed start and due dates, this is currently managing the start/due dates on the issues table
    • CalculatedStartDueDate fixed or calculated start and due dates (or InheritableDates/ChildrenDates/PulledDates/RaisedDates/RolledUpDates, whatever the best name can be)

further discussion on this proposal in: #425201 (comment 1652166983)

Edited by Kassio Borges