bifurqué depuis cliss21/creme_center_fibois
feat(civicrm.i2r_pk.py): ajout d'une checklist d'entree
Parent
9661474bb2
révision
b8dd2e47b8
|
@ -7,12 +7,20 @@ import logging
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def gen_i2r_pk(creme_model, creme_fname, MTX_I2R):
|
||||
def gen_i2r_pk(creme_model, creme_fname, MTX_I2R, check_list=None, hint=None):
|
||||
"""
|
||||
creme_model: django.db.Model model: dans cremecrm ou trouver le champ
|
||||
creme_fname: str: nom du champs dans cremecrm
|
||||
MTX_I2R: dict: passage des nom civicrm vers cremecrm
|
||||
check_list: list: verifie que les clef de MTX_I2R sont dans check_list
|
||||
"""
|
||||
if check_list is not None:
|
||||
subset = set(MTX_I2R)
|
||||
fullset = set(check_list)
|
||||
errorset = subset - fullset
|
||||
hint = hint or ''
|
||||
if errorset:
|
||||
logger.warning(f"MTX_I2R({hint}) keys:{errorset} not in checklist")
|
||||
R_PK = dict(creme_model.objects.values_list(creme_fname, 'pk'))
|
||||
i2r_pk = {}
|
||||
for name in MTX_I2R:
|
||||
|
@ -30,11 +38,15 @@ def gen_i2r_pk(creme_model, creme_fname, MTX_I2R):
|
|||
return i2r_pk
|
||||
|
||||
|
||||
def gen_i2r_pk_from_list(creme_model, creme_fname, field_list):
|
||||
def gen_i2r_pk_from_list(
|
||||
creme_model, creme_fname, field_list, check_list=None, hint=None
|
||||
):
|
||||
"""
|
||||
dans le cas ou les nom dans les CHOICES de civicrm sont exactement les
|
||||
memes que ceux utilisé dans cremecrm alors la matrice de passage est
|
||||
une simple identité et une liste de champs suffit.
|
||||
"""
|
||||
MTX_I2R = {field: field for field in field_list}
|
||||
return gen_i2r_pk(creme_model, creme_fname, MTX_I2R)
|
||||
return gen_i2r_pk(
|
||||
creme_model, creme_fname, MTX_I2R, check_list=check_list, hint=hint
|
||||
)
|
||||
|
|
Chargement…
Référencer dans un nouveau ticket