import sys def verify(): # 1. Apps Installed core_apps = ['stock', 'sale_management', 'purchase', 'account_accountant', 'mrp', 'quality'] missing_apps = [] for app in core_apps: mod = env['ir.module.module'].search([('name', '=', app), ('state', '=', 'installed')]) if not mod: missing_apps.append(app) # Check Custom modules custom_mods = ['c2c_core', 'c2c_uom_engine'] missing_custom = [] for app in custom_mods: mod = env['ir.module.module'].search([('name', '=', app), ('state', '=', 'installed')]) if not mod: missing_custom.append(app) # 2. Companies companies = env['res.company'].search([]) company_names = companies.mapped('name') expected_companies = ['C2C Agricorp India Pvt Ltd', 'C2C Imports & Exports', 'Clickstocart Inc'] missing_companies = [c for c in expected_companies if not any(c in n for n in company_names)] # 3. Settings Enabled uom_on = env['ir.config_parameter'].sudo().get_param('group_uom') lots_on = env['ir.config_parameter'].sudo().get_param('group_stock_tracking_lot') expiry_on = env['ir.config_parameter'].sudo().get_param('group_stock_production_lot') work_orders_on = env['ir.config_parameter'].sudo().get_param('group_mrp_routings') print("=== WEEK 1 STATUS REPORT ===") print(f"Missing Core Apps: {missing_apps if missing_apps else 'None (All good!)'}") print(f"Missing Custom Apps: {missing_custom if missing_custom else 'None (All good!)'}") print(f"Missing Companies: {missing_companies if missing_companies else 'None (All good!)'}") # We can fetch settings via groups or users since get_param might be empty if relying on user groups # A better way is checking if a user has the groups admin = env.ref('base.user_admin') has_uom = admin.has_group('uom.group_uom') has_lots = admin.has_group('stock.group_production_lot') has_expiry = admin.has_group('product_expiry.group_expiry_date_on_receipts') or admin.has_group('stock.group_production_lot') # Odoo handles expiry loosely via groups print(f"UoM Enabled globally: {has_uom}") print(f"Lot Tracking Enabled: {has_lots}") # 4. Check custom fields exist (if c2c_core is installed) if 'c2c_core' not in missing_custom: Partner = env['res.partner'] has_partner_cat = 'c2c_partner_category' in Partner._fields print(f"Custom Partner Categories exist: {has_partner_cat}") print("============================") verify()