diff --git a/etc/cyclos/init_test_data.py b/etc/cyclos/init_test_data.py index 198fb87..f2febe8 100644 --- a/etc/cyclos/init_test_data.py +++ b/etc/cyclos/init_test_data.py @@ -240,19 +240,6 @@ def create_user(group, name, login, password=None, custom_values=None): login=login, ) -porteurs = { - 'P001': 'Porteur 1', - 'P002': 'Porteur 2', - 'P003': 'Porteur 3', - 'P004': 'Porteur 4', -} -for login, name in porteurs.items(): - create_user( - group='Porteurs', - name=name, - login=login, - ) - # Récupération des constantes logger.info('Récupération des constantes depuis le YAML...') diff --git a/etc/cyclos/setup.py b/etc/cyclos/setup.py index f061912..885e3fd 100644 --- a/etc/cyclos/setup.py +++ b/etc/cyclos/setup.py @@ -580,7 +580,7 @@ def add_custom_field_to_transfer_type(transfer_type_id, custom_field_id): ID_CHAMP_PERSO_PAIEMENT_BDC = create_transaction_custom_field_linked_user( name='BDC', ) -ID_CHAMP_PERSO_PAIEMENT_PORTEUR = create_transaction_custom_field_linked_user( +ID_CHAMP_PERSO_PAIEMENT_PORTEUR = create_transaction_custom_field_text( name='Porteur', ) ID_CHAMP_PERSO_PAIEMENT_ADHERENT = create_transaction_custom_field_linked_user( @@ -2181,13 +2181,6 @@ def change_group_configuration(group_id, configuration_id): 'login', ], ) -# Porteurs. -ID_GROUPE_PORTEURS = create_member_group( - name='Porteurs', - products=[ - ID_PRODUIT_UTILISATEURS_BASIQUES_SANS_COMPTE, - ] -) # Adhérents sans compte. ID_GROUPE_ADHERENTS_SANS_COMPTE = create_member_group( name='Adhérents sans compte', @@ -2203,7 +2196,6 @@ def change_group_configuration(group_id, configuration_id): ID_GROUPE_COMPTES_DEDIES, ID_GROUPE_ADHERENTS_PRESTATAIRES, ID_GROUPE_ADHERENTS_UTILISATEURS, - ID_GROUPE_PORTEURS, ID_GROUPE_ADHERENTS_SANS_COMPTE, ] diff --git a/src/api/bdc_cyclos/views.py b/src/api/bdc_cyclos/views.py index d24dc23..65f9810 100644 --- a/src/api/bdc_cyclos/views.py +++ b/src/api/bdc_cyclos/views.py @@ -178,7 +178,7 @@ def entree_stock(request): for payment in request.data['selected_payments']: try: porteur = [ - value['linkedEntityValue']['id'] + value['stringValue'] for value in payment['customValues'] if value['field']['id'] == str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']) and value['field']['internalName'] == 'porteur' @@ -215,7 +215,7 @@ def entree_stock(request): 'customValues': [ { 'field': str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']), - 'linkedEntityValue': porteur # ID du porteur + 'stringValue': porteur # ID du porteur }, ], 'description': description, @@ -262,7 +262,7 @@ def sortie_stock(request): 'customValues': [ { 'field': str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']), - 'linkedEntityValue': request.data['porteur'] # ID du porteur + 'stringValue': request.data['porteur'] # ID du porteur }, ], 'description': request.data['description'], @@ -708,7 +708,7 @@ def cash_deposit(request): cash_deposit_data.update({'customValues': [ { 'field': str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']), - 'linkedEntityValue': porteur # ID du porteur + 'stringValue': porteur # ID du porteur }, ]}) @@ -780,7 +780,7 @@ def sortie_retour_eusko(request): }, { 'field': str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']), - 'linkedEntityValue': request.data['porteur'] # ID du porteur + 'stringValue': request.data['porteur'] # ID du porteur }, ], # "Sortie retour d'eusko - Bxxx - Nom du BDC diff --git a/src/api/euskalmoneta_data/views.py b/src/api/euskalmoneta_data/views.py index 2e3117e..85a0821 100644 --- a/src/api/euskalmoneta_data/views.py +++ b/src/api/euskalmoneta_data/views.py @@ -4,6 +4,7 @@ from rest_framework.response import Response from cyclos_api import CyclosAPI, CyclosAPIException +from dolibarr_api import DolibarrAPI, DolibarrAPIException @api_view(['GET']) @@ -26,15 +27,20 @@ def porteurs_eusko(request): List porteurs d'euskos. """ try: - cyclos = CyclosAPI(token=request.user.profile.cyclos_token) - except CyclosAPIException: - return Response({'error': 'Unable to connect to Cyclos!'}, status=status.HTTP_400_BAD_REQUEST) + dolibarr = DolibarrAPI(api_key=request.user.profile.dolibarr_token) + except DolibarrAPIException: + return Response({'error': 'Unable to connect to Dolibarr!'}, status=status.HTTP_400_BAD_REQUEST) + + categories = dolibarr.get(model='categories') + porteur_category_id = -1 + for c in categories: + if c['label'] == 'porteur': + porteur_category_id = c['id'] # user/search for group = 'Porteurs' - porteurs_data = cyclos.post(method='user/search', - data={'groups': [settings.CYCLOS_CONSTANTS['groups']['porteurs']]}) - res = [{'label': item['display'], 'value': item['id']} - for item in porteurs_data['result']['pageItems']] + porteurs_data = dolibarr.get(model='categories/' + porteur_category_id + '/objects', type='member') + res = [{'label': item['firstname'] + ' ' + item['lastname'], 'value': item['firstname'] + ' ' + item['lastname']} + for item in porteurs_data] return Response(res) diff --git a/src/api/gestioninterne/views.py b/src/api/gestioninterne/views.py index 4570ea9..b7c2ecf 100644 --- a/src/api/gestioninterne/views.py +++ b/src/api/gestioninterne/views.py @@ -46,7 +46,7 @@ def sortie_coffre(request): }, { 'field': str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']), - 'linkedEntityValue': request.data['porteur'] # porteur sélectionné par l'utilisateur + 'stringValue': request.data['porteur'] # porteur sélectionné par l'utilisateur }, ], 'description': request.data['description'], # description saisie par l'utilisateur @@ -107,7 +107,7 @@ def entree_coffre(request): try: porteur_id = [ - value['linkedEntityValue']['id'] + value['stringValue'] for value in payment['customValues'] if value['field']['id'] == str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']) and value['field']['internalName'] == 'porteur' @@ -136,7 +136,7 @@ def entree_coffre(request): }, { 'field': str(settings.CYCLOS_CONSTANTS['transaction_custom_fields']['porteur']), - 'linkedEntityValue': porteur_id # porteur de l'opération d'origine + 'stringValue': porteur_id # porteur de l'opération d'origine }, ]