odoo_c2c/verify_w1_Clickstocart.py

56 lines
2.5 KiB
Python

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()