otrs-somconnexio 0.6.5__tar.gz → 0.6.6rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. otrs_somconnexio-0.6.6rc1/PKG-INFO +121 -0
  2. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/provision_dynamic_fields.py +4 -0
  3. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/switchboard_data.py +4 -2
  4. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py +27 -6
  5. otrs_somconnexio-0.6.6rc1/otrs_somconnexio/otrs_models/switchboard_header_data.py +18 -0
  6. otrs_somconnexio-0.6.6rc1/otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py +80 -0
  7. otrs_somconnexio-0.6.6rc1/otrs_somconnexio/otrs_models/switchboard_header_ticket.py +26 -0
  8. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_factory.py +5 -0
  9. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/we_call_you_ticket.py +3 -0
  10. otrs_somconnexio-0.6.6rc1/otrs_somconnexio.egg-info/PKG-INFO +121 -0
  11. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/SOURCES.txt +8 -0
  12. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/setup.py +1 -1
  13. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_ticket_factory.py +2 -1
  14. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_switchboard_data.py +2 -1
  15. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_switchboard_dynamic_fields.py +26 -4
  16. otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_header_data.py +18 -0
  17. otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_header_dynamic_fields.py +119 -0
  18. otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_header_ticket.py +119 -0
  19. otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_ticket.py +127 -0
  20. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_we_call_you.py +5 -0
  21. otrs_somconnexio-0.6.6rc1/tests/test_client.py +441 -0
  22. otrs_somconnexio-0.6.5/PKG-INFO +0 -123
  23. otrs_somconnexio-0.6.5/otrs_somconnexio.egg-info/PKG-INFO +0 -123
  24. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/README.md +0 -0
  25. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/__init__.py +0 -0
  26. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/client.py +0 -0
  27. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/exceptions.py +0 -0
  28. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/__init__.py +0 -0
  29. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/abstract_article.py +0 -0
  30. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/adsl_data.py +0 -0
  31. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/adsl_dynamic_fields.py +0 -0
  32. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/adsl_ticket.py +0 -0
  33. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/__init__.py +0 -0
  34. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/__init__.py +0 -0
  35. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/add_data.py +0 -0
  36. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_email.py +0 -0
  37. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_iban.py +0 -0
  38. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_owner.py +0 -0
  39. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_pack.py +0 -0
  40. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_shared_bond.py +0 -0
  41. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff.py +0 -0
  42. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_adsl.py +0 -0
  43. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_fiber.py +0 -0
  44. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/__init__.py +0 -0
  45. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/adsl_ticket.py +0 -0
  46. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/fiber_ticket.py +0 -0
  47. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/mobile_ticket.py +0 -0
  48. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/router_4G_ticket.py +0 -0
  49. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/switchboard_ticket.py +0 -0
  50. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/querys/__init__.py +0 -0
  51. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/querys/check_coverage.py +0 -0
  52. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/querys/we_call_you.py +0 -0
  53. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/__init__.py +0 -0
  54. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/adsl.py +0 -0
  55. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/asociatel_fiber.py +0 -0
  56. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/mm_fiber.py +0 -0
  57. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/orange_fiber.py +0 -0
  58. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/vdf_fiber.py +0 -0
  59. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage_article.py +0 -0
  60. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage_ticket.py +0 -0
  61. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/customer_data.py +0 -0
  62. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/customer_user.py +0 -0
  63. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/fiber_data.py +0 -0
  64. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/fiber_dynamic_fields.py +0 -0
  65. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/fiber_ticket.py +0 -0
  66. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/internet_data.py +0 -0
  67. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/internet_dynamic_fields.py +0 -0
  68. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/mobile_data.py +0 -0
  69. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/mobile_dynamic_fields.py +0 -0
  70. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/mobile_ticket.py +0 -0
  71. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/__init__.py +0 -0
  72. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/internet.py +0 -0
  73. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/mobile.py +0 -0
  74. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/process_ticket.py +0 -0
  75. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/providers.py +0 -0
  76. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/provision_article.py +0 -0
  77. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/provision_ticket.py +0 -0
  78. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/router_4G_data.py +0 -0
  79. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/router_4G_dynamic_fields.py +0 -0
  80. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/router_4G_ticket.py +0 -0
  81. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/service.py +0 -0
  82. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/switchboard_ticket.py +0 -0
  83. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/telecom_company.py +0 -0
  84. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/__init__.py +0 -0
  85. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/add_data_ticket.py +0 -0
  86. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_change_tariff_ba_ticket.py +0 -0
  87. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_change_ticket.py +0 -0
  88. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_customer_ticket.py +0 -0
  89. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_ticket.py +0 -0
  90. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_email_ticket.py +0 -0
  91. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_iban_ticket.py +0 -0
  92. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_owner_ticket.py +0 -0
  93. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_pack_not_shared_data.py +0 -0
  94. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_personal_email_ticket.py +0 -0
  95. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_shared_bond_ticket.py +0 -0
  96. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_landline_ticket.py +0 -0
  97. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_out_landline_ticket.py +0 -0
  98. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_ticket.py +0 -0
  99. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_fiber_ticket.py +0 -0
  100. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket.py +0 -0
  101. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_mobile_pack.py +0 -0
  102. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_shared_bonds.py +0 -0
  103. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/check_coverage_ticket.py +0 -0
  104. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/vf_provisioning_article.py +0 -0
  105. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/responses/__init__.py +0 -0
  106. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/responses/ticket_creation.py +0 -0
  107. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/__init__.py +0 -0
  108. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/activate_change_tarriff_mobile_tickets.py +0 -0
  109. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/base_get_ticket_by_number.py +0 -0
  110. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/change_to_confirm_ticket.py +0 -0
  111. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/get_mobile_related_tickets.py +0 -0
  112. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/get_sharing_data_mobile_tickets.py +0 -0
  113. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/get_ticket_title.py +0 -0
  114. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/mapping_mobile_minutes.py +0 -0
  115. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/mapping_services.py +0 -0
  116. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/move_sharing_data_mobile_tickets.py +0 -0
  117. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/search_tickets_mobile_change_tariff.py +0 -0
  118. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/search_tickets_service.py +0 -0
  119. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/set_SIM_recieved_mobile_ticket.py +0 -0
  120. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/set_SIM_returned_mobile_ticket.py +0 -0
  121. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/set_fiber_contract_code_mobile_ticket.py +0 -0
  122. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/unblock_mobile_pack_ticket.py +0 -0
  123. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_process_ticket_with_VF_provisioning.py +0 -0
  124. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_process_ticket_with_coverage_tickets_info_service.py +0 -0
  125. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_ticket_DF.py +0 -0
  126. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_ticket_with_provider_info.py +0 -0
  127. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/user_management_client/__init__.py +0 -0
  128. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/user_management_client/client.py +0 -0
  129. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/user_management_client/user_management_response.py +0 -0
  130. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/dependency_links.txt +0 -0
  131. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/not-zip-safe +0 -0
  132. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/requires.txt +0 -0
  133. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/top_level.txt +0 -0
  134. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/setup.cfg +0 -0
  135. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/data/__init__.py +0 -0
  136. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/data/otrs_raw_responses.py +0 -0
  137. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/__init__.py +0 -0
  138. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_change_customer_language.py +0 -0
  139. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_update_ticket_with_coverage_data.py +0 -0
  140. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/__init__.py +0 -0
  141. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/common_helper.py +0 -0
  142. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/__init__.py +0 -0
  143. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/changes/__init__.py +0 -0
  144. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/changes/test_change_tariff_ticket.py +0 -0
  145. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/__init__.py +0 -0
  146. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/test_adsl_ticket.py +0 -0
  147. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/test_fiber_ticket.py +0 -0
  148. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/test_mobile_ticket.py +0 -0
  149. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/process_ticket/__init__.py +0 -0
  150. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/process_ticket/test_internet_process_ticket.py +0 -0
  151. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/process_ticket/test_mobile_process_ticket.py +0 -0
  152. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_abstract_article.py +0 -0
  153. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_adsl_data.py +0 -0
  154. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_adsl_dynamic_fields.py +0 -0
  155. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_adsl_ticket.py +0 -0
  156. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_coverage_article.py +0 -0
  157. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_coverage_ticket.py +0 -0
  158. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_customer_user.py +0 -0
  159. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_fiber_data.py +0 -0
  160. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_fiber_dynamic_fields.py +0 -0
  161. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_fiber_ticket.py +0 -0
  162. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_data.py +0 -0
  163. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_dynamic_fields.py +0 -0
  164. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_paused_ticket.py +0 -0
  165. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_ticket.py +0 -0
  166. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_provision_article.py +0 -0
  167. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_router_4G_data.py +0 -0
  168. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_router_4G_dynamic_fields.py +0 -0
  169. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_router_4G_ticket.py +0 -0
  170. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_service.py +0 -0
  171. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_telecom_company.py +0 -0
  172. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_ticket_factory.py +0 -0
  173. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_vf_provisioning_article.py +0 -0
  174. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/__init__.py +0 -0
  175. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_add_data.py +0 -0
  176. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_email.py +0 -0
  177. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_iban.py +0 -0
  178. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_owner.py +0 -0
  179. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_pack_not_shared_data.py +0 -0
  180. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_personal_email.py +0 -0
  181. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff.py +0 -0
  182. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_adsl_landline.py +0 -0
  183. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_adsl_out_landline.py +0 -0
  184. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_fiber.py +0 -0
  185. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_mobile_pack.py +0 -0
  186. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_shared_bonds.py +0 -0
  187. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_check_coverage.py +0 -0
  188. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_shared_bond.py +0 -0
  189. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/responses/__init__.py +0 -0
  190. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/responses/test_ticket_creation.py +0 -0
  191. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/__init__.py +0 -0
  192. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_activate_change_tariff_mobile_tickets.py +0 -0
  193. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_change_to_confirm_ticket.py +0 -0
  194. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_get_mobile_related_tickets.py +0 -0
  195. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_get_sharing_data_mobile_tickets.py +0 -0
  196. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_mapping_mobile_minutes.py +0 -0
  197. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_mapping_services.py +0 -0
  198. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_move_sharing_data_mobile_tickets.py +0 -0
  199. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_search_tickets_mobile_change_tariff.py +0 -0
  200. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_search_tickets_service.py +0 -0
  201. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_set_SIM_recieved_mobile_ticket_service.py +0 -0
  202. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_set_SIM_returned_mobile_ticket_service.py +0 -0
  203. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_set_fiber_contract_code_mobile_ticket_service.py +0 -0
  204. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_unblock_mobile_pack_ticket.py +0 -0
  205. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_update_process_ticket_with_VF_provisioning.py +0 -0
  206. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_update_process_ticket_with_coverage_tickets_info_service.py +0 -0
  207. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_update_ticket_with_provider_info.py +0 -0
  208. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/user_management_client/__init__.py +0 -0
  209. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/user_management_client/test_client.py +0 -0
  210. {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/user_management_client/test_user_management_response.py +0 -0
@@ -0,0 +1,121 @@
1
+ Metadata-Version: 2.1
2
+ Name: otrs_somconnexio
3
+ Version: 0.6.6rc1
4
+ Summary: Python package for Somconnexio data syncing in OTRS
5
+ Home-page: https://gitlab.com/coopdevs/otrs_somconnexio
6
+ Author: Coopdevs
7
+ Author-email: info@coopdevs.org
8
+ License: UNKNOWN
9
+ Description: # Python 2.7/3.8 module to manage the SomConnexio's ERP integration with OTRS
10
+
11
+ This library manages all the business logic between the Som Connexio's systems and the ticketing tool OTRS.
12
+
13
+ ## [Processes](https://gitlab.com/coopdevs/otrs-somconnexio/-/wikis/processes/README)
14
+
15
+ ## OTRS Configuration
16
+
17
+ Configure the web services in OTRS:
18
+
19
+ #### Ticket Connector (Provider)
20
+
21
+ * Usage:
22
+ It exposes the Ticket, Article and DynamicFields object and allows to get, create, update and remove tickets. We use the PyOTRS to interact with it. Look in the [PyOTRS](https://gitlab.com/rhab/PyOTRS/-/blob/master/README.rst) docs for more info.
23
+
24
+ * Configuration:
25
+ Use the template provided by the PyOTRS client: https://gitlab.com/rhab/PyOTRS/-/blob/master/webservices_templates/GenericTicketConnectorREST.yml
26
+
27
+ #### CustomerUser Connector (Provider)
28
+
29
+ * Usage:
30
+ It's a RPCConnector. It interacts with the OTRS objects directly calling the class methods.
31
+
32
+ * Configuration:
33
+ You need admin permissions to manage it.
34
+ Contact with your OTRS provider.
35
+
36
+ #### MMCaller Connector (Requester)
37
+
38
+ * Usage:
39
+ It calls MMProxy when an event is raised.
40
+
41
+ * Configuration:
42
+ https://gitlab.com/coopdevs/somconnexio-documentation/-/blob/master/integracions/masmovil.md#webservice-dotrs
43
+
44
+ ## Environment configuration
45
+
46
+ ### OTRSClient
47
+
48
+ The client to interact with OTRS. You need to define the next environment variables to use the client:
49
+
50
+ ```
51
+ OTRS_URL= # Baseurl of the OTRS instance
52
+ OTRS_USER= # Creadencials of user with write acces to OTRS
53
+ OTRS_PASSW=
54
+ ```
55
+
56
+ ## Python version
57
+
58
+ We are using [Pyenv](https://github.com/pyenv/pyenv) to fix the Python version and the virtualenv to test the package.
59
+
60
+ You need:
61
+
62
+ * Intall and configure [`pyenv`](https://github.com/pyenv/pyenv)
63
+ * Install and configure [`pyenv-virtualenvwrapper`](https://github.com/pyenv/pyenv-virtualenvwrapper)
64
+ * Intall locally the version of python needed:
65
+
66
+ ```
67
+ $ pyenv install 3.8.2
68
+ ```
69
+
70
+ * Create the virtualenv to use:
71
+
72
+ ```
73
+ $ pyenv virtualenv 3.8.2 otrs_somconnexio
74
+ ```
75
+
76
+
77
+ ## Python packages requirements
78
+
79
+ Install the Python packages in the virtual environment:
80
+
81
+ ```
82
+ $ pyenv exec pip install -r requirements.txt
83
+ ```
84
+
85
+ ## Run tests
86
+
87
+ To run the test you can run:
88
+
89
+ ```
90
+ $ tox
91
+ ```
92
+
93
+ Also you can run only the tests running:
94
+
95
+ ```
96
+ $ pytest .
97
+ ```
98
+
99
+ and if you want the coverage info:
100
+
101
+ ```
102
+ $ pytest --cov .
103
+ ```
104
+
105
+ If running the tests with tox, they will be tested with both python3.8 and python2.7. This is because OTRS-SomConnexio works with an ERP which uses python2, as well as with other packages that use python3.
106
+
107
+ ## Release process
108
+
109
+ Release and publish the package to PyPi:
110
+
111
+ - Update the VERSION var in setup.py matching the version you specified in the CHANGELOG.
112
+ - Open a merge request with these changes for the team to approve.
113
+ - Merge it, add a git tag on the Deployments > Releases section and push it.
114
+ - Once the pipeline has successfully passed, approve the publish step.
115
+
116
+ Platform: UNKNOWN
117
+ Classifier: Development Status :: 3 - Alpha
118
+ Classifier: Operating System :: POSIX :: Linux
119
+ Classifier: Programming Language :: Python :: 2
120
+ Classifier: Programming Language :: Python :: 2.7
121
+ Description-Content-Type: text/markdown
@@ -29,6 +29,7 @@ class ProvisionDynamicFields:
29
29
  self._has_active_contracts(),
30
30
  self._has_documentation(),
31
31
  self._lang(),
32
+ self._order_id(),
32
33
  ]
33
34
  dynamic_fields += self._build_specific_dynamic_fields()
34
35
 
@@ -100,3 +101,6 @@ class ProvisionDynamicFields:
100
101
 
101
102
  def _has_documentation(self):
102
103
  return DynamicField(name="flagDocumentacio", value="0")
104
+
105
+ def _order_id(self):
106
+ return DynamicField(name="IDpeticio", value=self.service_data.order_id)
@@ -12,7 +12,7 @@ class SwitchboardData:
12
12
  sales_team,
13
13
  type,
14
14
  landline,
15
- landline_2,
15
+ mobile_phone_number,
16
16
  icc,
17
17
  has_sim,
18
18
  extension,
@@ -25,6 +25,7 @@ class SwitchboardData:
25
25
  shipment_city,
26
26
  shipment_zip,
27
27
  shipment_subdivision,
28
+ additional_products,
28
29
  activation_notes="",
29
30
  notes="",
30
31
  ):
@@ -37,7 +38,7 @@ class SwitchboardData:
37
38
  self.sales_team = sales_team
38
39
  self.type = type
39
40
  self.landline = landline
40
- self.landline_2 = landline_2
41
+ self.mobile_phone_number = mobile_phone_number
41
42
  self.icc = icc
42
43
  self.has_sim = has_sim
43
44
  self.extension = extension
@@ -50,5 +51,6 @@ class SwitchboardData:
50
51
  self.shipment_city = shipment_city
51
52
  self.shipment_zip = shipment_zip
52
53
  self.shipment_subdivision = shipment_subdivision
54
+ self.additional_products = additional_products
53
55
  self.activation_notes = activation_notes
54
56
  self.notes = notes
@@ -6,9 +6,10 @@ from otrs_somconnexio.otrs_models.provision_dynamic_fields import ProvisionDynam
6
6
  class SwitchboardDynamicFields(ProvisionDynamicFields):
7
7
  def _build_specific_dynamic_fields(self):
8
8
  dynamic_fields = [
9
- self._type(),
9
+ self._service_type(),
10
+ self._is_header(),
11
+ self._phone_number(),
10
12
  self._landline(),
11
- self._landline_2(),
12
13
  self._icc(),
13
14
  self._sim_received(),
14
15
  self._extension(),
@@ -18,11 +19,18 @@ class SwitchboardDynamicFields(ProvisionDynamicFields):
18
19
  self._shipment_city(),
19
20
  self._shipment_zip(),
20
21
  self._shipment_subdivision(),
22
+ self._additional_products(),
21
23
  ]
22
24
  return dynamic_fields
23
25
 
24
- def _type(self):
25
- return DynamicField(name="tipusServeiCV", value=self.service_data.type)
26
+ def _service_type(self):
27
+ if self.service_data.type == "portability":
28
+ return DynamicField("tipusServeiCV", "portabilitat")
29
+ else:
30
+ return DynamicField("tipusServeiCV", "altaNova")
31
+
32
+ def _is_header(self):
33
+ return DynamicField(name="CVHeader", value="0")
26
34
 
27
35
  def _product(self):
28
36
  return DynamicField(name="productCV", value=self.service_data.product)
@@ -30,8 +38,10 @@ class SwitchboardDynamicFields(ProvisionDynamicFields):
30
38
  def _landline(self):
31
39
  return DynamicField(name="portaFixCV1", value=self.service_data.landline)
32
40
 
33
- def _landline_2(self):
34
- return DynamicField(name="portaFixCV2", value=self.service_data.landline_2)
41
+ def _phone_number(self):
42
+ return DynamicField(
43
+ name="liniaMobil", value=self.service_data.mobile_phone_number
44
+ )
35
45
 
36
46
  def _icc(self):
37
47
  return DynamicField(name="ICCSC", value=self.service_data.icc)
@@ -66,3 +76,14 @@ class SwitchboardDynamicFields(ProvisionDynamicFields):
66
76
  return DynamicField(
67
77
  name="provinciaEnviament", value=self.service_data.shipment_subdivision
68
78
  )
79
+
80
+ def _additional_products(self):
81
+ additional_products_list = (
82
+ self.service_data.additional_products.split(",")
83
+ if self.service_data.additional_products
84
+ else []
85
+ )
86
+ return DynamicField(
87
+ name="productCVAddicional",
88
+ value=additional_products_list,
89
+ )
@@ -0,0 +1,18 @@
1
+ class SwitchboardHeaderData:
2
+ service_type = "header_switchboard"
3
+
4
+ def __init__(
5
+ self,
6
+ order_id,
7
+ email,
8
+ contact_phone,
9
+ sales_team,
10
+ technology,
11
+ notes="",
12
+ ):
13
+ self.order_id = order_id
14
+ self.email = email
15
+ self.contact_phone = contact_phone
16
+ self.sales_team = sales_team
17
+ self.technology = technology
18
+ self.notes = notes
@@ -0,0 +1,80 @@
1
+ # coding: utf-8
2
+ from pyotrs.lib import DynamicField
3
+
4
+
5
+ class SwitchboardHeaderDynamicFields:
6
+ def __init__(self, service_data, customer_data, otrs_process_id, otrs_activity_id):
7
+ self.service_data = service_data
8
+ self.customer_data = customer_data
9
+ self.otrs_process_id = otrs_process_id
10
+ self.otrs_activity_id = otrs_activity_id
11
+
12
+ def all(self):
13
+ dynamic_fields = [
14
+ self._process_id(),
15
+ self._activity_id(),
16
+ self._is_header(),
17
+ self._first_name(),
18
+ self._name(),
19
+ self._vat_number(),
20
+ self._lang(),
21
+ self._phone(),
22
+ self._mail(),
23
+ self._service_technology(),
24
+ self._sales_team(),
25
+ self._order_id(),
26
+ self._notes(),
27
+ ]
28
+
29
+ return [field for field in dynamic_fields if field.value]
30
+
31
+ def _process_id(self):
32
+ return DynamicField(
33
+ name="ProcessManagementProcessID", value=self.otrs_process_id
34
+ )
35
+
36
+ def _activity_id(self):
37
+ return DynamicField(
38
+ name="ProcessManagementActivityID", value=self.otrs_activity_id
39
+ )
40
+
41
+ def _is_header(self):
42
+ return DynamicField(name="CVHeader", value="1")
43
+
44
+ def _first_name(self):
45
+ return DynamicField("nomSoci", self.customer_data.first_name)
46
+
47
+ def _name(self):
48
+ return DynamicField("cognom1", self.customer_data.name)
49
+
50
+ def _vat_number(self):
51
+ return DynamicField(name="NIFNIESoci", value=self.customer_data.vat_number)
52
+
53
+ def _lang(self):
54
+ return DynamicField(name="idioma", value=self.customer_data.language)
55
+
56
+ def _phone(self):
57
+ return DynamicField(
58
+ name="telefonContacte", value=self.service_data.contact_phone
59
+ )
60
+
61
+ def _mail(self):
62
+ return DynamicField(name="correuElectronic", value=self.service_data.email)
63
+
64
+ def _service_technology(self):
65
+ return DynamicField(name="TecDelServei", value=self.service_data.technology)
66
+
67
+ def _sales_team(self):
68
+ sales_team_dct = {"Residential": "residencial", "Business": "empreses"}
69
+ return DynamicField(
70
+ name="equipVendes",
71
+ value=sales_team_dct.get(self.service_data.sales_team, ""),
72
+ )
73
+
74
+ def _order_id(self):
75
+ return DynamicField(name="IDpeticio", value=self.service_data.order_id)
76
+
77
+ def _notes(self):
78
+ return DynamicField(
79
+ name="consideracionsActivacio3", value=self.service_data.notes
80
+ )
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ from otrs_somconnexio.otrs_models.provision_ticket import ProvisionTicket
3
+ from otrs_somconnexio.otrs_models.switchboard_header_dynamic_fields import (
4
+ SwitchboardHeaderDynamicFields,
5
+ )
6
+ from otrs_somconnexio.otrs_models.configurations.provision.switchboard_ticket import (
7
+ SwitchboardTicketConfiguration,
8
+ )
9
+
10
+
11
+ class SwitchboardHeaderTicket(ProvisionTicket):
12
+ def __init__(self, service_data, customer_data):
13
+ self.service_data = service_data
14
+ self.customer_data = customer_data
15
+ self.otrs_configuration = SwitchboardTicketConfiguration()
16
+
17
+ def service_type(self):
18
+ return "switchboard"
19
+
20
+ def _build_dynamic_fields(self):
21
+ return SwitchboardHeaderDynamicFields(
22
+ self.service_data,
23
+ self.customer_data,
24
+ self._ticket_process_id(),
25
+ self._ticket_activity_id(),
26
+ ).all()
@@ -3,6 +3,9 @@ from otrs_somconnexio.otrs_models.fiber_ticket import FiberTicket
3
3
  from otrs_somconnexio.otrs_models.mobile_ticket import MobileTicket, MobilePausedTicket
4
4
  from otrs_somconnexio.otrs_models.router_4G_ticket import Router4GTicket
5
5
  from otrs_somconnexio.otrs_models.switchboard_ticket import SwitchboardTicket
6
+ from otrs_somconnexio.otrs_models.switchboard_header_ticket import (
7
+ SwitchboardHeaderTicket,
8
+ )
6
9
  from otrs_somconnexio.exceptions import ServiceTypeNotAllowedError
7
10
 
8
11
 
@@ -32,6 +35,8 @@ class TicketFactory(object):
32
35
  TicketClass = MobileTicket
33
36
  elif self.service_data.service_type == "4G":
34
37
  TicketClass = Router4GTicket
38
+ elif self.service_data.service_type == "header_switchboard":
39
+ TicketClass = SwitchboardHeaderTicket
35
40
  elif self.service_data.service_type == "switchboard":
36
41
  TicketClass = SwitchboardTicket
37
42
  else:
@@ -36,6 +36,9 @@ class WeCallYouTicket(BaseCustomerTicket):
36
36
  "horariTrucada": self.fields["schedule"],
37
37
  "telefonContacte": self.fields["phone"],
38
38
  "motiuTrucada": self.fields["reason"],
39
+ "referral": self.fields.get("referral"),
40
+ "rgpd": self.fields.get("rgpd", True),
41
+ "nouEmail": self.fields.get("email"),
39
42
  "midaEmpresa": self.fields.get("company_size"),
40
43
  }
41
44
 
@@ -0,0 +1,121 @@
1
+ Metadata-Version: 2.1
2
+ Name: otrs-somconnexio
3
+ Version: 0.6.6rc1
4
+ Summary: Python package for Somconnexio data syncing in OTRS
5
+ Home-page: https://gitlab.com/coopdevs/otrs_somconnexio
6
+ Author: Coopdevs
7
+ Author-email: info@coopdevs.org
8
+ License: UNKNOWN
9
+ Description: # Python 2.7/3.8 module to manage the SomConnexio's ERP integration with OTRS
10
+
11
+ This library manages all the business logic between the Som Connexio's systems and the ticketing tool OTRS.
12
+
13
+ ## [Processes](https://gitlab.com/coopdevs/otrs-somconnexio/-/wikis/processes/README)
14
+
15
+ ## OTRS Configuration
16
+
17
+ Configure the web services in OTRS:
18
+
19
+ #### Ticket Connector (Provider)
20
+
21
+ * Usage:
22
+ It exposes the Ticket, Article and DynamicFields object and allows to get, create, update and remove tickets. We use the PyOTRS to interact with it. Look in the [PyOTRS](https://gitlab.com/rhab/PyOTRS/-/blob/master/README.rst) docs for more info.
23
+
24
+ * Configuration:
25
+ Use the template provided by the PyOTRS client: https://gitlab.com/rhab/PyOTRS/-/blob/master/webservices_templates/GenericTicketConnectorREST.yml
26
+
27
+ #### CustomerUser Connector (Provider)
28
+
29
+ * Usage:
30
+ It's a RPCConnector. It interacts with the OTRS objects directly calling the class methods.
31
+
32
+ * Configuration:
33
+ You need admin permissions to manage it.
34
+ Contact with your OTRS provider.
35
+
36
+ #### MMCaller Connector (Requester)
37
+
38
+ * Usage:
39
+ It calls MMProxy when an event is raised.
40
+
41
+ * Configuration:
42
+ https://gitlab.com/coopdevs/somconnexio-documentation/-/blob/master/integracions/masmovil.md#webservice-dotrs
43
+
44
+ ## Environment configuration
45
+
46
+ ### OTRSClient
47
+
48
+ The client to interact with OTRS. You need to define the next environment variables to use the client:
49
+
50
+ ```
51
+ OTRS_URL= # Baseurl of the OTRS instance
52
+ OTRS_USER= # Creadencials of user with write acces to OTRS
53
+ OTRS_PASSW=
54
+ ```
55
+
56
+ ## Python version
57
+
58
+ We are using [Pyenv](https://github.com/pyenv/pyenv) to fix the Python version and the virtualenv to test the package.
59
+
60
+ You need:
61
+
62
+ * Intall and configure [`pyenv`](https://github.com/pyenv/pyenv)
63
+ * Install and configure [`pyenv-virtualenvwrapper`](https://github.com/pyenv/pyenv-virtualenvwrapper)
64
+ * Intall locally the version of python needed:
65
+
66
+ ```
67
+ $ pyenv install 3.8.2
68
+ ```
69
+
70
+ * Create the virtualenv to use:
71
+
72
+ ```
73
+ $ pyenv virtualenv 3.8.2 otrs_somconnexio
74
+ ```
75
+
76
+
77
+ ## Python packages requirements
78
+
79
+ Install the Python packages in the virtual environment:
80
+
81
+ ```
82
+ $ pyenv exec pip install -r requirements.txt
83
+ ```
84
+
85
+ ## Run tests
86
+
87
+ To run the test you can run:
88
+
89
+ ```
90
+ $ tox
91
+ ```
92
+
93
+ Also you can run only the tests running:
94
+
95
+ ```
96
+ $ pytest .
97
+ ```
98
+
99
+ and if you want the coverage info:
100
+
101
+ ```
102
+ $ pytest --cov .
103
+ ```
104
+
105
+ If running the tests with tox, they will be tested with both python3.8 and python2.7. This is because OTRS-SomConnexio works with an ERP which uses python2, as well as with other packages that use python3.
106
+
107
+ ## Release process
108
+
109
+ Release and publish the package to PyPi:
110
+
111
+ - Update the VERSION var in setup.py matching the version you specified in the CHANGELOG.
112
+ - Open a merge request with these changes for the team to approve.
113
+ - Merge it, add a git tag on the Deployments > Releases section and push it.
114
+ - Once the pipeline has successfully passed, approve the publish step.
115
+
116
+ Platform: UNKNOWN
117
+ Classifier: Development Status :: 3 - Alpha
118
+ Classifier: Operating System :: POSIX :: Linux
119
+ Classifier: Programming Language :: Python :: 2
120
+ Classifier: Programming Language :: Python :: 2.7
121
+ Description-Content-Type: text/markdown
@@ -36,6 +36,9 @@ otrs_somconnexio/otrs_models/router_4G_ticket.py
36
36
  otrs_somconnexio/otrs_models/service.py
37
37
  otrs_somconnexio/otrs_models/switchboard_data.py
38
38
  otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py
39
+ otrs_somconnexio/otrs_models/switchboard_header_data.py
40
+ otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py
41
+ otrs_somconnexio/otrs_models/switchboard_header_ticket.py
39
42
  otrs_somconnexio/otrs_models/switchboard_ticket.py
40
43
  otrs_somconnexio/otrs_models/telecom_company.py
41
44
  otrs_somconnexio/otrs_models/ticket_factory.py
@@ -116,6 +119,7 @@ otrs_somconnexio/services/update_ticket_with_provider_info.py
116
119
  otrs_somconnexio/user_management_client/__init__.py
117
120
  otrs_somconnexio/user_management_client/client.py
118
121
  otrs_somconnexio/user_management_client/user_management_response.py
122
+ tests/test_client.py
119
123
  tests/data/__init__.py
120
124
  tests/data/otrs_raw_responses.py
121
125
  tests/integration/__init__.py
@@ -145,6 +149,10 @@ tests/otrs_models/test_router_4G_ticket.py
145
149
  tests/otrs_models/test_service.py
146
150
  tests/otrs_models/test_switchboard_data.py
147
151
  tests/otrs_models/test_switchboard_dynamic_fields.py
152
+ tests/otrs_models/test_switchboard_header_data.py
153
+ tests/otrs_models/test_switchboard_header_dynamic_fields.py
154
+ tests/otrs_models/test_switchboard_header_ticket.py
155
+ tests/otrs_models/test_switchboard_ticket.py
148
156
  tests/otrs_models/test_telecom_company.py
149
157
  tests/otrs_models/test_ticket_factory.py
150
158
  tests/otrs_models/test_vf_provisioning_article.py
@@ -5,7 +5,7 @@ with open("README.md") as f:
5
5
  README = f.read()
6
6
 
7
7
 
8
- VERSION = "0.6.5"
8
+ VERSION = "0.6.6.rc1"
9
9
 
10
10
  setup(
11
11
  name="otrs_somconnexio",
@@ -376,7 +376,7 @@ class TicketFactoryIntegrationTestCase(unittest.TestCase):
376
376
  "contact_phone",
377
377
  "product",
378
378
  "landline",
379
- "landline_2",
379
+ "mobile_phone_number",
380
380
  "agent_name",
381
381
  "agent_email",
382
382
  "previous_owner_name",
@@ -388,6 +388,7 @@ class TicketFactoryIntegrationTestCase(unittest.TestCase):
388
388
  "shipment_city",
389
389
  "shipment_zip",
390
390
  "shipment_subdivision",
391
+ "additional_products",
391
392
  "notes",
392
393
  "activation_notes",
393
394
  ]
@@ -16,7 +16,7 @@ class SwitchboardDataTestCase(unittest.TestCase):
16
16
  sales_team="Business",
17
17
  type="new",
18
18
  landline="999888777",
19
- landline_2="999888778",
19
+ mobile_phone_number="766887778",
20
20
  extension="123",
21
21
  agent_name="agent1",
22
22
  agent_email="agent1@company.org",
@@ -29,6 +29,7 @@ class SwitchboardDataTestCase(unittest.TestCase):
29
29
  shipment_city="city",
30
30
  shipment_zip="08001",
31
31
  shipment_subdivision="ES-B",
32
+ additional_products="product1, product2",
32
33
  notes="Notes",
33
34
  activation_notes="More notes",
34
35
  )
@@ -30,7 +30,7 @@ class SwitchboardDynamicFieldsTestCase(unittest.TestCase):
30
30
  sales_team=faker.word(),
31
31
  type=faker.word(),
32
32
  landline=faker.phone_number(),
33
- landline_2=faker.phone_number(),
33
+ mobile_phone_number=faker.phone_number(),
34
34
  icc=faker.bban(),
35
35
  has_sim=faker.boolean(),
36
36
  extension=faker.phone_number(),
@@ -43,6 +43,7 @@ class SwitchboardDynamicFieldsTestCase(unittest.TestCase):
43
43
  shipment_city=faker.city(),
44
44
  shipment_zip=faker.zipcode(),
45
45
  shipment_subdivision=faker.state(),
46
+ additional_products="A,B,C",
46
47
  )
47
48
 
48
49
  self.switchboard_otrs_process_id = faker.uuid4()
@@ -57,6 +58,12 @@ class SwitchboardDynamicFieldsTestCase(unittest.TestCase):
57
58
 
58
59
  self.dynamic_fields_dct = dynamic_fields_to_dct(self.dynamic_fields)
59
60
 
61
+ def test_service_type_field(self):
62
+ self.assertEqual(
63
+ self.dynamic_fields_dct["tipusServeiCV"],
64
+ "portabilitat" if self.service_data.type == "portability" else "altaNova",
65
+ )
66
+
60
67
  def test_process_id_field(self):
61
68
  self.assertEqual(
62
69
  self.dynamic_fields_dct["ProcessManagementProcessID"],
@@ -69,6 +76,9 @@ class SwitchboardDynamicFieldsTestCase(unittest.TestCase):
69
76
  self.switchboard_otrs_activity_id,
70
77
  )
71
78
 
79
+ def test_CV_header_field(self):
80
+ self.assertEqual(self.dynamic_fields_dct["CVHeader"], "0")
81
+
72
82
  def test_product_field(self):
73
83
  self.assertEqual(
74
84
  self.dynamic_fields_dct["productCV"],
@@ -87,10 +97,10 @@ class SwitchboardDynamicFieldsTestCase(unittest.TestCase):
87
97
  self.service_data.landline,
88
98
  )
89
99
 
90
- def test_landline_2_field(self):
100
+ def test_phone_number_field(self):
91
101
  self.assertEqual(
92
- self.dynamic_fields_dct["portaFixCV2"],
93
- self.service_data.landline_2,
102
+ self.dynamic_fields_dct["liniaMobil"],
103
+ self.service_data.mobile_phone_number,
94
104
  )
95
105
 
96
106
  def test_ICC_field(self):
@@ -146,3 +156,15 @@ class SwitchboardDynamicFieldsTestCase(unittest.TestCase):
146
156
  self.dynamic_fields_dct["flagDocumentacio"],
147
157
  "0",
148
158
  )
159
+
160
+ def test_additional_products_field(self):
161
+ self.assertEqual(
162
+ self.dynamic_fields_dct["productCVAddicional"],
163
+ self.service_data.additional_products.split(","),
164
+ )
165
+
166
+ def test_order_id_field(self):
167
+ self.assertEqual(
168
+ self.dynamic_fields_dct["IDpeticio"],
169
+ self.service_data.order_id,
170
+ )
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+ import unittest
3
+
4
+ from otrs_somconnexio.otrs_models.switchboard_header_data import SwitchboardHeaderData
5
+
6
+
7
+ class SwitchboardHeaderDataTestCase(unittest.TestCase):
8
+ def test_init(self):
9
+ sb_header_data = SwitchboardHeaderData(
10
+ order_id=123,
11
+ contact_phone="666666661",
12
+ email="test@test.com",
13
+ sales_team="residential",
14
+ technology="switchboard",
15
+ notes="Notes",
16
+ )
17
+
18
+ self.assertIsInstance(sb_header_data, SwitchboardHeaderData)