* The tours are now run by the `MacroEngine` defined in `macro.js`.
* This is accomplished by converting (at runtime) the user-defined tours to
`Macro`s. See `tour_compilers.js` for the step (and tour-to-macro) compilation.
* API is kept the same as much as possible. Basically, declaring tours stayed
the same with some exceptions:
* `allowInvisible` can be provided in a step to allow consuming the trigger
element even if it is invisible.
* `isCheck` can now be used to replace the no operation `run` that is
traditionally signals the runner to only perform a check.
* Before, multiple `run`s can be called simultaneously. Now, each `run` method
is awaited before proceeding to the next step.
* If the trigger element is `disabled`, the tour runner will *not* proceed on
calling the `run` method and the runner will stay on current step until the
trigger element becomes `enabled`.
* However, the tour runner is okay with `disabled` trigger element if the step
has `isCheck = true`. As long as the trigger element is found for `isCheck`
step, the tour runner will happily move to the next step.
* Some tours are adjusted to properly run with this new tour runner.
* When the tour failed:
* The dom string is not logged anymore.
* However, a warning message containing the relative location of the step will
be logged. This is better in helping the author in locating the failed step.
**Some guidelines learned during the development:**
* Each step may trigger a dom mutation. It's a good practice to insert an
intermediate step that *checks* the existence of an element that result from
the action of the previous step.
* Refrain from using the `run` method for assertions. `run`, in principle, is
provided to perform actions that are not offered by the helper. Use the
`trigger` for assertions.
* During dev, find `SHOW_POINTER_DURATION` and set it to `250`. This will show
the pointer (pointing to the trigger element) for 250ms when watching the
tour.
closes odoo/odoo#107618
Task-id: 3082036
Related: odoo/enterprise#37560
Signed-off-by: Géry Debongnie <ged@odoo.com>
Co-authored-by: Julien Mougenot <jum@odoo.com>
Odoo Human Resources
With Odoo Human Resources, manage the most important asset in your company: People
Get all your HR operations managed easily: knowledge sharing, recruitments, appraisals, timesheets, contracts, attendances, payroll, etc.
Each need is provided by a specific app that you activate on demand.
Manage Your Employees
Oversee all important information in your company address book. Some information are restricted to HR managers, others are public to easily look colleagues.
Record employee contracts and get alerts when they have to be renewed.
Streamline Your Recruitment Process
Index resumes, track applicants, search profiles with Odoo HR.
Post job offers and keep track of each application received. Follow applicants in your recruitment process with the smart kanban view.
Save time by automating some communications with email templates. Resumes are indexed automatically, allowing you to easily find for specific profiles.
Enterprise Social Network
Break down information silos. Share knowledge and best practices amongst all employees. Follow specific people or documents and join groups of interests to share expertise and documents.
Interact with your coworkers in real time with website live chat.
Track time and attendances
Keep track of the time spent by project, client or task. It's easy to record timesheets or check attendances for each employee. Get your analytic accounting posted automatically based on time spent on your projects.
Time Off Management
Keep track of the vacation days accrued by each employee. Employees enter their requests (paid time off, sick time off, etc), for managers to approve and validate. It's all done in just a few clicks. The agenda of each employee is updated accordingly.
Keep Track of Employee Expenses
Get rid of the paper work and follow employee's expenses directly in Odoo. Don't loose time or money by controlling the full flow: expense validation, reimbursement of employees, posting in the accounting and re-invoicing to customers.
Follow Periodic Appraisals
Set-up appraisals plans and/or surveys for your employees and watch their evolution. Define steps for interviews and Odoo will notify managers or subordinates automatically to prepare appraisals. Keep track of the progress of your staff periodically.
Boost Engagement With Gamification
Define clear objective and provide real time feedback
Inspire achievement with challenges, goals and rewards. Define clear objectives and provide real time feedback and tangible results. Showcase the top performers to the entire channel and publicly recognize a job well done.
Leaderboards
Promote leaders and competition amongst Sales Team with performance ratios.
Personal Objectives
Assign clear goals to users to align them with the company objectives.
Team Targets
Compare revenues with forecasts and budgets in real time.