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.
- otrs_somconnexio-0.6.6rc1/PKG-INFO +121 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/provision_dynamic_fields.py +4 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/switchboard_data.py +4 -2
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py +27 -6
- otrs_somconnexio-0.6.6rc1/otrs_somconnexio/otrs_models/switchboard_header_data.py +18 -0
- otrs_somconnexio-0.6.6rc1/otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py +80 -0
- otrs_somconnexio-0.6.6rc1/otrs_somconnexio/otrs_models/switchboard_header_ticket.py +26 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_factory.py +5 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/we_call_you_ticket.py +3 -0
- otrs_somconnexio-0.6.6rc1/otrs_somconnexio.egg-info/PKG-INFO +121 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/SOURCES.txt +8 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/setup.py +1 -1
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_ticket_factory.py +2 -1
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_switchboard_data.py +2 -1
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_switchboard_dynamic_fields.py +26 -4
- otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_header_data.py +18 -0
- otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_header_dynamic_fields.py +119 -0
- otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_header_ticket.py +119 -0
- otrs_somconnexio-0.6.6rc1/tests/otrs_models/test_switchboard_ticket.py +127 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_we_call_you.py +5 -0
- otrs_somconnexio-0.6.6rc1/tests/test_client.py +441 -0
- otrs_somconnexio-0.6.5/PKG-INFO +0 -123
- otrs_somconnexio-0.6.5/otrs_somconnexio.egg-info/PKG-INFO +0 -123
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/README.md +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/client.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/exceptions.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/abstract_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/adsl_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/adsl_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/adsl_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/add_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_email.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_iban.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_owner.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_pack.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_shared_bond.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_adsl.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/changes/change_tariff_fiber.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/adsl_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/fiber_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/router_4G_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/provision/switchboard_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/querys/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/querys/check_coverage.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/configurations/querys/we_call_you.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/adsl.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/asociatel_fiber.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/mm_fiber.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/orange_fiber.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage/vdf_fiber.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/coverage_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/customer_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/customer_user.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/fiber_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/fiber_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/fiber_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/internet_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/internet_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/mobile_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/mobile_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/internet.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/mobile.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/process_ticket/process_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/providers.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/provision_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/provision_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/router_4G_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/router_4G_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/router_4G_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/switchboard_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/telecom_company.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/add_data_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_change_tariff_ba_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_change_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_customer_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/base_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_email_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_iban_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_owner_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_pack_not_shared_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_personal_email_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_shared_bond_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_landline_ticket.py +0 -0
- {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
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_fiber_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_mobile_pack.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_shared_bonds.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_types/check_coverage_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/vf_provisioning_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/responses/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/responses/ticket_creation.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/activate_change_tarriff_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/base_get_ticket_by_number.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/change_to_confirm_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/get_mobile_related_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/get_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/get_ticket_title.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/mapping_mobile_minutes.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/mapping_services.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/move_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/search_tickets_mobile_change_tariff.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/search_tickets_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/set_SIM_recieved_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/set_SIM_returned_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/set_fiber_contract_code_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/unblock_mobile_pack_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_process_ticket_with_VF_provisioning.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_process_ticket_with_coverage_tickets_info_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_ticket_DF.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/services/update_ticket_with_provider_info.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/user_management_client/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/user_management_client/client.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/user_management_client/user_management_response.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/dependency_links.txt +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/not-zip-safe +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/requires.txt +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio.egg-info/top_level.txt +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/setup.cfg +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/data/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/data/otrs_raw_responses.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_change_customer_language.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_update_ticket_with_coverage_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/common_helper.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/changes/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/changes/test_change_tariff_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/test_adsl_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/test_fiber_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/configuration/provision/test_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/process_ticket/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/process_ticket/test_internet_process_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/process_ticket/test_mobile_process_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_abstract_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_adsl_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_adsl_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_adsl_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_coverage_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_coverage_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_customer_user.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_fiber_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_fiber_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_fiber_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_paused_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_mobile_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_provision_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_router_4G_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_router_4G_dynamic_fields.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_router_4G_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_telecom_company.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_ticket_factory.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_vf_provisioning_article.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_add_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_email.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_iban.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_owner.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_pack_not_shared_data.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_personal_email.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_adsl_landline.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_adsl_out_landline.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_fiber.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_mobile_pack.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_change_tariff_shared_bonds.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_check_coverage.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/ticket_types/test_shared_bond.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/responses/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/responses/test_ticket_creation.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_activate_change_tariff_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_change_to_confirm_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_get_mobile_related_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_get_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_mapping_mobile_minutes.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_mapping_services.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_move_sharing_data_mobile_tickets.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_search_tickets_mobile_change_tariff.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_search_tickets_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_set_SIM_recieved_mobile_ticket_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_set_SIM_returned_mobile_ticket_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_set_fiber_contract_code_mobile_ticket_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_unblock_mobile_pack_ticket.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_update_process_ticket_with_VF_provisioning.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_update_process_ticket_with_coverage_tickets_info_service.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/services/test_update_ticket_with_provider_info.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/user_management_client/__init__.py +0 -0
- {otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/user_management_client/test_client.py +0 -0
- {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
|
-
|
|
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.
|
|
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.
|
|
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
|
|
25
|
-
|
|
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
|
|
34
|
-
return DynamicField(
|
|
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()
|
{otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/otrs_somconnexio/otrs_models/ticket_factory.py
RENAMED
|
@@ -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
|
{otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/integration/test_ticket_factory.py
RENAMED
|
@@ -376,7 +376,7 @@ class TicketFactoryIntegrationTestCase(unittest.TestCase):
|
|
|
376
376
|
"contact_phone",
|
|
377
377
|
"product",
|
|
378
378
|
"landline",
|
|
379
|
-
"
|
|
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
|
]
|
{otrs_somconnexio-0.6.5 → otrs_somconnexio-0.6.6rc1}/tests/otrs_models/test_switchboard_data.py
RENAMED
|
@@ -16,7 +16,7 @@ class SwitchboardDataTestCase(unittest.TestCase):
|
|
|
16
16
|
sales_team="Business",
|
|
17
17
|
type="new",
|
|
18
18
|
landline="999888777",
|
|
19
|
-
|
|
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
|
-
|
|
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
|
|
100
|
+
def test_phone_number_field(self):
|
|
91
101
|
self.assertEqual(
|
|
92
|
-
self.dynamic_fields_dct["
|
|
93
|
-
self.service_data.
|
|
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)
|