Monday, March 15, 2021
1 change · master
New functionality added to Odoo
Project teams can now publish structured updates that summarize a project's current status, progress, risks, and opportunities. The latest status is visible directly from project task views and project forms, making it easier for stakeholders to track project health and act early.
Original PR description
With this commit, we aim to add a functionality that gives an overview of the current status of a project by keeping track of its progress. Users can identity threats and opportunities. A project…
With this commit, we aim to add a functionality that gives an overview of the current status of a project by keeping track of its progress. Users can identity threats and opportunities. A project update can be seen as taking stock of the situation of a project. This commits adds the following functionalities : In relation to projects : 1) The project current status is shown in the control panel of each project tasks view : - This status is the status of the last posted update if it exists - If not, the status is a default status : 'On Track' 2) By clicking on this status, the user is redirect to : - If there exists a posted project update : The last project update - If not and exists a draft project update authored by the current user : this draft version - If not : a new project update is created 3) A project have a Deadline date 4) In the project form : - The status is shown on the right upper corner of the form sheet - Clicking this status has the same behaviour than the one in the control panel - The deadline date can be defined in the Settings notebook page - The partner_phone and partner email are no more shown on the form - A Stat Button indicates the number of posted updates In relation to project updates : 1) Every user can create, write and read a project update 2) A project update has a status which is defined by a name and a color. - Some statuses has been defined in the data : - On Track (the default one), Off Track, At Risk, On Hold - The user can define new statuses which can then be used in the same project (only) 3) A project update has a title, a progress, an html description. 4) A draft project update can be posted - to be visible to all users. 5) Once posted, a project update cannot be edited and a new Update Status can be created : - If the user is already the author of a draft update, the user is redirected to this update - If not, a new record is created. ================== Technical comments : 1) The control panel is extended and each project.project view must use a View including ProjectControlPanel as their ControlPanel. - The status is reload everytime the view changes to take into account the updates made by the user. This is the reason why we have to use the willUpdateProps Component method 2) We extend the RNG of 'activity' and 'map' to accept the definition of a js_class optional attribute. 3) We define a widget to easily See less/See more on a html field. As the html field renderer already does multiple computation regarding html syntax, the only check of this widget is a check regarding the fact that an html tag not cut. ================== TODO : 1) Include Milestones in the project update form ================== FIXME : 1) project : compute_last_update_id : The last update is, for each project, its posted update with the highest create-date. Computation can be done using raw SQL which implies less security. Current code is a for loop doing a search_read on each record. Task-239376 Enterprise : https://github.com/odoo/enterprise/pull/15574 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr