📄 Rental Equipment Inspections - Administrator Guide

1. Overview

The Rental Equipment Inspections module extends Odoo's native rental order functionality (sale_renting) to provide structured, template-driven equipment condition inspections at pickup and return. As administrator, your primary responsibilities are designing inspection templates that reflect your operational requirements, assigning those templates to the appropriate product categories, and managing user access so that the right people can create and complete inspections.

The module ships with four pre-loaded templates covering Heavy Equipment and Small Equipment categories for both pickup and return inspection types. These are provided as a starting point. You will typically need to review and extend them to match your actual equipment and operational standards.

Key design principle: The system is category-driven, not product-driven. Inspection templates are assigned to product categories, not to individual products. All products in the same category will use the same template. If different products require different checklists, they must be in different product categories.

2. How the Module Works

Understanding the data flow is essential for configuring the module correctly and diagnosing issues when they arise.

The Template → Category → Inspection Chain

Inspection templates are defined at Rentals → Inspections → Inspection Templates. Each template is typed as either a Pickup template or a Return template — a single template cannot serve both purposes. Templates contain an ordered list of checklist items, each defining what is checked, what type of check it is, and whether a photo or note is mandatory.

Templates are linked to product categories through two fields added to product.category: Pickup Inspection Template and Return Inspection Template. These are independent fields — you can assign a pickup template without a return template and vice versa. A product category with neither template assigned is effectively excluded from the inspection system.

When a user creates an inspection from a rental order, the system identifies which of the order's rental lines involve products in categories with templates configured, and creates one inspection record per qualifying product per type. The inspection starts in Draft status with no checklist items. Checklist items are only generated when the user clicks Start Inspection, at which point the current template items are copied into the inspection as live records. This copy is permanent — subsequent changes to the template do not affect in-progress or completed inspections.

Pickup / Return Sequencing Logic

The module enforces that return inspections cannot be created until all pickup inspections on the same order are in Completed (Done) status. This is computed through the has_completed_pickups field on the rental order, which is recalculated whenever inspection status changes. The Create Return Inspection button on the rental order is conditional on this field.

Return inspections automatically compute a link to the corresponding completed pickup inspection (same rental order, same product). This is used to display previous checklist results on the return inspection for comparison. This link is stored on both the inspection header and individual checklist items.

Rental Order Smart Buttons

The rental order form gains four computed fields that drive the button visibility and status indicators: has_inspection_required (any product on the order has a configured template), has_pending_pickup (at least one product needs a pickup inspection), has_pending_return (at least one product needs a return inspection, and all pickups are done), and inspection_count (total non-cancelled inspections). These fields are stored and recomputed on changes to order lines, product categories, and inspection states.

3. Configuring Inspection Templates

Navigate to Rentals → Inspections → Inspection Templates to create and manage templates. Only Sales Managers have write access to templates — standard sales users can read templates but cannot create or modify them.

Template Header Fields

Each template requires a descriptive name that clearly identifies its purpose — for example, "Compressor Pickup Inspection" rather than just "Pickup Template". The Type field is either Pickup or Return and determines which category field the template can be assigned to. In multi-company environments, the Company field scopes the template to a specific company; leave it blank to share the template across all companies.

The Description field (on the Description tab) accepts HTML content and is available to inspectors when viewing the template. Use it for general instructions that apply to the inspection as a whole — safety briefings, environmental conditions to note, process reminders — rather than item-specific instructions.

Checklist Items

Checklist items are the core of the template. Each item must have a name of at least three characters and a check type. The available check types are: Condition CheckDamage CheckSafety CheckOperation CheckCleanliness CheckMeasurement, and Other. These types are informational — they appear in the checklist and on the printed report to help the inspector understand the nature of the check — but they do not change how the item behaves except that Measurement items include a numeric value field.

Item order is controlled by the Sequence field (drag handle in the list). Items appear to the inspector in sequence order. Group related checks together — typically: safety checks first, then operational checks, then physical/condition checks, then measurements, then cleanliness.

The Description field on each item is the most important documentation element. Write it as an acceptance criterion: what must be true for this item to pass? Include specific thresholds, observable indicators, and common failure modes. An inspector should be able to assess the item using only the description without needing prior training on what to look for.

Photo and Note Requirements

Require Photo and Require Note are boolean flags on each checklist item. When set, the inspector must provide the corresponding content on that item — the system enforces this before the inspection can be completed. Apply these flags deliberately:

Use Require Photo on items where visible evidence is essential for dispute resolution — body condition checks, any item that assesses existing damage, fuel level gauges, and meter readings on equipment without digital displays. Use Require Note on items where a simple pass/fail is insufficient — operational checks where the nature of any defect matters, measurements where the value needs to be recorded explicitly, and any item that frequently generates follow-up questions.

Be deliberate with mandatory requirements: Every item marked as requiring a photo or note adds friction to the inspection process. If everything is mandatory, inspectors will treat the requirements as a checkbox exercise rather than meaningful documentation. Reserve mandatory flags for checks where the requirement is genuinely non-negotiable.

Archiving Templates

Templates that are no longer in use should be archived rather than deleted. Archiving prevents the template from being assigned to new product categories while preserving the record for inspections that were created from it. The archived filter in the template search view allows you to review and restore archived templates if needed.

4. Assigning Templates to Product Categories

Template assignment is done on the product category record. Navigate to Inventory → Configuration → Product Categories (or Configuration → Products → Product Categories depending on your installed apps). Open the category and locate the Pickup Inspection Template and Return Inspection Template fields added by this module.

The Pickup Template field will only show templates of type Pickup in its dropdown. The Return Template field will only show Return templates. This prevents accidental misconfiguration.

Category hierarchy note: Odoo product categories support parent/child relationships, but template assignment is not inherited. A parent category's template does not cascade to child categories — each category that requires inspection must have its templates explicitly assigned. If you want all sub-categories to share the same template, you must assign it to each one individually.

To remove a template from a category — for example, if you no longer want pickup inspections for that equipment type — simply clear the template field on the category record. Existing inspections already in progress are unaffected. New inspections created after the change will not include that equipment in the inspection creation logic.

Testing the Configuration

After assigning templates to a category, test the configuration by opening a rental order that includes a product from that category and confirming the Create Pickup Inspection button appears. Click it and verify the inspection is created. Start the inspection and confirm the checklist is populated with the items from your template. This end-to-end test should be performed for each new template configuration before it goes into production use.

5. Access Rights and Record Rules

The module implements access control at two levels: model-level permissions defined in ir.model.access.csv and record-level rules defined in inspection_security.xml.

Model-Level Permissions

Sales / Salesperson group â€” Can create, read, and write inspection records. Cannot delete. Has read-only access to templates and template items (cannot create, write, or delete templates). This ensures inspectors can work with inspections freely while template integrity is protected.

Sales Manager group â€” Full create/read/write/delete access to inspection records and templates. Can manage all templates including creating new ones and modifying existing items.

Record-Level Rules

Record rules provide row-level access control that operates on top of model permissions.

For inspection records, the Personal Inspections rule restricts salesperson-group users to inspections where they are either the assigned inspector or the salesperson on the linked rental order. A salesperson cannot see inspections assigned to a different inspector on orders they did not originate. The All Inspections rule gives manager-group users unrestricted access to all inspection records. Both rules apply within the multi-company constraint, which prevents cross-company data access regardless of group.

For templates, salesperson-group users can read all templates (the read-only rule grants global read access), but only managers can write, create, or delete template records. Template access is not restricted by assignment or ownership — all users can see all templates for the purposes of understanding what checklists contain.

Inspector assignment matters: Because salesperson access is scoped to their own inspections, if an inspection is created with the wrong inspector assigned, the intended inspector will not be able to see it. Managers can reassign the inspector field. This is the most common access issue reported by users.

Multi-Company

Both inspection records and templates are subject to multi-company record rules. Inspection records inherit their company from the linked rental order. Template records have an explicit company field — if left blank, the template is shared across all companies. If set to a specific company, only users logged in under that company can see and use it. In a single-company environment, the company field on templates can be left blank without consequence.

6. Pre-loaded Templates

The module ships with four inspection templates and two product categories installed with noupdate="1", meaning they will not be overwritten by future module updates once installed.

The Heavy Equipment category is configured with the Heavy Equipment Pickup Inspection and Heavy Equipment Return Inspection templates. The pickup template covers engine operation, fluid levels, and body condition. The return template covers new damage assessment, hour meter reading, and fuel level. All items require notes; body condition and damage assessment additionally require photos.

The Small Equipment category is configured with the Small Equipment Pickup Inspection and Small Equipment Return Inspection templates. The pickup template covers general operation, physical condition, and accessories/attachments. The return template covers damage assessment, final operation check, and cleanliness. Physical condition, damage assessment, and cleanliness items require photos.

Two additional templates — Basic Condition Pickup Inspection and Basic Condition Return Inspection — are pre-loaded but not assigned to any category. These provide a minimal checklist for simple equipment that does not warrant the full heavy or small equipment checklist.

Review before go-live: The pre-loaded templates are illustrative starting points, not production-ready checklists. Review each template against your actual equipment and operational standards before using them in real inspections. In particular, confirm that the checklist item descriptions are accurate acceptance criteria for your equipment and that the photo/note requirements match your documentation policy.

7. Standard Setup Workflows

Workflow: Setting Up Inspection for a New Equipment Type

Scenario: Your business begins renting a new category of equipment — aerial work platforms — that requires a specific inspection checklist different from existing templates.

Step 1: Navigate to Rentals → Inspections → Inspection Templates. Create a new template named "Aerial Work Platform Pickup Inspection" with Type set to Pickup.

Step 2: Add checklist items in sequence order. For each item, write a clear description of the acceptance criteria. Set Require Photo on any item documenting visible condition or existing damage. Set Require Note on any item where the pass/fail result alone is insufficient.

Step 3: Save the pickup template. Create a second template named "Aerial Work Platform Return Inspection" with Type set to Return. Add the return-specific checklist items (new damage, hour meter, fuel level, cleaning status).

Step 4: Save the return template.

Step 5: Navigate to the product category for aerial work platforms. If no specific category exists, create one under Inventory → Configuration → Product Categories.

Step 6: Set Pickup Inspection Template to your new pickup template and Return Inspection Template to your new return template. Save.

Step 7: Ensure all aerial work platform products are assigned to this category (check Product → General Information → Category for each product).

Step 8: Test end-to-end: open a rental order containing an aerial work platform, create a pickup inspection, start it, and verify the checklist matches your template exactly.

Workflow: Modifying an Existing Template

Scenario: Following a review, you need to add a mandatory safety check and remove an obsolete checklist item from an existing template.

Step 1: Open the template in Rentals → Inspections → Inspection Templates. Confirm no inspections are currently in Draft or In Progress status that were created from this template — changes to the template do not affect in-progress inspections, but you need to know which inspections will be affected going forward.

Step 2: Add the new safety check item. Set its sequence to place it appropriately in the checklist order. Write the description, set Type to Safety Check, and set Require Note to true.

Step 3: Locate the obsolete item and delete it from the template items list. This will not affect any checklist items already copied into existing inspections.

Step 4: Save the template. The changes take effect immediately for all new inspections started from this template.

Step 5: Communicate the change to inspectors so they are aware of the updated checklist structure.

8. Troubleshooting

Pickup inspection button does not appear on a rental order

The button visibility is driven by the has_inspection_required computed field on the rental order. This field is True only when at least one rental line contains a product whose category has a pickup template assigned. Check: (1) the order line is marked as a rental line (is_rental = True); (2) the product is in a category that has a Pickup Inspection Template set; (3) the category is correctly saved. If all three are correct and the button still does not appear, trigger a recompute by saving the order or making a minor edit to a rental line.

Return inspection button remains unavailable after all pickups appear complete

The has_completed_pickups field requires every rental line product with a pickup template to have a corresponding inspection in Done status. Check for: (1) a pickup inspection in In Progress that was not completed; (2) a cancelled pickup inspection with no replacement; (3) a product recently added to the order whose pickup inspection has not been created. The field also requires that the rental lines have is_rental = True â€” non-rental lines on a mixed order do not factor in. Run a search on inspections filtered to this order and review the status of each.

Start Inspection raises "No inspection template found" error

The product on this inspection is in a category that lacks the required template. Navigate to the product category and verify the appropriate template (pickup or return, matching the inspection type) is assigned and saved. If the category has recently changed, the inspection may reference the old category — check the Equipment Category field on the inspection record and compare it to the product's current category.

Checklist is generated with wrong items

The checklist is built from the template assigned to the product category at the time Start Inspection is clicked. If the template was recently changed (items added, removed, or reordered), new inspections will reflect those changes but inspections started before the change will retain the old checklist. This is by design — inspections are an immutable record of what was assessed at that point in time. If the wrong template was assigned to the category, the template assignment must be corrected and a new inspection started (the incorrect one should be cancelled).

Users cannot see inspections created by other inspectors

This is the expected behaviour for the salesperson access group. The Personal Inspections record rule restricts visibility to inspections where the user is the inspector or the rental order salesperson. Reassign the inspection to the correct inspector (requires manager access), or grant the user Sales Manager access if they need visibility across all inspections. Do not attempt to work around this by sharing login credentials.

Template changes are not reflected in existing in-progress inspections

This is by design. Checklist items are copied from the template into the inspection at the moment Start Inspection is clicked. The copied records are independent of the template. This ensures the inspection record accurately reflects what was assessed, regardless of subsequent template changes. Only inspections started after the template change will include the updated items.

Previous result comparison is empty on a return inspection

The previous inspection link is computed on the return inspection based on finding a completed (Done) pickup inspection for the same product and rental order. If that pickup inspection does not exist, was cancelled, or is not yet in Done status, the link will be empty and no previous results will appear. Ensure the pickup inspection is fully completed before starting the return inspection. If the pickup inspection was accidentally cancelled, a new one must be created and completed before the return inspection will show comparison data.

© 2018 Cyder Solutions. All rights reserved. | www.cyder.com.au