TIP: You can type at any time to perform a new search.
Openupgrade Scripts
openupgrade_scripts · OCA/OpenUpgrade
Security findings
Migration considerations
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE rating_rating SET rated_on=write_date` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE ir_attachment SET res_field='image_512' WHERE res_model='pos.category' AND res_field='image_128'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO stock_reference_pos_order_rel (pos_order_id, reference_id) SELECT id, procurement_group_id FROM pos_order WHERE procurement_group_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE pos_order SET state='done' WHERE state='invoiced'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_leave SET request_date_to_period='am' WHERE request_unit_half AND request_hour_to <= 12` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_leave_accrual_level SET carryover_options='limited', action_with_unused_accruals='all' WHERE action_with_unused_accruals='maximum'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_leave_type SET hide_on_dashboard=hide_on_dashboard IS DISTINCT FROM TRUE` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO stock_reference_move_rel (move_id, reference_id) SELECT id, group_id FROM stock_move WHERE group_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE stock_move SET packaging_uom_id=product_uom.uom_id FROM product_uom WHERE product_packaging_id=product_uom.id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO stock_package_history_stock_picking_rel (stock_picking_id, stock_package_history_id) SELECT picking_id, id FROM stock_package_history WHERE picking_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE stock_package_type SET package_use='reusable' WHERE id IN ( SELECT package_type_id FROM stock_package GROUP BY package_type_id HAVING array_agg(distinct package_use) <@ '{"reusable"}' )` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE uom_uom SET package_type_id=product_uom.package_type_id FROM product_uom WHERE product_uom.uom_id=uom_uom.id AND product_uom.package_type_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO stock_package_type_stock_route_rel (stock_package_type_id, stock_route_id) SELECT DISTINCT product_uom.package_type_id, stock_route_packaging.route_id FROM stock_route_packaging JOIN product_uom ON stock_route_packaging.packaging_id=product_uom.id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE stock_package_history SET package_name=stock_package.name FROM stock_package WHERE stock_package_history.package_id=stock_package.id AND package_name IS NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE mail_template SET lang=NULL FROM ir_model_data imd WHERE imd.module='loyalty' and imd.name in ( 'mail_template_gift_card', 'mail_template_loyalty_card' ) and mail_template.id=imd.res_id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE resource_calendar SET schedule_type='flexible' WHERE flexible_hours` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE website_menu SET url = website_page.url FROM website_page WHERE website_menu.page_id = website_page.id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE website_menu SET url = '#' WHERE url IS NULL OR url = ''` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_employee_skill hes SET valid_from = hesl.date FROM hr_employee_skill_log hesl WHERE hes.employee_id = hesl.employee_id AND hes.skill_id = hesl.skill_id AND hes.skill_level_id = hesl.skill_level_id AND hes.skill_type_id = hesl.skill_type_id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_employee_skill SET valid_from = create_date WHERE valid_from IS NULL AND create_date IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE stock_move SET account_move_id=account_move.id FROM account_move WHERE account_move.stock_move_id=stock_move.id AND stock_move.account_move_id IS NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO product_value ( create_uid, create_date, write_uid, write_date, date, lot_id, product_id, user_id, value, company_id, description, stock_valuation_layer_id ) SELECT create_uid, create_date, write_uid, write_date, create_date, lot_id, product_id, create_uid, unit_cost, company_id, description, id FROM stock_valuation_layer WHERE stock_move_id IS NULL AND unit_cost IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO product_value ( create_uid, create_date, write_uid, write_date, date, lot_id, product_id, user_id, company_id, description, value, stock_valuation_layer_id ) SELECT svl1.create_uid, svl1.create_date, svl1.write_uid, svl1.write_date, svl1.create_date, svl1.lot_id, svl1.product_id, svl1.create_uid, svl1.company_id, svl1.description, SUM(svl2.value) / SUM(svl2.quantity), svl1.id FROM stock_valuation_layer svl1 JOIN stock_valuation_layer svl2 ON svl1.product_id=svl2.product_id AND svl1.company_id=svl2.company_id AND ( svl1.lot_id=svl2.lot_id OR svl1.lot_id IS NULL AND svl2.lot_id IS NULL ) AND svl1.create_date >= svl2.create_date WHERE svl1.stock_move_id IS NULL AND svl1.unit_cost IS NULL AND svl1.quantity = 0 GROUP BY svl1.id HAVING SUM(svl2.quantity) <> 0` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE mail_activity SET activity_type_id = %s, summary = COALESCE(summary, 'Alert Date Reached') WHERE activity_type_id = %s` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE stock_move_line sml SET removal_date = CASE WHEN lot.removal_date IS NOT NULL THEN lot.removal_date ELSE sml2.expiration_date - (COALESCE(pt.removal_time, 0) || ' days')::interval END FROM stock_move_line sml2 JOIN product_product pp ON sml2.product_id = pp.id JOIN product_template pt ON pp.product_tmpl_id = pt.id LEFT JOIN stock_lot lot ON sml2.lot_id = lot.id LEFT JOIN stock_picking sp ON sml2.picking_id = sp.id LEFT JOIN stock_move sm ON sml2.move_id = sm.id LEFT JOIN stock_picking_type spt ON spt.id = COALESCE( sp.picking_type_id, sm.picking_type_id ) WHERE sml.id = sml2.id AND sml.removal_date IS NULL AND ( lot.removal_date IS NOT NULL OR ( COALESCE(spt.use_create_lots, FALSE) IS TRUE AND COALESCE(pt.use_expiration_date, FALSE) IS TRUE AND sml2.expiration_date IS NOT NULL ) )` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE account_reconcile_model SET active = False WHERE rule_type = 'invoice_matching'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE account_reconcile_model SET trigger='auto_reconcile' WHERE auto_reconcile` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE account_account SET active = FALSE where deprecated` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO account_fiscal_position_account_tax_rel (account_fiscal_position_id, account_tax_id) SELECT DISTINCT position_id, tax_dest_id FROM account_fiscal_position_tax WHERE tax_dest_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO account_tax_alternatives (dest_tax_id, src_tax_id) SELECT DISTINCT tax_dest_id, tax_src_id FROM account_fiscal_position_tax WHERE tax_dest_id IS NOT NULL AND tax_src_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE account_move_line SET no_followup=True FROM account_journal WHERE account_move_line.journal_id=account_journal.id AND account_journal.type = 'general'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE stock_picking_type spt SET dispatch_management = TRUE FROM stock_warehouse sw WHERE spt.warehouse_id = sw.id AND ( spt.code IN ('incoming', 'outgoing') OR (sw.delivery_steps = 'pick_pack_ship' AND spt.id = sw.pack_type_id) OR (sw.delivery_steps = 'pick_ship' AND spt.id = sw.pick_type_id) )` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE res_partner SET employee=True FROM hr_employee WHERE hr_employee.work_contact_id=res_partner.id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_employee SET salary_distribution = json_build_object( bank_account_id::text, json_build_object( 'amount', 100.0, 'sequence', 1, 'amount_is_percentage', true ) ) WHERE bank_account_id IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_version SET additional_note= COALESCE(hr_version.additional_note || ' ', '') || hr_employee.notes FROM hr_employee WHERE hr_version.employee_id=hr_employee.id AND hr_employee.notes IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_version SET additional_note=%s WHERE id=%s` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE purchase_order SET state='purchase' WHERE state='done'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE purchase_order SET acknowledged=True WHERE state='purchase'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE purchase_order SET locked=TRUE FROM res_company WHERE purchase_order.company_id=res_company.id AND res_company.po_lock='lock'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE purchase_order_line SET technical_price_unit=price_unit` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_work_entry SET version_id=employee2version.version_id FROM ( SELECT employee_id, max(id) version_id FROM hr_version GROUP BY employee_id ) employee2version WHERE employee2version.employee_id=hr_work_entry.employee_id AND hr_work_entry.version_id IS NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `WITH employee2tz AS ( SELECT hr_employee.id employee_id, COALESCE(resource_resource.tz, resource_calendar.tz, res_partner.tz) tz FROM hr_employee JOIN resource_resource ON hr_employee.resource_id=resource_resource.id LEFT JOIN resource_calendar ON resource_resource.calendar_id=resource_calendar.id JOIN res_company ON hr_employee.company_id=res_company.id JOIN res_partner ON res_company.partner_id=res_partner.id ) UPDATE hr_work_entry SET date=(date_start at time zone employee2tz.tz)::date FROM employee2tz WHERE employee2tz.employee_id=hr_work_entry.employee_id AND date_start IS NOT NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE im_livechat_channel_rule SET chatbot_enabled_condition='only_if_no_operator' WHERE chatbot_only_if_no_operator` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_expense SET account_move_id=account_move.id FROM account_move WHERE account_move.expense_sheet_id=hr_expense.former_sheet_id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `INSERT INTO mail_message_link_preview (link_preview_id, message_id, is_hidden) SELECT id, message_id, is_hidden FROM mail_link_preview` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_attendance_overtime_line SET time_start=hr_attendance.check_in, time_stop=hr_attendance.check_out FROM hr_attendance WHERE hr_attendance.employee_id=hr_attendance_overtime_line.employee_id AND hr_attendance.date=hr_attendance_overtime_line.date` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE hr_attendance_overtime_line SET status=hr_attendance.overtime_status FROM hr_employee, res_company, hr_attendance WHERE hr_attendance.check_in=hr_attendance_overtime_line.time_start AND hr_attendance.employee_id=hr_attendance_overtime_line.employee_id AND hr_attendance_overtime_line.employee_id=hr_employee.id AND hr_employee.company_id=res_company.id AND res_company.attendance_overtime_validation = 'by_manager'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE product_product SET is_favorite=product_template.is_favorite FROM product_template WHERE product_product.product_tmpl_id=product_template.id AND product_template.is_favorite` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE product_supplierinfo SET product_tmpl_id=product_product.product_tmpl_id FROM product_product WHERE product_supplierinfo.product_id=product_product.id AND product_supplierinfo.product_tmpl_id IS NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE product_supplierinfo SET product_uom_id=product_template.uom_id FROM product_template WHERE product_supplierinfo.product_tmpl_id=product_template.id AND product_supplierinfo.product_uom_id IS NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE project_project SET allow_recurring_tasks=True FROM project_task WHERE project_task.project_id=project_project.id AND project_task.recurring_task` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE project_task SET priority='2' WHERE priority='1'` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE product_ribbon SET sequence=id WHERE sequence IS NULL` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `WITH expense_sale_line_match AS ( SELECT DISTINCT ON (he.id) he.id AS expense_id, sol.id AS sale_line_id FROM hr_expense he JOIN account_move_line aml ON aml.expense_id = he.id JOIN sale_order_line sol ON sol.name = aml.name JOIN sale_order so ON so.id = sol.order_id AND so.id = he.sale_order_id WHERE sol.product_id = he.product_id AND sol.product_uom_qty = he.quantity AND sol.is_expense = True ORDER BY he.id, sol.id ) UPDATE hr_expense he SET sale_order_line_id = esm.sale_line_id FROM expense_sale_line_match esm WHERE esm.expense_id = he.id` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/OpenUpgrade · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Migration
- Folder size
- 1.79 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/OpenUpgrade
- Last tracking update
- 2026-10-04 00:16:28
- Authors
- Odoo Community Association (OCA)
- Maintainers
- Odoo Community Association (OCA)
- Committers
- Holger Brunn, Pedro M. Baeza, GitHub, Sylvain LE GAL, Carlos Lopez, Miquel Raïch, Víctor Martínez, Don Kendall, Emilio Pascual, Quoc - Pham Ngoc, Pilar Vargas, OCA-git-bot, Andrii9090-tecnativa, eduezerouali-tecnativa, David Bañón, christian-ramos-tecnativa, Bhavesh Heliconia, Simon Hick, cristina.hidalgo, github-actions[bot], Gladistone Souza, zbynekdrlik, Michiel Valee
- Odoo dependencies
-
odoo/odoo:- base
- Python dependencies
- openupgradelib
- System dependencies
- None
- Required by
- None
- Description
This module is a containers of migration script to migrate from 18.0 to 19.0 version.
Code Analysis
Views touched (12)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
blog_post_template_new_post |
blog_post_template_new_post | ir.ui.view | qweb | New |
digest_mail_main |
digest_mail_main | ir.ui.view | qweb | New |
forum_post_template_new_answer |
forum_post_template_new_answer | ir.ui.view | qweb | New |
forum_post_template_new_question |
forum_post_template_new_question | ir.ui.view | qweb | New |
forum_post_template_validation |
forum_post_template_validation | ir.ui.view | qweb | New |
forum_post_view_search |
search | New | ||
hr_expense_template_refuse_reason |
hr_expense_template_refuse_reason | ir.ui.view | qweb | New |
hr_expense_template_register |
hr_expense_template_register | ir.ui.view | qweb | New |
livechat_email_template |
livechat_email_template | ir.ui.view | qweb | New |
mail_notification_channel_invite |
mail_notification_channel_invite | ir.ui.view | qweb | New |
mailing_contact_view_form_split_name |
form | New | ||
todo_user_onboarding |
todo_user_onboarding | ir.ui.view | qweb | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (0)
No models found for this module.
Loading…
Loading…
Loading…
Loading…
Loading…