From 7db52388741fab4df3d3fd799eecdb4531cb26bf Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Sat, 10 Jan 2026 03:33:56 +0400 Subject: [PATCH] monkey patched asset categories --- jey_erp/debug_asset_categories.py | 86 +++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 10 deletions(-) diff --git a/jey_erp/debug_asset_categories.py b/jey_erp/debug_asset_categories.py index e373530..e12761a 100644 --- a/jey_erp/debug_asset_categories.py +++ b/jey_erp/debug_asset_categories.py @@ -98,26 +98,35 @@ def diagnose(): # 6. Проверка фоновых задач print("\n6. Проверка фоновых задач:") try: + import redis from rq import Queue - from frappe.utils.background_jobs import get_redis_conn - q = Queue('default', connection=get_redis_conn()) - jobs = q.jobs + # Get redis connection + redis_server = frappe.conf.redis_queue or "redis://localhost:11000" + conn = redis.from_url(redis_server) + + q = Queue('default', connection=conn) + jobs = list(q.jobs) if jobs: print(f" В очереди задач: {len(jobs)}") - for job in jobs: + for job in jobs[:5]: # Show first 5 print(f" - {job.func_name}") else: print(" Очередь пуста") # Проверка failed jobs - failed_q = Queue('failed', connection=get_redis_conn()) - failed_jobs = failed_q.jobs - if failed_jobs: - print(f"\n FAILED задач: {len(failed_jobs)}") - for job in failed_jobs: - print(f" ✗ {job.func_name}: {job.exc_info}") + try: + failed_q = Queue('failed', connection=conn) + failed_jobs = list(failed_q.jobs) + if failed_jobs: + print(f"\n FAILED задач: {len(failed_jobs)}") + for job in failed_jobs[:5]: # Show first 5 + print(f" ✗ {job.func_name}") + if hasattr(job, 'exc_info') and job.exc_info: + print(f" Error: {str(job.exc_info)[:100]}") + except Exception as e: + print(f" Не удалось проверить failed jobs: {str(e)}") except Exception as e: print(f" Ошибка проверки очереди: {str(e)}") @@ -148,3 +157,60 @@ def force_create(): print("\n" + "=" * 80) print("СОЗДАНИЕ ЗАВЕРШЕНО") print("=" * 80 + "\n") + + +def test_hook(): + """Тестирует вызов хука setup_wizard_complete напрямую""" + + print("\n" + "=" * 80) + print("ТЕСТ ХУКА setup_wizard_complete") + print("=" * 80 + "\n") + + # Проверяем, что хук зарегистрирован + hooks = frappe.get_hooks("setup_wizard_complete") + print(f"Зарегистрированные хуки: {hooks}\n") + + if not hooks: + print("✗ Хук НЕ зарегистрирован в hooks.py!") + return + + # Получаем первую компанию + companies = frappe.get_all("Company", limit=1) + if not companies: + print("✗ Компании не найдены! Создайте компанию сначала.") + return + + company_name = companies[0].name + print(f"Компания найдена: {company_name}\n") + + # Вызываем хук напрямую с тестовыми аргументами + print("Вызываем хук напрямую...\n") + + try: + from jey_erp.setup.setup_wizard_handler import setup_wizard_complete_handler + + test_args = { + "company_name": company_name, + "country": "Test", + "currency": "AZN" + } + + setup_wizard_complete_handler(test_args) + + print("\n✓ Хук вызван успешно!") + print("\nПроверьте Error Log для записей с префиксом 'AC'") + print("Также проверьте фоновые задачи: bench --site console") + print(">>> from rq import Queue; import redis") + print(">>> conn = redis.from_url('redis://localhost:11000')") + print(">>> q = Queue('default', connection=conn)") + print(">>> [job.func_name for job in q.jobs]") + + except Exception as e: + import traceback + print(f"\n✗ Ошибка при вызове хука!") + print(f"Error: {str(e)}") + print(f"\nTraceback:\n{traceback.format_exc()}") + + print("\n" + "=" * 80) + print("ТЕСТ ЗАВЕРШЕН") + print("=" * 80 + "\n")