example_usage.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #!/usr/bin/env python3
  2. """
  3. Ejemplo de uso de la nueva funcionalidad de sincronización CRM con Google Meet
  4. Este script muestra cómo usar la función de sincronización con diferentes tipos de parámetros:
  5. 1. Entero (días hacia atrás)
  6. 2. Fecha específica (formato YYYY-MM-DD)
  7. Uso:
  8. python3 example_usage.py
  9. """
  10. import sys
  11. import os
  12. # Agregar el directorio de Odoo al path
  13. sys.path.append('/var/odoo/stg2.mcteam.run/src')
  14. # Configurar variables de entorno
  15. os.environ['ODOO_RC'] = '/var/odoo/stg2.mcteam.run/odoo.conf'
  16. def test_sync_with_days_back():
  17. """Ejemplo: Sincronizar meets de los últimos 7 días"""
  18. print("🔄 Ejemplo 1: Sincronizar meets de los últimos 7 días")
  19. print("=" * 60)
  20. try:
  21. import odoo
  22. from odoo import api, SUPERUSER_ID
  23. # Inicializar Odoo
  24. odoo.cli.server.main()
  25. # Crear entorno
  26. env = api.Environment(odoo.registry('stg2.mcteam.run').cursor(), SUPERUSER_ID, {})
  27. # Ejecutar sincronización con días hacia atrás
  28. result = env['crm.lead']._sync_meetings_with_opportunities_cron(time_filter=7)
  29. print(f"✅ Resultado: {result}")
  30. except Exception as e:
  31. print(f"❌ Error: {str(e)}")
  32. finally:
  33. if 'env' in locals():
  34. env.cr.close()
  35. def test_sync_with_specific_date():
  36. """Ejemplo: Sincronizar meets de una fecha específica"""
  37. print("\n🔄 Ejemplo 2: Sincronizar meets de una fecha específica")
  38. print("=" * 60)
  39. try:
  40. import odoo
  41. from odoo import api, SUPERUSER_ID
  42. # Inicializar Odoo
  43. odoo.cli.server.main()
  44. # Crear entorno
  45. env = api.Environment(odoo.registry('stg2.mcteam.run').cursor(), SUPERUSER_ID, {})
  46. # Ejecutar sincronización con fecha específica
  47. specific_date = "2024-08-30" # Cambiar por la fecha que quieras probar
  48. result = env['crm.lead']._sync_meetings_with_opportunities_cron(time_filter=specific_date)
  49. print(f"✅ Resultado para fecha {specific_date}: {result}")
  50. except Exception as e:
  51. print(f"❌ Error: {str(e)}")
  52. finally:
  53. if 'env' in locals():
  54. env.cr.close()
  55. def test_sync_with_string_days():
  56. """Ejemplo: Sincronizar meets usando string como días"""
  57. print("\n🔄 Ejemplo 3: Sincronizar meets usando string como días")
  58. print("=" * 60)
  59. try:
  60. import odoo
  61. from odoo import api, SUPERUSER_ID
  62. # Inicializar Odoo
  63. odoo.cli.server.main()
  64. # Crear entorno
  65. env = api.Environment(odoo.registry('stg2.mcteam.run').cursor(), SUPERUSER_ID, {})
  66. # Ejecutar sincronización con string de días
  67. result = env['crm.lead']._sync_meetings_with_opportunities_cron(time_filter="3")
  68. print(f"✅ Resultado para últimos 3 días: {result}")
  69. except Exception as e:
  70. print(f"❌ Error: {str(e)}")
  71. finally:
  72. if 'env' in locals():
  73. env.cr.close()
  74. def show_usage_examples():
  75. """Mostrar ejemplos de uso"""
  76. print("📋 EJEMPLOS DE USO DE LA NUEVA FUNCIONALIDAD")
  77. print("=" * 60)
  78. print()
  79. print("La función ahora acepta dos tipos de parámetros:")
  80. print()
  81. print("1️⃣ ENTERO (días hacia atrás):")
  82. print(" - time_filter=15 # Últimos 15 días")
  83. print(" - time_filter=7 # Últimos 7 días")
  84. print(" - time_filter=1 # Último día")
  85. print()
  86. print("2️⃣ FECHA ESPECÍFICA (formato YYYY-MM-DD):")
  87. print(" - time_filter='2024-08-30' # Solo meets del 30 de agosto de 2024")
  88. print(" - time_filter='2024-08-31' # Solo meets del 31 de agosto de 2024")
  89. print(" - time_filter='2024-01-15' # Solo meets del 15 de enero de 2024")
  90. print()
  91. print("3️⃣ STRING COMO ENTERO:")
  92. print(" - time_filter='3' # Últimos 3 días")
  93. print(" - time_filter='10' # Últimos 10 días")
  94. print()
  95. print("🔧 CÓMO USAR EN PRODUCCIÓN:")
  96. print()
  97. print("Desde la consola de Odoo:")
  98. print(">>> env['crm.lead']._sync_meetings_with_opportunities_cron(time_filter=15)")
  99. print(">>> env['crm.lead']._sync_meetings_with_opportunities_cron(time_filter='2024-08-30')")
  100. print()
  101. print("Desde línea de comandos:")
  102. print("$ python3 -c \"import odoo; odoo.cli.server.main(); env = odoo.api.Environment(odoo.registry('stg2.mcteam.run').cursor(), odoo.SUPERUSER_ID, {}); result = env['crm.lead']._sync_meetings_with_opportunities_cron(time_filter='2024-08-30'); print(result); env.cr.close()\"")
  103. print()
  104. print("🎯 CASOS DE USO:")
  105. print("- Para pruebas en producción: Usar fecha específica")
  106. print("- Para sincronización diaria: Usar entero (1)")
  107. print("- Para sincronización semanal: Usar entero (7)")
  108. print("- Para sincronización mensual: Usar entero (30)")
  109. if __name__ == "__main__":
  110. show_usage_examples()
  111. # Descomentar las líneas siguientes para ejecutar los ejemplos
  112. # test_sync_with_days_back()
  113. # test_sync_with_specific_date()
  114. # test_sync_with_string_days()