TIP: You can type at any time to perform a new search.

Security findings

Repository
OCA/repair · module folder · Try on Runboat
Module version
Category
Repair
Folder size
0.12 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/repair
Last tracking update
2026-09-16 17:18:54
Authors
Odoo Community Association (OCA), Cetmix OÜ
Maintainers
Odoo Community Association (OCA), Cetmix OÜ
Committers
Weblate, OCA-git-bot, oca-ci, George Smirnov, Mohajiro, tendil
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
repair_order_group_services
Description
This module allows users to group several repair orders and manage them in a
more convenient way.

Grouped repair orders are synchronized for the following actions:

- **Partner selection**: when a partner is changed in one repair order, the same
  partner is set on all other repair orders from the same group.
- **Order confirmation**: when one repair order is confirmed, all other repair
  orders from the same group are confirmed as well.
- **Order cancellation**: when one repair order is cancelled, all other repair
  orders from the same group are cancelled as well.
- **Quotation creation**: when a quotation is created, all repair orders from
  the same group are added to the same quotation.

The module also allows configuring the repair order states where the
**Add Grouped Repair** button is available. This is configured with the
**Available in** tags field in the Repair settings.

The button is always hidden when the related sales order is confirmed or
cancelled.

Code Analysis info_outline

Views touched (6)
XML IDNameModelTypeStatus
res_config_settings_view_form_inherit_repair_order_group res.config.settings.repair.order.group res.config.settings form Inherits base_repair_config.res_config_settings_view_form
view_repair_order_form_inherit_group repair.order.form.inherit.group repair.order form Inherits repair.view_repair_order_form
view_repair_order_group_form repair.order.group.form repair.order.group form New
view_repair_order_group_list repair.order.group.list repair.order.group list New
view_repair_order_search_inherit_group repair.order.search.inherit.group repair.order search Inherits repair.view_repair_order_form_filter
view_repair_order_tree_inherit_group repair.order.tree.inherit.group repair.order tree Inherits repair.view_repair_order_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (3)
  • group_id Many2one → repair.order.group
    check_company=True copy=True help='Repairs sharing the same group can be processed and quoted together.' index=True readonly=True string='Repair Group' args: 'repair.order.group'
  • grouped_repair_ids One2many → repair.order
    compute='_compute_grouped_repair_ids' help='All other repairs that belong to the same group.' string='Grouped Repairs' args: 'repair.order'
  • show_add_grouped_repair Boolean
    compute='_compute_show_add_grouped_repair' help='Technical field used to control the Add Grouped Repair button.'
Public methods (5)
  • action_add_another_repair(self)
    Create a new empty repair linked to the same group. If the current repair is not yet assigned to a group, a new `repair.order.group` is automatically created first. The new repair will reuse basic logistics fields such as partner, company, and locations, but not copy any parts or products.
  • action_create_sale_order(self)
    Create Sale Order - single one for group or standard behavior if no group. For repair groups: creates one sale order containing all valid repairs from the same group. Maintains core Odoo validations while extending functionality for grouped repairs. Features: • Consolidated SO creation for repair groups • Standard individual SO creation for non-grouped repairs • Mixed selection handling with focused UX • Detailed validation messages with repair order references Returns: dict: Action to view the created sale order(s)
  • action_repair_cancel(self)
    Cancel repairs and cascade cancellation to other group members. The original method is called once on the combined set of selected repairs and their group members to preserve all Odoo core logic and side effects.
  • copy(self, default=None)
    Keep the group only for draft repairs when duplicating. Duplicating a grouped repair order: - if original is in Draft -> duplicated repair stays in the same group - otherwise -> duplicated repair is not assigned to any group
  • write(self, vals)
    Propagate partner changes across all repairs in the same group. When a user changes the partner on one repair, all other repairs of the same group automatically receive the same partner, ensuring data consistency. Recursion is prevented via the context flag `skip_group_sync`. All related repairs are updated in a single write operation.

New fields (5)
  • company_id Many2one → res.company
    compute='_compute_partner_company' store=True args: 'res.company'
  • name Char
    default='New' index=True required=True
  • partner_id Many2one → res.partner
    compute='_compute_partner_company' store=True args: 'res.partner'
  • repair_count Integer
    compute='_compute_repair_count' store=True
  • repair_ids One2many → repair.order
    args: 'repair.order', 'group_id'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Assign sequence when records are created programmatically.

New fields (1)
  • add_grouped_repair_state_ids Many2many → ir.model.fields.selection
    column1='company_id' column2='selection_id' comodel_name='ir.model.fields.selection' default=<expr> domain=[('field_id.model', '=', 'repair.order'), ('field_id.name', '=', 'state')] relation='res_company_add_grouped_repair_state_rel' string='Add Grouped Repair Available In'
Public methods (0)

No public methods.

New fields (1)
  • add_grouped_repair_state_ids Many2many
    readonly=False related='company_id.add_grouped_repair_state_ids'
Public methods (0)

No public methods.