diff --git a/src/open_inwoner/accounts/signals.py b/src/open_inwoner/accounts/signals.py index dac12d95a6..06bd5a4dd6 100644 --- a/src/open_inwoner/accounts/signals.py +++ b/src/open_inwoner/accounts/signals.py @@ -9,6 +9,8 @@ from open_inwoner.haalcentraal.models import HaalCentraalConfig from open_inwoner.haalcentraal.utils import update_brp_data_in_db from open_inwoner.kvk.client import KvKClient +from open_inwoner.openklant.constants import KlantenServiceType +from open_inwoner.openklant.models import KlantenSysteemConfig from open_inwoner.openklant.services import OpenKlant2Service, eSuiteKlantenService from open_inwoner.utils.logentry import user_action @@ -40,21 +42,21 @@ def update_user_on_login(sender, user, request, *args, **kwargs): if user.login_type is LoginTypeChoices.eherkenning: _update_eherkenning_user_from_kvk_api(user=user) - # OpenKlant2 - try: - service = OpenKlant2Service() - except Exception: - logger.error("OpenKlant2 service failed to build") - else: - _update_user_from_openklant2(user=user, service=service, request=request) - - # eSuite - try: - service = eSuiteKlantenService() - except Exception: - logger.error("eSuiteKlantenService failed to build") - else: - _update_user_from_esuite(user=user, service=service, request=request) + config = KlantenSysteemConfig.get_solo() + if config.primary_backend == KlantenServiceType.OPENKLANT2.value: + try: + service = OpenKlant2Service() + except Exception: + logger.error("OpenKlant2 service failed to build") + else: + _update_user_from_openklant2(user=user, service=service, request=request) + if config.primary_backend == KlantenServiceType.ESUITE.value: + try: + service = eSuiteKlantenService() + except Exception: + logger.error("eSuiteKlantenService failed to build") + else: + _update_user_from_esuite(user=user, service=service, request=request) def _update_user_from_openklant2( diff --git a/src/open_inwoner/accounts/tests/test_auth.py b/src/open_inwoner/accounts/tests/test_auth.py index 1718a5135d..f718657898 100644 --- a/src/open_inwoner/accounts/tests/test_auth.py +++ b/src/open_inwoner/accounts/tests/test_auth.py @@ -19,6 +19,8 @@ from open_inwoner.haalcentraal.tests.mixins import HaalCentraalMixin from open_inwoner.kvk.branches import get_kvk_branch_number from open_inwoner.kvk.tests.factories import CertificateFactory +from open_inwoner.openklant.constants import KlantenServiceType +from open_inwoner.openklant.models import KlantenSysteemConfig from open_inwoner.openklant.tests.data import MockAPIReadPatchData from open_inwoner.openzaak.models import OpenZaakConfig from open_inwoner.utils.tests.helpers import AssertTimelineLogMixin @@ -2040,6 +2042,10 @@ def setUpTestData(cls): config.enable_notification_channel_choice = True config.save() + klant_config = KlantenSysteemConfig.get_solo() + klant_config.primary_backend = KlantenServiceType.ESUITE.value + klant_config.save() + def test_update_hook_is_registered_on_login(self, m): connected_functions = [receiver[1]() for receiver in user_logged_in.receivers] self.assertIn(update_user_on_login, connected_functions) diff --git a/src/open_inwoner/cms/footer/tests/test_plugin.py b/src/open_inwoner/cms/footer/tests/test_plugin.py index 22cd0425c0..c262a568ee 100644 --- a/src/open_inwoner/cms/footer/tests/test_plugin.py +++ b/src/open_inwoner/cms/footer/tests/test_plugin.py @@ -42,7 +42,7 @@ def test_form_link_is_shown_in_footer_when_has_configuration(self): self.assertFalse(klant_config.has_contactform_configuration) esuite_config = ESuiteKlantConfig.get_solo() - ContactFormSubjectFactory(config=esuite_config) + ContactFormSubjectFactory(esuite_config=esuite_config) klant_config.register_contact_email = "example@example.com" klant_config.save() diff --git a/src/open_inwoner/openklant/migrations/0024_rename_subject_code_contactformsubject_esuite_subject_code_and_more.py b/src/open_inwoner/openklant/migrations/0024_rename_subject_code_contactformsubject_esuite_subject_code_and_more.py index 6995b65222..87c7650a6d 100644 --- a/src/open_inwoner/openklant/migrations/0024_rename_subject_code_contactformsubject_esuite_subject_code_and_more.py +++ b/src/open_inwoner/openklant/migrations/0024_rename_subject_code_contactformsubject_esuite_subject_code_and_more.py @@ -6,9 +6,7 @@ class Migration(migrations.Migration): - dependencies = [ - ("openklant", "0023_remove_esuiteklantconfig_register_contact_moment_and_more"), - ] + dependencies = [("openklant", "0024_alter_klantensysteemconfig_primary_backend")] operations = [ migrations.RenameField( diff --git a/src/open_inwoner/openklant/models.py b/src/open_inwoner/openklant/models.py index 94b1eb31bb..ca9cf0c084 100644 --- a/src/open_inwoner/openklant/models.py +++ b/src/open_inwoner/openklant/models.py @@ -225,7 +225,7 @@ class OpenKlant2Config(SingletonModel): @property def has_api_configuration(self): - return all(getattr(self, f, "") for f in self.register_api_required_fields) + return all(getattr(self, f, False) for f in self.register_api_required_fields) class Meta: verbose_name = _("OpenKlant2 configuration") diff --git a/src/open_inwoner/openklant/tests/test_signal.py b/src/open_inwoner/openklant/tests/test_signal.py index 8b3c77e26c..428149d1d1 100644 --- a/src/open_inwoner/openklant/tests/test_signal.py +++ b/src/open_inwoner/openklant/tests/test_signal.py @@ -8,7 +8,8 @@ from open_inwoner.accounts.models import User from open_inwoner.accounts.tests.factories import UserFactory, eHerkenningUserFactory from open_inwoner.configurations.models import SiteConfiguration -from open_inwoner.openklant.models import ESuiteKlantConfig +from open_inwoner.openklant.constants import KlantenServiceType +from open_inwoner.openklant.models import ESuiteKlantConfig, KlantenSysteemConfig from open_inwoner.openklant.tests.data import KLANTEN_ROOT, MockAPIReadData from open_inwoner.openzaak.tests.helpers import generate_oas_component_cached from open_inwoner.utils.test import ( @@ -32,6 +33,10 @@ def setUpTestData(cls): config.enable_notification_channel_choice = True config.save() + klant_config = KlantenSysteemConfig.get_solo() + klant_config.primary_backend = KlantenServiceType.ESUITE.value + klant_config.save() + def setUp(self) -> None: super().setUp()