Projet

Général

Profil

0002-toulouse-maelis-remove-dupplicate-keys-from-all-refe.patch

Nicolas Roche (absent jusqu'au 3 avril), 01 décembre 2022 18:54

Télécharger (2,71 ko)

Voir les différences:

Subject: [PATCH 2/4] toulouse-maelis: remove dupplicate keys from all
 referencials (#71858)

 passerelle/contrib/toulouse_maelis/models.py | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
passerelle/contrib/toulouse_maelis/models.py
92 92
        data = cache.get(cache_key)
93 93
        if data is None:
94 94
            response = self.call('Family', 'read' + referential_name + 'List')
95 95
            data_list = []
96 96
            if referential_name == 'Organ':
97 97
                data_list = [{'id': x.id, 'text': x.code} for x in response]
98 98
            else:
99 99
                data_list = [{'id': x.code, 'text': x.libelle} for x in response]
100

  
101
            # remove redundant codes from list
102
            uniq_text = set()
103
            uniq_data = []
104
            for item in data_list:
105
                item['text'] = item['text'].strip()
106
                if item['text'] not in uniq_text:
107
                    uniq_data.append(item)
108
                    uniq_text.add(item['text'])
109

  
100 110
            data = {
101
                'list': data_list,
111
                'list': uniq_data,
102 112
                'dict': {x['id']: x['text'] for x in data_list},
103 113
            }
104 114
            # put in cache for two hours
105 115
            cache.set(cache_key, data, 3600 * 2)
106 116
        return data
107 117

  
108 118
    def get_referential_value(self, referential_name, key):
109 119
        try:
......
373 383

  
374 384
    @endpoint(
375 385
        display_category='Famille',
376 386
        description='liste des catégories socio-professionnelles',
377 387
        name='read-csp-list',
378 388
        perm='can_access',
379 389
    )
380 390
    def read_csp_list(self, request):
381
        data = self.get_referential('CSP')['list']
382

  
383
        # remove redundant codes
384
        uniq_text = set()
385
        uniq_data = []
386
        for item in data:
387
            item['text'] = item['text'].strip()
388
            if item['text'] not in uniq_text:
389
                uniq_data.append(item)
390
                uniq_text.add(item['text'])
391
        return {'data': uniq_data}
391
        return {'data': self.get_referential('CSP')['list']}
392 392

  
393 393
    @endpoint(
394 394
        display_category='Famille',
395 395
        description='Liste des régimes alimentaires',
396 396
        name='read-dietcode-list',
397 397
        perm='can_access',
398 398
    )
399 399
    def read_dietcode_list(self, request):
400
-