Odoo Community
Odoo Enterprise
Viindoo Cloud
One approval engine, for whatever needs approving
Approval types with their own approvers, sequence, minimum count and deadline - and a state mixin any document can inherit.
Approvals (technical name to_approvals) is an Odoo 17.0 app for Odoo Community and Odoo Enterprise and Viindoo Cloud, built for administrator, approver, requester, auditor.
At a Glance
The facts of Approvals, version 1.1.4, in one place. Published by Viindoo.
Technical name
to_approvals
Odoo version
17.0 (Odoo Community, Odoo Enterprise, Viindoo Cloud)
Category
Human Resources/Approvals
Depends on
viin_hr, to_base
Adds
10 new models, 3 extended models, 7 menus, 3 access groups
Best for
Administrator; Approver; Requester; Auditor
Not for
It is an engine, not an app.
Key features
Approval types per company, each with its own approver lines, Sequential approval, or several approvers at the same step, A minimum number of approvals, with a warning when it is exceeded, A deadline in days, and a manager-approval mode, What a request must carry: document, amount, date, location, partner, period, An approval-state mixin any model can inherit, plus a searchable current state, An overview counting requests waiting and approved per type
How It Works
Three screens - the engine has no requests of its own.
1
Every type, with its load
One card per type, counting what is waiting and what has been approved.
2
The types themselves
Purchase orders, contracts, deliveries, general requests - each with its own rule.
3
One type, in full
Approvers in sequence, the minimum number of approvals, the deadline, and what the request must carry.
What You Get
Approval types per company, each with its own approver lines
Sequential approval, or several approvers at the same step
A minimum number of approvals, with a warning when it is exceeded
A deadline in days, and a manager-approval mode
What a request must carry: document, amount, date, location, partner, period
An approval-state mixin any model can inherit, plus a searchable current state
An overview counting requests waiting and approved per type
More Screens
Everything below was taken on a database seeded with real business data, on this series - not a mock-up and not a screenshot from an older version.
What This App Does Not Do
Read this before you buy. Everything below is something the app deliberately leaves to another app or to you.
It is an engine, not an app.
The requests themselves come from OmniApproval and the apps that route through it.
It does not approve documents by itself.
A document opts in through the state mixin; that link is the app's job, not the engine's.
Conditions are Python expressions, for administrators.
A condition on a step is evaluated in a restricted sandbox and is meant for a configurator, not an end user.
One company's types do not apply to another.
Types are company-scoped, deliberately - approval routes rarely survive a border.
Works Well With
Apps from the same stack, built to fit this one:
Who Should Use Approvals?
Administrator
Defines the routes once, instead of asking for a developer per app.
Approver
Gets requests in the order the type says, not all at once.
Requester
Sees where the request stands and who is holding it.
Auditor
Reads the rule that was in force and the trail it produced.
Frequently Asked Questions
What does Approvals do?
Approval types with their own approvers, sequence, minimum count and deadline - and a state mixin any document can inherit.
What does Approvals not do?
It is an engine, not an app. The requests themselves come from OmniApproval and the apps that route through it. It does not approve documents by itself. A document opts in through the state mixin; that link is the app's job, not the engine's. Conditions are Python expressions, for administrators. A condition on a step is evaluated in a restricted sandbox and is meant for a configurator, not an end user. One company's types do not apply to another. Types are company-scoped, deliberately - approval routes rarely survive a border.
Who is Approvals for?
Administrator: Defines the routes once, instead of asking for a developer per app. Approver: Gets requests in the order the type says, not all at once. Requester: Sees where the request stands and who is holding it. Auditor: Reads the rule that was in force and the trail it produced.
Which Odoo version and editions does it support?
Odoo 17.0 - Odoo Community, Odoo Enterprise, Viindoo Cloud. Upgrades to a newer Odoo series are a separate purchase for that series.
What does it depend on?
It installs on top of: viin_hr, to_base. Odoo installs them with it.
How do I set it up?
Three screens - the engine has no requests of its own.
What works well with it?
OmniApproval (viin_approval): The request app built on this engine. Procurement Approval (to_procurement_approval): Purchasing routed through it. Maintenance Approval (to_maintenance_approval): Maintenance requests routed through it.
Can I try it before buying?
Yes - the Live Preview button at the top of this page opens the module's own screen on a working database.
How do I get support?
Write to apps.support@viindoo.com with your Odoo version and the technical name to_approvals; pre-sales questions go to sales@viindoo.com.
Need help with Approvals?
For questions, implementation support or a custom feature, contact Viindoo.
Upgrades to a newer Odoo series are a separate purchase for that series.
All Viindoo apps: apps.odoo.com/apps/modules/browse?author=Viindoo
About Viindoo. Viindoo builds and maintains more than 1,000 apps on the Odoo App Store for the Community and Enterprise editions and runs them on Viindoo Cloud. A purchase of Approvals covers the 17.0 series: bug fixes on the module reach you through the store, questions go to apps.support@viindoo.com with the technical name to_approvals, and moving to a newer Odoo series is a separate purchase for that series. Source code is delivered with the module and stays yours to read and adapt.
Technical Requirement
Editions: Odoo Community, Odoo Enterprise, Viindoo Cloud
Changes log
1.1.4 - Latest on the 17.0 line
- Approver steps can be resolved by a rule instead of a fixed user.
- The minimum-approvals warning is configurable per type.
Installation
- Navigate to Apps.
- Search with keyword to_approvals.
- Press Install.
How to use
Instruction video: Approvals
Manage Approval requests
Create a request
Go to the Approval module, on the Approval main view, select the approval type you want to create the request, and press Create Request to create an approval request.
Press Save to save the draft request, and press Submit to change its status to To Approval.
Approval the requests
After the approval requester press Submit, the system will send a notification to all approvers at the same time or level by level (depending on the setting on the Approval type).
On the approval request, the Approve Schedule activities will be auto-scheduled for the approver.
Now the approver can approve or refuse the request:
- If refused: The request will immediately be moved to the Refused stage without needing the next approval levels.
- If Approved: The request will be pushed to the next approver or moved to the Approved stage if this is the last approval level.
This software and associated files (the "Software") may only be
used
(executed, modified, executed after modifications) if you have
purchased a
valid license from the authors, typically via Odoo Apps,
or if you
have
received a written agreement from the authors of the
Software (see the
COPYRIGHT file).
You may develop Odoo modules that use the Software as a library
(typically
by depending on it, importing it and using its
resources), but
without
copying any source code or material from the
Software. You may distribute
those modules under the license of your
choice, provided that this
license
is compatible with the terms of
the Odoo Proprietary License (For
example:
LGPL, MIT, or proprietary
licenses similar to this one).
It is forbidden to publish, distribute, sublicense, or sell
copies of the
Software or modified copies of the Software.
The above copyright notice and this permission notice must be
included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT
SHALL THE
AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING
FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE
SOFTWARE.