The master plan finally comes to an end. Thanks to: - odoo/odoo#87522 refactoring `load_views`, - odoo/odoo#94337 refactoring `common.Form` to prevent changing invisible fields in unit tests using `Form` instances, - odoo/odoo#95729 refactoring the behavior of `groups=` in views, - odoo/odoo#98551 removing the need of the `groups_id` many2many field on back-end views. The result returned by `get_view`/`get_views` can now finally be easily and efficiently cached, in order to cache back-end views. The goal of this revision is to cache the model views and fields already post-processed for the web client (with the modifiers, etc., already computed) without group restriction. Then, from this cached version, post-process group related features, such as removing nodes restricted with a `groups=` attribute, set the create/write button according to the user access rights to models, ... Not including the groups in the cache key allows: - to have less cached versions, (otherwise it would be one cached version per different group combination) - to not have to fetch the user groups to compute the key (with the current cache key, there is nothing to fetch from the database to compute the key) Besides, post-processing the groups features after taking the view from the cache of the view doesn't take a tremendous time: - parsing arch from/to string with etree is fast, - removing the `groups=` nodes using etree is fast, - adding the `create="False"`, `write="False"`, `delete="False"` on the view root node according to the access right of the user on the model is fast. This allows way faster calls to `get_views` by the web client, as the server no longer need, for each call, to fetch the views in database, combine the inherited views, post-process the modifiers attributes, etc. Timing tests are available on the pull request of this revision. Part-of: odoo/odoo#99417
Project Management
Infinitely flexible. Incredibly easy to use.
Odoo's collaborative and realtime open source project management helps your team get work done. Keep track of everything, from the big picture to the minute details, from the customer contract to the billing.
Designed to Fit Your Own Process
Organize projects around your own processes. Work on tasks and issues using the kanban view, schedule tasks using the gantt chart and control deadlines in the calendar view. Every project may have its own stages, allowing teams to optimize their job.
Easy to Use
Get organized as fast as you can think. The easy-to-use interface takes no time to learn, and every action is instantaneous, so there’s nothing standing between you and your sweet productive flow.
Work Together
Real-time chats, document sharing, email integration
Use the chatter to communicate with your team or customers and share comments and documents on tasks and issues. Integrate discussion fast with the email integration.
Talk to other users or customers with the website live chat feature.
Collaborative Writing
The power of etherpad, inside your tasks
Collaboratively edit the same specifications or meeting minutes right inside the application. The integrated etherpad feature allows several people to work on the same tasks, at the same time.
This is very efficient for scrum meetings, meeting minutes or complex specifications. Every user has their own color and you can replay the whole creation of the content.
Get Work Done
Get alerts on followed events to stay up to date with what interests you. Use instant green/red visual indicators to scan through what has been done and what requires your attention.
Timesheets, Contracts & Invoicing
Projects are automatically integrated with customer contracts, allowing you to invoice based on time & materials and record timesheets easily.
Track Issues
Single out the issues that arise in a project in order to have a better focus on resolving them. Integrate customer interaction on every issue and get accurate reports on your team's performance.