""" Ce fichier permet de gerer le processus d'admission a une formation. admission_setup ==> definit les critère d'admission et contients les infos comme : - List_document - Etapes - user_criterias : -> age -> niveau d'etude, -> etc Un document est defini par : - doc_nom - doc_type - doc_obligatoire (1/0) Une étape est defini par : - etape_nom - etape_code - etape_rang """ import ast from zipfile import ZipFile import bson import pymongo import xlsxwriter from pymongo import MongoClient import json from bson import ObjectId import re from datetime import datetime, date import partner_client import prj_common as mycommon import secrets import inspect import sys, os import csv import pandas as pd from pymongo import ReturnDocument import GlobalVariable as MYSY_GV from math import isnan import GlobalVariable as MYSY_GV import ela_index_bdd_classes as eibdd import email_mgt as email import jinja2 from flask import send_file from xhtml2pdf import pisa from email.message import EmailMessage from email.mime.text import MIMEText from email import encoders import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders import attached_file_mgt """ Creation de la configuration d'admission """ def Add_Admission_Setup(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'code', 'description', 'comment', ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'code',] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner # Verifier que ce code n'existe pas déjà is_existe_admis_setup = MYSY_GV.dbname['admission_setup'].count_documents({'code':str(diction['code']), 'valide':'1', 'partner_owner_recid':str(my_partner['recid'])}) if( is_existe_admis_setup > 0 ): mycommon.myprint( str(inspect.stack()[0][3]) + " Un document avec le code '" + str(diction['code']) + "' existe déjà ") return False, " Un document avec le code '" + str(diction['code']) + "' existe déjà " new_data = diction del diction['token'] # Initialisation des champs non envoyés à vide for val in field_list: if val not in diction.keys(): new_data[str(val)] = "" new_data['valide'] = "1" new_data['locked'] = "0" new_data['creation_date'] = str(datetime.now()) new_data['creation_by'] = str(my_partner['_id']) new_data['partner_owner_recid'] = str(my_partner['recid']) new_data['valide'] = "1" new_data['locked'] = "0" inserted_id = MYSY_GV.dbname['admission_setup'].insert_one(new_data).inserted_id if (not inserted_id): mycommon.myprint( " Impossible de créer la configuration de l'admission (2) ") return False, " Impossible de créer la configuration de l'admission (2) " return True, " La configuration de l'admission a été correctement ajoutée" except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de créer la configuration de l'admission " """ Mise à jour de la configuration d'admission """ def Update_Admission_Setup(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'code', 'description', 'comment', '_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', '_id',] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner new_data = diction # Verifier que la configuration de l'admission is_existe_admis_setup = MYSY_GV.dbname['admission_setup'].count_documents( {'_id': ObjectId(str(diction['_id'])), 'valide': '1', 'partner_owner_recid': str(my_partner['recid'])}) if (is_existe_admis_setup < 0): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant de la configuration est invalide ") return False, " L'identifiant de la configuration est invalide " local_id = str(diction['_id']) del diction['token'] del diction['_id'] new_data['update_date'] = str(datetime.now()) new_data['update_by'] = str(my_partner['_id']) data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['_id'] = ObjectId(local_id) data_cle['valide'] = "1" data_cle['locked'] = "0" result = MYSY_GV.dbname['admission_setup'].find_one_and_update( data_cle, {"$set": new_data}, upsert=False, return_document=ReturnDocument.AFTER ) if ("_id" not in result.keys()): mycommon.myprint( " Impossible de mettre à jour la configuration (2) ") return False, " Impossible de mettre à jour la configuration (2) " return True, " La configuration a été correctement mise à jour" except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de mettre à jour la configuration " """ Suppression d'une configuration d'admission regles : """ def Delete_Admission_Setup(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', '_id',] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', '_id',] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner delete = MYSY_GV.dbname['admission_setup'].delete_one({'_id': ObjectId(str(diction['_id'])), 'partner_owner_recid': str(my_partner['recid']), }, ) """ Supprimer les données dans admission_setup_etape et admission_setup_critere """ delete_etape = MYSY_GV.dbname['admission_setup_etape'].delete_one({'admin_setup_id': str(diction['_id']), 'partner_owner_recid': str(my_partner['recid']), }, ) delete_critere = MYSY_GV.dbname['admission_setup_critere'].delete_one({'admin_setup_id': str(diction['_id']), 'partner_owner_recid': str(my_partner['recid']), }, ) return True, " La configuration d'admission a été correctement supprimée" except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de supprimer la configuration d'admission " """ Recuperer la liste des configuration d'admission d'un partenaire """ def Get_List_Admission_Setup(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['valide'] = "1" data_cle['locked'] = "0" RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer la liste des configurations d'admission " """ Recuperer les données d'une configuration d'admission donnée """ def Get_Given_Admission_Setup(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', '_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', '_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['valide'] = "1" data_cle['locked'] = "0" data_cle['_id'] = ObjectId(str(diction['_id'])) RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup'].find(data_cle): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer les données de la configuration d'admission " """ Ajouter et Update d'une étape à une configuration d'admission """ def Add_Update_Admission_Setup_Etape(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'etape_id', 'admin_setup_id', 'code', 'description', 'comment', 'code_couleur', 'rang' ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_id', 'code', ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner # Verifier la valididé de l'admin setup is_existe_admis_setup = MYSY_GV.dbname['admission_setup'].count_documents({'_id':ObjectId(str(diction['admin_setup_id'])), 'valide':'1', 'partner_owner_recid':str(my_partner['recid'])}) if( is_existe_admis_setup != 1 ): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant de la configuration est invalide ") return False, " L'identifiant de la configuration est invalide " """ Verifier la validité de l'etape """ if( "etape_id" in diction.keys() and diction['etape_id']): is_existe_etape = MYSY_GV.dbname['admission_setup_etape'].count_documents( {'_id': ObjectId(str(diction['etape_id'])), 'valide': '1', 'partner_owner_recid': str(my_partner['recid'])}) if (is_existe_etape != 1): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant de l'étape est invalide ") return False, " L'identifiant de l'étape est invalide " new_data = diction del diction['token'] # Initialisation des champs non envoyés à vide for val in field_list: if val not in diction.keys(): new_data[str(val)] = "" new_data['valide'] = "1" new_data['locked'] = "0" new_data['partner_owner_recid'] = str(my_partner['recid']) new_data['valide'] = "1" new_data['locked'] = "0" if ("etape_id" in diction.keys() and diction['etape_id']): new_data['update_date'] = str(datetime.now()) new_data['update_by'] = str(my_partner['_id']) ret_val = MYSY_GV.dbname['admission_setup_etape'].find_one_and_update( {'_id': ObjectId(str(diction['etape_id'])), 'partner_owner_recid': str(my_partner['recid'])}, {"$set": new_data}, upsert=False, return_document=ReturnDocument.AFTER ) return True, " L'étape a été correctement mise à jour " else: new_data['creation_date'] = str(datetime.now()) new_data['creation_by'] = str(my_partner['_id']) ret_val = MYSY_GV.dbname['admission_setup_etape'].insert_one( new_data ) return True, " L'étape a été correctement ajoutée " except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible d'ajouter ou mettre à jour l'étape " """ Suppression d'une étape à une configuration d'admission """ def Delete_Admission_Setup_Etape(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', '_id' ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', '_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner delete = MYSY_GV.dbname['admission_setup_etape'].delete_one({'_id': ObjectId(str(diction['_id'])), 'partner_owner_recid': str(my_partner['recid']), }, ) return True, " L'étape a été correctement supprimée" except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de supprimer l'étape " """ Recuperer la liste des etapes d'une configuration d'admission d'un partenaire """ def Get_List_Admission_Setup_Etape(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_id'] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['admin_setup_id'] = str(diction['admin_setup_id']) data_cle['valide'] = "1" data_cle['locked'] = "0" RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup_etape'].find(data_cle).sort([("rang", pymongo.ASCENDING), ("_id", pymongo.DESCENDING), ]): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer la liste des étapes de configuration d'admission " """ Recuperer les données d'une etape configuration d'admission donnée """ def Get_Given_Admission_Setup_Etape(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_etape_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_etape_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['valide'] = "1" data_cle['locked'] = "0" data_cle['_id'] = ObjectId(str(diction['admin_setup_etape_id'])) RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup_etape'].find(data_cle): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer les données de l'étape " """ Ajouter et Update d'un critère à une configuration d'admission """ def Add_Update_Admission_Setup_Critere(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_id', 'code', 'description', 'comment', 'valeur', 'critere_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_id', 'code', ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner # Verifier la valididé de l'admin setup is_existe_admis_setup = MYSY_GV.dbname['admission_setup'].count_documents({'_id':ObjectId(str(diction['admin_setup_id'])), 'valide':'1', 'partner_owner_recid':str(my_partner['recid'])}) if( is_existe_admis_setup != 1 ): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant de la configuration est invalide ") return False, " L'identifiant de la configuration est invalide " """ Verifier la validité du critère """ if ("critere_id" in diction.keys() and diction['critere_id']): is_existe_critere = MYSY_GV.dbname['admission_setup_critere'].count_documents( {'_id': ObjectId(str(diction['critere_id'])), 'valide': '1', 'partner_owner_recid': str(my_partner['recid'])}) if (is_existe_critere != 1): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant du critère est invalide ") return False, " L'identifiant du critère est invalide " new_data = diction del diction['token'] # Initialisation des champs non envoyés à vide for val in field_list: if val not in diction.keys(): new_data[str(val)] = "" new_data['valide'] = "1" new_data['locked'] = "0" new_data['creation_date'] = str(datetime.now()) new_data['creation_by'] = str(my_partner['_id']) new_data['partner_owner_recid'] = str(my_partner['recid']) new_data['valide'] = "1" new_data['locked'] = "0" if ("critere_id" in diction.keys() and diction['critere_id']): new_data['update_date'] = str(datetime.now()) new_data['update_by'] = str(my_partner['_id']) ret_val = MYSY_GV.dbname['admission_setup_critere'].find_one_and_update( {'_id': ObjectId(str(diction['critere_id'])), 'partner_owner_recid': str(my_partner['recid']) }, {"$set": new_data}, upsert=False, return_document=ReturnDocument.AFTER ) return True, " Le critère a été correctement mis à jour " else: new_data['creation_date'] = str(datetime.now()) new_data['creation_by'] = str(my_partner['_id']) ret_val = MYSY_GV.dbname['admission_setup_critere'].insert_one(new_data) return True, " Le critère a été correctement ajouté " except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible d'ajouter ou mettre à jour le critère " """ Suppression d'un critère à une configuration d'admission """ def Delete_Admission_Setup_Critere(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', '_id' ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', '_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner delete = MYSY_GV.dbname['admission_setup_critere'].delete_one({'_id': ObjectId(str(diction['_id'])), 'partner_owner_recid': str(my_partner['recid']), }, ) return True, " Le critère a été correctement supprimé" except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de supprimer le critère " """ Recuperer la liste des critères d'une configuration d'admission d'un partenaire """ def Get_List_Admission_Setup_Critere(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_id'] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['admin_setup_id'] = str(diction['admin_setup_id']) data_cle['valide'] = "1" data_cle['locked'] = "0" RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup_critere'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer la liste des critères de configuration d'admission " """ Recuperer les données d'une etape configuration d'admission donnée """ def Get_Given_Admission_Setup_Critere(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_etape_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_etape_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['valide'] = "1" data_cle['locked'] = "0" data_cle['_id'] = ObjectId(str(diction['admin_setup_etape_id'])) RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup_critere'].find(data_cle): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer les données du critère " """ Ajouter et Update d'un document à une configuration d'admission """ def Add_Update_Admission_Setup_Document(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_id', 'code', 'description', 'comment', 'type', 'obligatoire', 'document_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_id', 'code', 'type' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner # Verifier la valididé de l'admin setup is_existe_admis_setup = MYSY_GV.dbname['admission_setup'].count_documents({'_id':ObjectId(str(diction['admin_setup_id'])), 'valide':'1', 'partner_owner_recid':str(my_partner['recid'])}) if( is_existe_admis_setup != 1 ): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant de la configuration est invalide ") return False, " L'identifiant de la configuration est invalide " """ Verifier la validité du document """ if ("document_id" in diction.keys() and diction['document_id']): is_existe_document = MYSY_GV.dbname['admission_setup_document'].count_documents( {'_id': ObjectId(str(diction['document_id'])), 'valide': '1', 'partner_owner_recid': str(my_partner['recid'])}) if (is_existe_document != 1): mycommon.myprint( str(inspect.stack()[0][3]) + " L'identifiant du document est invalide ") return False, " L'identifiant du document est invalide " if( "type" in diction.keys() and diction['type'] not in MYSY_GV.STORED_TYPE_FILE): mycommon.myprint( str(inspect.stack()[0][3]) + " Les types de fichier autorisés sont "+str(MYSY_GV.STORED_TYPE_FILE)) return False, " Les types de fichier autorisés sont "+str(MYSY_GV.STORED_TYPE_FILE) new_data = diction del diction['token'] # Initialisation des champs non envoyés à vide for val in field_list: if val not in diction.keys(): new_data[str(val)] = "" new_data['valide'] = "1" new_data['locked'] = "0" new_data['creation_date'] = str(datetime.now()) new_data['creation_by'] = str(my_partner['_id']) new_data['partner_owner_recid'] = str(my_partner['recid']) new_data['valide'] = "1" new_data['locked'] = "0" if ("document_id" in diction.keys() and diction['document_id']): new_data['update_date'] = str(datetime.now()) new_data['update_by'] = str(my_partner['_id']) ret_val = MYSY_GV.dbname['admission_setup_document'].find_one_and_update( {'_id': ObjectId(str(diction['document_id'])), 'partner_owner_recid': str(my_partner['recid']) }, {"$set": new_data}, upsert=False, return_document=ReturnDocument.AFTER ) return True, " Le document a été correctement mis à jour " else: new_data['creation_date'] = str(datetime.now()) new_data['creation_by'] = str(my_partner['_id']) ret_val = MYSY_GV.dbname['admission_setup_document'].insert_one(new_data) return True, " Le document a été correctement ajouté " except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible d'ajouter ou mettre à jour le document " """ Suppression d'un document à une configuration d'admission """ def Delete_Admission_Setup_Document(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', '_id' ] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé") return False, " Les informations fournies sont incorrectes" """ Verification des champs obligatoires """ field_list_obligatoire = ['token', '_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes" """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner delete = MYSY_GV.dbname['admission_setup_document'].delete_one({'_id': ObjectId(str(diction['_id'])), 'partner_owner_recid': str(my_partner['recid']), }, ) return True, " Le document a été correctement supprimé" except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de supprimer le document " """ Recuperer la liste des documents d'une configuration d'admission d'un partenaire """ def Get_List_Admission_Setup_Document(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_id'] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['admin_setup_id'] = str(diction['admin_setup_id']) data_cle['valide'] = "1" data_cle['locked'] = "0" RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup_document'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer la liste des document de configuration d'admission " """ Recuperer les données d'un document configuration d'admission donnée """ def Get_Given_Admission_Setup_Document(diction): try: diction = mycommon.strip_dictionary(diction) """ Verification des input acceptés """ field_list = ['token', 'admin_setup_document_id'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list and val.startswith('my_') is False: mycommon.myprint(str( inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé ") return False, " Les informations fournies sont incorrectes", """ Verification des champs obligatoires """ field_list_obligatoire = ['token', 'admin_setup_document_id' ] for val in field_list_obligatoire: if val not in diction: mycommon.myprint( str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ") return False, " Les informations fournies sont incorrectes", """ Verification de l'identité et autorisation de l'entité qui appelle cette API """ token = "" if ("token" in diction.keys()): if diction['token']: token = diction['token'] local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) if (local_status is not True): return local_status, my_partner """ Clés de mise à jour """ data_cle = {} data_cle['partner_owner_recid'] = str(my_partner['recid']) data_cle['valide'] = "1" data_cle['locked'] = "0" data_cle['_id'] = ObjectId(str(diction['admin_setup_document_id'])) RetObject = [] val_tmp = 0 for retval in MYSY_GV.dbname['admission_setup_document'].find(data_cle): user = retval user['id'] = str(val_tmp) val_tmp = val_tmp + 1 RetObject.append(mycommon.JSONEncoder().encode(user)) return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, " Impossible de récupérer les données du document "