diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7561b9a..28706c3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,12 +1,13 @@ - - + + - + + @@ -72,13 +73,6 @@ @@ -430,7 +431,6 @@ - @@ -455,6 +455,7 @@ - \ No newline at end of file diff --git a/Log/log_file.log b/Log/log_file.log index db788cb..7a12a75 100644 --- a/Log/log_file.log +++ b/Log/log_file.log @@ -1789448,3 +1789448,549 @@ INFO:werkzeug:127.0.0.1 - - [01/Sep/2023 18:39:34] "POST /myclass/api/test_ INFO:root:2023-09-01 18:39:34.714992 : Security check : IP adresse '127.0.0.1' connected INFO:root:2023-09-01 18:39:35.220198 : test_jnja2_database - Aucun template avec 'ref_interne':'test01' INFO:werkzeug:127.0.0.1 - - [01/Sep/2023 18:39:35] "POST /myclass/api/test_jnja2_database/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:48:27.632942 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 10:48:27.632942 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 10:48:27.632942 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 10:48:27.633932 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 10:48:27.633932 : ++ LMS_BAS_URL mysy-training.com/ ++ +INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. + * Running on http://localhost:5001 +INFO:werkzeug:Press CTRL+C to quit +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 10:48:38.132609 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 10:48:38.132609 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 10:48:38.132609 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 10:48:38.132609 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 10:48:38.132609 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:root:2023-09-04 10:48:50.324180 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:50] "POST /myclass/api/partner_login/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:48:50.508584 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:48:50.511824 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:48:50.516400 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:48:50.520822 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:50] "POST /myclass/api/LMS_Get_Partner_Data/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:50] "POST /myclass/api/getRecodedImage/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:48:50.535819 : Connexion du partner recid = dbdd36f3d86a73e2bfac7b3f10f062ce1e7c22f7da37de192a OK. Mise ŕ jour du firstconnexion et/ou lastconnexion : OK +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:50] "POST /myclass/api/get_partner_account/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:50] "POST /myclass/api/get_partner_class/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:48:50.594522 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:50] "POST /myclass/api/find_partner_class_like/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:48:58.216883 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:48:58.219607 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:48:58.221608 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:48:58.226724 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:58] "POST /myclass/api/get_partner_class/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:58] "POST /myclass/api/GetPartnerAttestation_Certificat/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:58] "POST /myclass/api/Get_Partner_List_Partner_Client/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:48:58] "POST /myclass/api/GetAllValideSessionPartner_List/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:49:01.649991 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:49:01.651985 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:49:01.655021 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:49:01] "POST /myclass/api/GetAllClassStagiaire/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:49:01] "POST /myclass/api/GetAllClassStagiaire/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:49:01] "POST /myclass/api/GetSessionFormation/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:55:03.289429 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:03.291419 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:03.295420 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:03.300599 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:03] "POST /myclass/api/GetPartnerAttestation_Certificat/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:03] "POST /myclass/api/get_partner_class/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:03] "POST /myclass/api/Get_Partner_List_Partner_Client/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:03] "POST /myclass/api/GetAllValideSessionPartner_List/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:55:50.134133 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:50.137130 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:50.138136 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:50.144133 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:50] "POST /myclass/api/get_partner_class/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:50] "POST /myclass/api/GetPartnerAttestation_Certificat/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:50] "POST /myclass/api/Get_Partner_List_Partner_Client/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:50] "POST /myclass/api/GetAllValideSessionPartner_List/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:55:57.143217 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:57.147219 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/getRecodedImage/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:55:57.153505 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:57.156973 : Connexion du partner recid = dbdd36f3d86a73e2bfac7b3f10f062ce1e7c22f7da37de192a OK. Mise ŕ jour du firstconnexion et/ou lastconnexion : OK +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/get_partner_account/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/LMS_Get_Partner_Data/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:55:57.279869 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:57.283433 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:57.287136 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:55:57.293131 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/get_partner_class/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/GetPartnerAttestation_Certificat/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/Get_Partner_List_Partner_Client/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:55:57] "POST /myclass/api/GetAllValideSessionPartner_List/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:56:01.029611 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:56:01.033464 : Security check : IP adresse '127.0.0.1' connected +INFO:root:2023-09-04 10:56:01.037501 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:56:01] "POST /myclass/api/GetSessionFormation/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:56:01] "POST /myclass/api/GetAllClassStagiaire/ HTTP/1.1" 200 - +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:56:01] "POST /myclass/api/GetAllClassStagiaire/ HTTP/1.1" 200 - +INFO:root:2023-09-04 10:56:03.151761 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 10:56:03] "POST /myclass/api/GetSpecificPartnerAttestation_Certificat/ HTTP/1.1" 200 - +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:24:33.982899 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:24:33.983957 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:24:33.983957 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:24:33.983957 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:24:33.983957 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:25:27.837342 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:25:27.837342 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:25:27.837342 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:25:27.837342 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:25:27.837342 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:26:21.642655 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:26:21.642655 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:26:21.642655 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:26:21.642655 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:26:21.642655 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:29:04.638431 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:29:04.638431 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:29:04.638431 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:29:04.638431 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:29:04.638431 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:29:34.206485 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:29:34.206485 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:29:34.206485 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:29:34.206485 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:29:34.206485 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:29:52.314638 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:29:52.315638 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:29:52.315638 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:29:52.315638 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:29:52.315638 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:30:10.503319 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:30:10.503319 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:30:10.504319 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:30:10.504319 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:30:10.504319 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:30:33.034320 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:30:33.034320 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:30:33.034320 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:30:33.035323 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:30:33.035323 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:31:03.615522 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:31:03.615522 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:31:03.615522 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:31:03.615522 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:31:03.615522 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:32:45.665729 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:32:45.665729 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:32:45.665729 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:32:45.665729 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:32:45.666242 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:33:51.574731 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:33:51.575736 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:33:51.575736 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:33:51.575736 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:33:51.575736 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:34:05.175389 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:34:05.175389 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:34:05.175389 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:34:05.175389 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:34:05.175389 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:34:42.777336 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:34:42.777336 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:34:42.777336 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:34:42.777336 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:34:42.777336 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:35:13.505367 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:35:13.505367 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:35:13.505367 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:35:13.505367 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:35:13.505367 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:35:34.426158 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:35:34.427158 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:35:34.427158 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:35:34.427158 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:35:34.427158 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\main.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:37:33.488779 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:37:33.489778 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:37:33.489778 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:37:33.489778 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:37:33.489778 : ++ LMS_BAS_URL mysy-training.com/ ++ +INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. + * Running on http://localhost:5001 +INFO:werkzeug:Press CTRL+C to quit +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:37:45.079597 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:37:45.079597 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:37:45.079597 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:37:45.079597 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:37:45.080120 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:root:2023-09-04 11:37:53.805636 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:37:53] "POST /myclass/api/Get_Personnalisable_Collection HTTP/1.1" 308 - +INFO:root:2023-09-04 11:37:53.814989 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:37:53] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 11:38:58.888828 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 11:38:58.888828 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 11:38:58.888828 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 11:38:58.889828 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 11:38:58.889828 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:root:2023-09-04 11:38:58.933129 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:38:58] "POST /myclass/api/Get_Personnalisable_Collection HTTP/1.1" 308 - +INFO:root:2023-09-04 11:38:58.940130 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:38:58] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:42:03.689161 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:42:03] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:48:49.590870 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:48:49] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:49:09.159867 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:49:09] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:50:16.577349 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:50:16] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:50:55.033298 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:50:55] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:51:45.562802 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:51:45] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:53:08.500848 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:53:08] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:57:06.256621 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:57:06] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:57:33.688820 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:57:33] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 11:59:01.976478 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 11:59:01] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:01:06.587510 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:01:06] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:01:14.346010 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:01:14] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:01:50.457829 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:01:50] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:02:20.284675 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:02:20] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:02:27.378987 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:02:27] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:02:47.538113 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:02:47] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:02:55.011519 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:02:55] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:03:38.321486 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:03:38] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:05:05.802004 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:05:05] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:08:42.621822 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:08:42] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:09:00.173716 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:09:00] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:09:42.162146 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:09:42] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:13:04.999664 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:13:05] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:14:07.452356 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:14:07] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:14:14.428611 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:14:14] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:14:19.112856 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:14:19] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:15:32.928270 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:15:32] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:15:58.373318 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:15:58] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:17:44.895210 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:17:44] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:17:50.723501 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:17:50] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:18:19.780177 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:18:19] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:18:26.518450 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:18:26] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 12:19:03.288303 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 12:19:03.288303 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 12:19:03.288303 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 12:19:03.288303 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 12:19:03.288303 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:root:2023-09-04 12:19:27.477963 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:19:27] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:21:20.485626 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:21:20] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:21:29.994865 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:21:29] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:22:01.966806 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:22:01] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:22:08.773311 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:22:08] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:22:40.168234 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:22:40] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:22:56.819629 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:22:56] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:23:04.363168 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:23:04] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:25:02.999867 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:25:03] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:25:20.708784 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:25:20] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:25:37.212379 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:25:37] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:25:41.690362 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:25:41] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:26:50.939894 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:26:50] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:26:59.581319 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:26:59] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:27:46.553428 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:27:46] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:28:06.940923 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:28:06] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:28:13.158338 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:28:13] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:30:23.378814 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:30:23] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:30:35.668935 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:30:35] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:30:41.604439 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:30:41] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:31:32.037606 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:31:32] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:32:01.684718 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:32:01] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:32:12.088509 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:32:12] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:33:03.824279 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:33:03] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:33:58.210593 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:33:58] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:34:05.143061 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:34:05] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:34:30.114578 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:34:30] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:34:35.779938 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:34:35] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:35:45.351080 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:35:45] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:36:10.592134 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:36:10] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:36:50.369865 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:36:50] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:38:08.889157 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:38:08] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:38:15.410897 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:38:15] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:38:44.951700 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:38:44] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:39:10.471493 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:39:10] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:40:05.739548 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:40:05] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:41:17.885927 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:41:17] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:41:27.795263 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:41:27] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:42:07.877146 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:42:07] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:42:16.616633 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:42:16] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:42:56.334614 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:42:56] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:43:02.719411 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:43:02] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:43:39.291818 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:43:39] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:43:47.058194 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:43:47] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:44:08.876660 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:44:08] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:44:52.796780 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:44:52] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:46:46.133349 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:46:46] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:48:22.433665 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:48:22] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:49:34.552248 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:49:34] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:56:23.180001 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:56:23] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:56:57.165531 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:56:57] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:57:48.451620 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:57:48] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 12:59:36.809727 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 12:59:36] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:00:20.048042 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:00:20] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:01:04.811363 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:01:04] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:01:09.219781 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:01:09] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:02:21.497564 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:02:21] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:03:06.338935 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:03:06] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:04:07.257186 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:04:07] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:04:11.660831 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:04:11] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:05:17.548435 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:05:17] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:06:29.523574 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:06:29] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:08:25.897515 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:08:25] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:08:54.696561 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:08:54] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:08:58.825648 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:08:58] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:11:02.535002 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:11:02] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:11:30.806953 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:11:30] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:12:33.223910 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:12:33] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:13:31.403759 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:13:31] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:werkzeug: * Detected change in 'C:\\Users\\billa\\Documents\\myclass.com\\Siteweb\\Production\\Ela_back\\Back_Office\\tools_cherif\\tools_cherif.py', reloading +INFO:werkzeug: * Restarting with stat +INFO:root:2023-09-04 13:14:57.371282 : ++++ ENVIRONNEMENT DEVELOPPEMENT ++++ +INFO:root:2023-09-04 13:14:57.371282 : ++ DATABASE mongodb://localhost:27017/cherifdb_dev ++ +INFO:root:2023-09-04 13:14:57.371282 : ++ DBNAME Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'cherifdb_dev') ++ +INFO:root:2023-09-04 13:14:57.371282 : ++ FLASK PORT 5001 ++ +INFO:root:2023-09-04 13:14:57.372487 : ++ LMS_BAS_URL mysy-training.com/ ++ +WARNING:werkzeug: * Debugger is active! +INFO:werkzeug: * Debugger PIN: 902-498-322 +INFO:root:2023-09-04 13:15:01.572628 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:15:01] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:15:11.383819 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:15:11] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:15:50.001551 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:15:50] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:17:23.630365 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:17:23] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:19:04.750716 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:19:04] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:19:10.989672 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:19:10] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:21:07.676098 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:21:07] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:21:15.463307 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:21:15] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:22:03.009542 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:22:03] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:22:08.067627 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:22:08] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:25:47.717927 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:25:47] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:25:57.124410 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:25:57] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:26:20.421362 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:26:20] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:29:08.700295 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:29:08] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:29:37.868702 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:29:37] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:30:22.529626 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:30:22] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:30:27.919172 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:30:27] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:31:00.517867 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:31:00] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:31:21.623831 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:31:21] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:31:30.732349 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:31:30] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:32:34.298330 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:32:34] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:32:57.839279 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:32:57] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:33:21.058453 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:33:21] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:33:36.412907 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:33:36] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:34:57.554977 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:34:57] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:35:06.125325 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:35:06] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:35:27.105788 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:35:27] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:36:12.906592 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:36:12] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:36:20.186764 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:36:20] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:37:02.492011 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:37:02] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:37:26.460933 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:37:26] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:38:45.458277 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:38:45] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:38:58.765850 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:38:58] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:39:31.296028 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:39:31] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:39:36.373421 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:39:36] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:40:13.029171 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:40:13] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - +INFO:root:2023-09-04 13:40:21.872224 : Security check : IP adresse '127.0.0.1' connected +INFO:werkzeug:127.0.0.1 - - [04/Sep/2023 13:40:21] "POST /myclass/api/Get_Personnalisable_Collection/ HTTP/1.1" 200 - diff --git a/main.py b/main.py index c95e211..1245e7a 100644 --- a/main.py +++ b/main.py @@ -50,6 +50,7 @@ import Contact as Contact import Activite as Activite import ressources_humaines as ressources_humaines import ressources_materiels as ressources_materiels +import partner_order as partner_order app = Flask(__name__) cors = CORS(app, resources={r"/foo": {"origins": "*"}}) @@ -2601,6 +2602,21 @@ def test_jnja2_database(): return jsonify(status=localStatus, message=message) +""" +API Test : Recuperation des collections et champ personnalisables +""" +@app.route('/myclass/api/Get_Personnalisable_Collection/', methods=['POST','GET']) +@crossdomain(origin='*') +def Get_Personnalisable_Collection(): + # On recupere le corps (payload) de la requete + payload = mycommon.strip_dictionary (request.form.to_dict()) + print(" ### Get_Personnalisable_Collection : payload = ", payload) + localStatus, message = tools_cherif.Get_Personnalisable_Collection() + return jsonify(status=localStatus, message=message) + + + + """ Cette API crĂ©er un user LMS Mysy, c'est a dire un user chamilo @@ -4168,6 +4184,44 @@ def Get_List_Ressource_Materielle_with_filter(): +""" +API de creation d'une commande client d'un partner +""" +@app.route('/myclass/api/Add_Partner_Order/', methods=['POST','GET']) +@crossdomain(origin='*') +def Add_Partner_Order(): + # On recupere le corps (payload) de la requete + payload = mycommon.strip_dictionary (request.form.to_dict()) + print(" ### Add_Partner_Order payload = ",payload) + status, retval = ressources_materiels.Add_Partner_Order(payload) + return jsonify(status=status, message=retval) + + + +""" +API de recuperation d'une commande client d'un partner en utilisant le '_id' +""" +@app.route('/myclass/api/Get_Given_Partner_Order/', methods=['POST','GET']) +@crossdomain(origin='*') +def Get_Given_Partner_Order(): + # On recupere le corps (payload) de la requete + payload = mycommon.strip_dictionary (request.form.to_dict()) + print(" ### Get_Given_Partner_Order payload = ",payload) + status, retval = ressources_materiels.Get_Given_Partner_Order(payload) + return jsonify(status=status, message=retval) + + +""" +API de recuperation d'une commande client d'un partner en utilisant la 'ref_interne' +""" +@app.route('/myclass/api/Get_Given_Partner_Order_From_Internal_ref/', methods=['POST','GET']) +@crossdomain(origin='*') +def Get_Given_Partner_Order_From_Internal_ref(): + # On recupere le corps (payload) de la requete + payload = mycommon.strip_dictionary (request.form.to_dict()) + print(" ### Get_Given_Partner_Order_From_Internal_ref payload = ",payload) + status, retval = ressources_materiels.Get_Given_Partner_Order_From_Internal_ref(payload) + return jsonify(status=status, message=retval) diff --git a/partner_document_mgt.py b/partner_document_mgt.py index f3b9f2d..cafd66d 100644 --- a/partner_document_mgt.py +++ b/partner_document_mgt.py @@ -81,9 +81,9 @@ def Add_Partner_Document(diction): if (len(str(ref_interne)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'ref_interne' fait plus de 255 caractère ") + 3]) + " - Le champ 'ref_interne' fait plus de 255 caractères ") - return False, " - Le champ 'ref_interne' fait plus de 255 caractère " + return False, " - Le champ 'ref_interne' fait plus de 255 caractères " data['ref_interne'] = diction['ref_interne'] nom = "" @@ -93,9 +93,9 @@ def Add_Partner_Document(diction): if (len(str(nom)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'nom' fait plus de 255 caractère ") + 3]) + " - Le champ 'nom' fait plus de 255 caractères ") - return False, " - Le champ 'nom' fait plus de 255 caractère " + return False, " - Le champ 'nom' fait plus de 255 caractères " data['nom'] = diction['nom'] @@ -107,9 +107,9 @@ def Add_Partner_Document(diction): if (len(str(sujet)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'sujet' fait plus de 255 caractère ") + 3]) + " - Le champ 'sujet' fait plus de 255 caractères ") - return False, " - Le champ 'sujet' fait plus de 255 caractère " + return False, " - Le champ 'sujet' fait plus de 255 caractères " data['sujet'] = diction['sujet'] @@ -242,9 +242,9 @@ def Update_Partner_Document(diction): if (len(str(ref_interne)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'ref_interne' fait plus de 255 caractère ") + 3]) + " - Le champ 'ref_interne' fait plus de 255 caractères ") - return False, " - Le champ 'ref_interne' fait plus de 255 caractère " + return False, " - Le champ 'ref_interne' fait plus de 255 caractères " data_update['ref_interne'] = diction['ref_interne'] nom = "" @@ -254,9 +254,9 @@ def Update_Partner_Document(diction): if (len(str(nom)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'nom' fait plus de 255 caractère ") + 3]) + " - Le champ 'nom' fait plus de 255 caractères ") - return False, " - Le champ 'nom' fait plus de 255 caractère " + return False, " - Le champ 'nom' fait plus de 255 caractères " data_update['nom'] = diction['nom'] sujet = "" @@ -266,9 +266,9 @@ def Update_Partner_Document(diction): if (len(str(sujet)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'sujet' fait plus de 255 caractère ") + 3]) + " - Le champ 'sujet' fait plus de 255 caractères ") - return False, " - Le champ 'sujet' fait plus de 255 caractère " + return False, " - Le champ 'sujet' fait plus de 255 caractères " data_update['sujet'] = diction['sujet'] type_doc = "" diff --git a/partner_order.py b/partner_order.py new file mode 100644 index 0000000..1b01363 --- /dev/null +++ b/partner_order.py @@ -0,0 +1,585 @@ +""" +Ce fichier permet de gerer les devis et les commandes d'un partenaires. +Pour prĂ©cision, une commande a les status suivants : +- devis +- Commande +- FacturĂ© +- AnnulĂ© + +Une commande est defini par +order_header et order_lines comme suit : + +order {order_header_ref:'xxx', order_header_amount:'yyyy', order_line[ {order_line1}, {order_line2}, ....,{}] } +""" +import pymongo +from pymongo import MongoClient +import json +from bson import ObjectId +import re +from datetime import datetime +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 + +def Add_Partner_Order(diction): + try: + diction = mycommon.strip_dictionary(diction) + + """ + Verification des input acceptĂ©s + """ + field_list = ['token', 'order_header_client_id', 'order_header_description', 'order_header_comment', 'order_header_date_cmd', 'order_header_date_expiration', + 'order_header_adr_fact_adresse', 'order_header_adr_fact_code_postal', 'order_header_adr_fact_ville','order_header_adr_fact_pays', + 'order_header_adr_liv_adresse', 'order_header_adr_liv_code_postal', 'order_header_adr_liv_ville', 'order_header_adr_liv_pays' + 'order_header_condition_paiement', 'order_header_ref_client', 'order_header_vendeur_id', + 'order_header_ref_interne', 'order_header_total_ht', 'order_header_total_tax', 'order_header_total_ttc', 'order_header_status', 'order_header_type_reduction', + 'order_header_type_reduction_valeur', 'order_header_montant_reduction', 'order_lines'] + + """ + /!\ A noter que "order_lines" est tableau [] qui peut contenir les keys suivantes : 'order_line_formation', 'order_line_qty', 'order_line_prix_unitaire', 'order_line_tax', 'order_line_type_reduction', 'order_line_type_valeur', 'order_line_montant_reduction' + ainsi, order_lines sera du style order_lines[ {order_line_formation:'xxx', order_line_qty:'2', etc }, {order_line_formation:'yyy', order_line_qty:'7', etc }, ....{}} + + """ + + incom_keys = diction.keys() + for val in incom_keys: + if val not in field_list: + 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', "order_header_client", "order_header_date_cmd"] + + 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 liste ") + 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 + + + # Recuperation des champs + data = {} + data['partner_owner_recid'] = my_partner['recid'] + + order_header_client_id = "" + if ("order_header_client_id" in diction.keys()): + if diction['order_header_client_id']: + order_header_client_id = diction['order_header_client_id'] + + # Verifier que le client existe bien pour ce partner + is_client_exist_count = MYSY_GV.dbname['partner_client'].count_documents({'_id':ObjectId(str(order_header_client_id)), 'valide':'1', + 'locked':'0', 'partner_recid':str(my_partner['recid'])}) + + if( is_client_exist_count <= 0): + mycommon.myprint(str(inspect.stack()[0][3]) + " - Le client est invalide ") + return False, " - Le client est invalide " + data['order_header_client_id'] = diction['order_header_client_id'] + + + order_header_description = "" + if ("order_header_description" in diction.keys()): + if diction['order_header_description']: + order_header_description = diction['order_header_description'] + if (len(str(order_header_description)) > 500): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_description' fait plus de 500 caractères ") + + return False, " - Le champ 'Description' fait plus de 500 caractères " + data['order_header_description'] = diction['order_header_description'] + + order_header_comment = "" + if ("order_header_comment" in diction.keys()): + if diction['order_header_comment']: + order_header_comment = diction['order_header_comment'] + if (len(str(order_header_comment)) > 500): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_comment' fait plus de 500 caractères ") + + return False, " - Le champ 'Commentaire' fait plus de 500 caractères " + data['order_header_comment'] = diction['order_header_comment'] + + order_header_condition_paiement = "" + if ("order_header_condition_paiement" in diction.keys()): + if diction['order_header_condition_paiement']: + order_header_condition_paiement = diction['order_header_condition_paiement'] + if (len(str(order_header_condition_paiement)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_condition_paiement' fait plus de 255 caractères ") + + return False, " - Le champ 'Condition de paiement' fait plus de 255 caractères " + data['order_header_condition_paiement'] = diction['order_header_condition_paiement'] + + order_header_ref_interne = "" + if ("order_header_ref_interne" in diction.keys()): + if diction['order_header_ref_interne']: + order_header_ref_interne = diction['order_header_ref_interne'] + if (len(str(order_header_ref_interne)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_ref_interne' fait plus de 255 caractères ") + + return False, " - Le champ 'ref_interne' fait plus de 255 caractères " + data['order_header_ref_interne'] = diction['order_header_ref_interne'] + + + order_header_ref_externe = "" + if ("order_header_ref_externe" in diction.keys()): + if diction['order_header_ref_externe']: + order_header_ref_externe = diction['order_header_ref_externe'] + if (len(str(order_header_ref_externe)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_ref_externe' fait plus de 255 caractères ") + + return False, " - Le champ 'ref_externe' fait plus de 255 caractères " + data['order_header_ref_externe'] = diction['order_header_ref_externe'] + + + order_header_vendeur_id = "" + if ("order_header_vendeur_id" in diction.keys()): + if diction['order_header_vendeur_id']: + order_header_vendeur_id = diction['order_header_vendeur_id'] + + # Verifier que l'employĂ© vendeur existe bien pour ce partner + is_employee_exist_count = MYSY_GV.dbname['ressource_humaine'].count_documents( + {'_id': ObjectId(str(order_header_vendeur_id)), 'valide': '1', + 'locked': '0', 'partner_recid': str(my_partner['recid'])}) + + if (is_employee_exist_count <= 0): + mycommon.myprint(str(inspect.stack()[0][3]) + " - Le vendeur est invalide ") + return False, " - Le vendeur est invalide " + + data['order_header_vendeur_id'] = diction['order_header_vendeur_id'] + + order_header_date_cmd = "" + if ("order_header_date_cmd" in diction.keys()): + if diction['order_header_date_cmd']: + order_header_date_cmd = str(diction['order_header_date_cmd'])[0:10] + local_status = mycommon.CheckisDate(order_header_date_cmd) + if (local_status is False): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " La date order_header_date_cmd n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de la commande n'est pas au format 'jj/mm/aaaa'" + + data['order_header_date_cmd'] = str(diction['order_header_date_cmd'])[0:10] + + + order_header_date_expiration = "" + if ("order_header_date_expiration" in diction.keys()): + if diction['order_header_date_expiration']: + order_header_date_cmd = str(diction['order_header_date_expiration'])[0:10] + local_status = mycommon.CheckisDate(order_header_date_cmd) + if (local_status is False): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " La date order_header_date_expiration n'est pas au format 'jj/mm/aaaa' ") + return False, "La date d'expiration de la commande n'est pas au format 'jj/mm/aaaa'" + + data['order_header_date_expiration'] = str(diction['order_header_date_expiration'])[0:10] + + ## Verification de la cohĂ©rence des dates. order_header_date_cmd doit < order_header_date_expiration + if (datetime.strptime(str(diction['order_header_date_cmd'])[0:10], '%d/%m/%Y') >= datetime.strptime(str(diction['order_header_date_expiration'])[0:10], '%d/%m/%Y')): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - La date d'expiration " + str(diction['order_header_date_expiration'])[0:10] +" doit etre postĂ©rieure Ă  la date de la commande " + str(diction['order_header_date_cmd'])[0:10] + " ") + + return False, " - La date d'expiration " + str(diction['order_header_date_expiration'])[0:10] +" doit etre postĂ©rieure Ă  la date de la commande " + str(diction['order_header_date_cmd'])[0:10] + " " + + + + ## Recuperation de l'adresse de facturation + order_header_adr_fact_adresse = "" + if ("order_header_adr_fact_adresse" in diction.keys()): + if diction['order_header_adr_fact_adresse']: + order_header_adr_fact_adresse = diction['order_header_adr_fact_adresse'] + if (len(str(order_header_adr_fact_adresse)) > 500): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_fact_adresse' fait plus de 500 caractères ") + + return False, " - Le champ 'adresse de facturation' fait plus de 500 caractères " + data['order_header_adr_fact_adresse'] = diction['order_header_adr_fact_adresse'] + + order_header_adr_fact_code_postal = "" + if ("order_header_adr_fact_code_postal" in diction.keys()): + if diction['order_header_adr_fact_code_postal']: + order_header_adr_fact_code_postal = diction['order_header_adr_fact_code_postal'] + if (len(str(order_header_adr_fact_code_postal)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_fact_code_postal' fait plus de 255 caractères ") + + return False, " - Le champ 'order_header_adr_fact_code_postal' fait plus de 255 caractères " + data['order_header_adr_fact_code_postal'] = diction['order_header_adr_fact_code_postal'] + + order_header_adr_fact_ville = "" + if ("order_header_adr_fact_ville" in diction.keys()): + if diction['order_header_adr_fact_ville']: + order_header_adr_fact_ville = diction['order_header_adr_fact_ville'] + if (len(str(order_header_adr_fact_ville)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_fact_ville' fait plus de 255 caractères ") + + return False, " - Le champ 'order_header_adr_fact_ville' fait plus de 255 caractères " + data['order_header_adr_fact_ville'] = diction['order_header_adr_fact_ville'] + + order_header_adr_fact_pays = "" + if ("order_header_adr_fact_pays" in diction.keys()): + if diction['order_header_adr_fact_pays']: + order_header_adr_fact_pays = diction['order_header_adr_fact_pays'] + if (len(str(order_header_adr_fact_pays)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_fact_pays' fait plus de 255 caractères ") + + return False, " - Le champ 'order_header_adr_fact_pays' fait plus de 255 caractères " + data['order_header_adr_fact_pays'] = diction['order_header_adr_fact_pays'] + + + + ## Recuperation de l'adresse d'exĂ©cution de la formation + order_header_adr_liv_adresse = "" + if ("order_header_adr_liv_adresse" in diction.keys()): + if diction['order_header_adr_liv_adresse']: + order_header_adr_liv_adresse = diction['order_header_adr_liv_adresse'] + if (len(str(order_header_adr_liv_adresse)) > 500): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_liv_adresse' fait plus de 500 caractères ") + + return False, " - Le champ 'adresse d'exĂ©cution' fait plus de 500 caractères " + data['order_header_adr_liv_adresse'] = diction['order_header_adr_liv_adresse'] + + order_header_adr_liv_code_postal = "" + if ("order_header_adr_liv_code_postal" in diction.keys()): + if diction['order_header_adr_liv_code_postal']: + order_header_adr_liv_code_postal = diction['order_header_adr_liv_code_postal'] + if (len(str(order_header_adr_liv_code_postal)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_liv_code_postal' fait plus de 255 caractères ") + + return False, " - Le champ 'order_header_adr_liv_code_postal' fait plus de 255 caractères " + data['order_header_adr_liv_code_postal'] = diction['order_header_adr_liv_code_postal'] + + order_header_adr_liv_ville = "" + if ("order_header_adr_liv_ville" in diction.keys()): + if diction['order_header_adr_liv_ville']: + order_header_adr_liv_ville = diction['order_header_adr_liv_ville'] + if (len(str(order_header_adr_liv_ville)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_liv_ville' fait plus de 255 caractères ") + + return False, " - Le champ 'order_header_adr_liv_ville' fait plus de 255 caractères " + data['order_header_adr_liv_ville'] = diction['order_header_adr_liv_ville'] + + order_header_adr_liv_pays = "" + if ("order_header_adr_liv_pays" in diction.keys()): + if diction['order_header_adr_liv_pays']: + order_header_adr_liv_pays = diction['order_header_adr_liv_pays'] + if (len(str(order_header_adr_liv_pays)) > 255): + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Le champ 'order_header_adr_liv_pays' fait plus de 255 caractères ") + + return False, " - Le champ 'order_header_adr_liv_pays' fait plus de 255 caractères " + data['order_header_adr_liv_pays'] = diction['order_header_adr_liv_pays'] + + + + """ + Recuperation des lignes de commande + """ + data_order_lines = [] + if( "order_lines" in diction.keys()): + for order_line in diction['order_lines']: + # Verifier les champs acceptĂ©s et champs obligatoires pour une ligne de commande + """ + Verification des input acceptĂ©s + """ + field_list = ['order_line_formation', 'order_line_qty', 'order_line_prix_unitaire', + 'order_line_tax','order_line_type_reduction', 'order_line_type_valeur', 'order_line_montant_reduction'] + + incom_keys = order_line.keys() + for val in incom_keys: + if val not in field_list: + mycommon.myprint(str( + inspect.stack()[0][3]) + " Line de commande : Le champ '" + val + "' n'est pas autorisĂ©") + return False, " Line de commande : Les informations fournies sont incorrectes", + + """ + Verification des champs obligatoires + """ + field_list_obligatoire = ['order_line_formation', "order_line_qty", "order_line_prix_unitaire"] + + for val in field_list_obligatoire: + if val not in order_line: + mycommon.myprint( + str(inspect.stack()[0][ + 3]) + " - Line de commande : La valeur '" + val + "' n'est pas presente dans liste ") + return False, " Line de commande : Les informations fournies sont incorrectes", + + + """ + + /!\ : A present que tous les controles sont ok, on va proceder Ă  la creation dans les table. + + """ + + ### 1 - Creation de l'entete + + # Rcuperation de la sequence de l'objet "lms_user_id" dans la collection : "mysy_sequence" + retval_sequence_order = MYSY_GV.dbname['mysy_sequence'].find_one({'related_mysy_object': 'partner_order_header', + 'valide': '1', 'partner_owner_recid':str(my_partner['recid'])}) + + if (retval_sequence_order is None or "current_val" not in retval_sequence_order.keys()): + mycommon.myprint(" Impossible de recuperer la sequence 'retval_sequence_order' ") + return False, "Impossible de recuperer la sequence 'retval_sequence_order'" + + current_seq_value = str(retval_sequence_order['current_val']) + new_sequence_value = int(mycommon.tryInt(current_seq_value)) + 1 + + # /!\ Affectation de la reference interne de la commande + diction['order_header_ref_interne'] = retval_sequence_order['prefixe']+str(current_seq_value) + + print(" #### diction['order_header_ref_interne'] = ", str( diction['order_header_ref_interne'])) + + new_sequance_data_to_update = {'current_val': new_sequence_value} + ret_val2 = MYSY_GV.dbname['mysy_sequence'].find_one_and_update( + {'_id': ObjectId(str(retval_sequence_order['_id'])), 'valide': '1'}, + {"$set": new_sequance_data_to_update}, + return_document=ReturnDocument.AFTER, + upsert=False, + ) + + data['valide'] = '1' + data['locked'] = '0' + data['date_update'] = str(datetime.now()) + + + inserted_id = "" + inserted_id = MYSY_GV.dbname['partner_order_header'].insert_one(data).inserted_id + if (not inserted_id): + mycommon.myprint( + " Impossible de crĂ©er l'entete de la commande ") + return False, "Impossible de crĂ©er l'entete de la commande " + + ### 2 - Creation des lignes + data_order_lines = [] + if ("order_lines" in diction.keys()): + for order_line in diction['order_lines']: + order_line['order_header_id'] = str(inserted_id) + order_line['valide'] = '1' + order_line['locked'] = '0' + order_line['date_update'] = str(datetime.now()) + order_line['partner_owner_recid'] = my_partner['recid'] + inserted_line_id = "" + inserted_line_id = MYSY_GV.dbname['partner_order_line'].insert_one(data).inserted_id + if (not inserted_line_id): + mycommon.myprint( + " Impossible de crĂ©er la ligne la commande ") + return False, " Impossible de crĂ©er la ligne la commande " + + + return True, " La commande a Ă©tĂ© correctement créé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 commande " + + + +""" +Recuperation d'une commande donnĂ©e Ă  partir du '_id' +""" +def Get_Given_Partner_Order(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: + mycommon.myprint(str( + inspect.stack()[0][3]) + " Le champ '" + val + "' n'existe pas") + 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 liste ") + 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['_id'] = ObjectId(str(diction['_id'])) + + data_cle['valide'] = "1" + data_cle['locked'] = "0" + + RetObject = [] + val_tmp = 1 + + #print(" ### data_cle = ", data_cle) + for retval in MYSY_GV.dbname['partner_order_header'].find(data_cle): + user = retval + user['id'] = str(val_tmp) + val_tmp = val_tmp + 1 + + + # Recuperation des ligne associĂ©es + retval_line_data = [] + for retval_line in MYSY_GV.dbname['partner_order_line'].find({'order_header_id':str(retval['_id']), 'partner_owner_recid':str(my_partner['recid']), + 'valide':'1', 'locked':'0'}): + retval_line_data.append(retval_line) + + + RetObject.append(mycommon.JSONEncoder().encode(user)) + + #print(" ### RetObject = ", RetObject) + 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 recuperer les donnĂ©es de la commande " + +""" +Recuperation d'un commande en partant de la reference interne et du token +""" + + +def Get_Given_Partner_Order_From_Internal_ref(diction): + try: + + diction = mycommon.strip_dictionary(diction) + + """ + Verification des input acceptĂ©s + """ + field_list = ['token', 'internal_ref'] + + incom_keys = diction.keys() + for val in incom_keys: + if val not in field_list: + mycommon.myprint(str( + inspect.stack()[0][3]) + " Le champ '" + val + "' n'existe pas") + return False, " Les informations fournies sont incorrectes", + + """ + Verification des champs obligatoires + """ + field_list_obligatoire = ['token', 'internal_ref'] + 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 liste ") + 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['order_header_ref_interne'] = str(diction['internal_ref']) + + data_cle['valide'] = "1" + data_cle['locked'] = "0" + + RetObject = [] + val_tmp = 1 + + # print(" ### data_cle = ", data_cle) + for retval in MYSY_GV.dbname['partner_order_header'].find(data_cle): + user = retval + user['id'] = str(val_tmp) + val_tmp = val_tmp + 1 + + # Recuperation des ligne associĂ©es + retval_line_data = [] + for retval_line in MYSY_GV.dbname['partner_order_line'].find( + {'order_header_id': str(retval['_id']), 'partner_owner_recid': str(my_partner['recid']), + 'valide': '1', 'locked': '0'}): + retval_line_data.append(retval_line) + + RetObject.append(mycommon.JSONEncoder().encode(user)) + + # print(" ### RetObject = ", RetObject) + 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 recuperer les donnĂ©es de la commande " diff --git a/ressources_humaines.py b/ressources_humaines.py index 305c570..8f33ba1 100644 --- a/ressources_humaines.py +++ b/ressources_humaines.py @@ -2263,8 +2263,8 @@ def Add_Affectation_Ressource_Humaine_Poste(diction): local_status = mycommon.CheckisDate(date_du) if (local_status is False): mycommon.myprint( - str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa'" + str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de debut d'affectation n'est pas au format 'jj/mm/aaaa'" date_au = "" @@ -2275,8 +2275,8 @@ def Add_Affectation_Ressource_Humaine_Poste(diction): if (local_status is False): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa'" + 3]) + " La date de fin d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de fin d'affectation n'est pas au format 'jj/mm/aaaa'" comment = "" @@ -2435,8 +2435,8 @@ def Update_Affectation_Ressource_Humaine_Poste(diction): local_status = mycommon.CheckisDate(date_du) if (local_status is False): mycommon.myprint( - str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa'" + str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de debut d'affectation n'est pas au format 'jj/mm/aaaa'" update_data['date_du'] = date_du @@ -2447,8 +2447,8 @@ def Update_Affectation_Ressource_Humaine_Poste(diction): if (local_status is False): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa'" + 3]) + " La date de fin d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de fin d'affectation n'est pas au format 'jj/mm/aaaa'" update_data['date_du'] = date_du diff --git a/ressources_materiels.py b/ressources_materiels.py index 880d15a..f69071c 100644 --- a/ressources_materiels.py +++ b/ressources_materiels.py @@ -77,23 +77,9 @@ def Add_Ressource_Materielle(diction): if diction['token']: token = diction['token'] - # Verifier la validitĂ© du token - retval = mycommon.check_partner_token_validity("", token) - - if retval is False: - return "Err_Connexion", " La session de connexion n'est pas valide" - - partner_recid = mycommon.get_parnter_recid_from_token(token) - if (partner_recid is False): - mycommon.myprint( - str(inspect.stack()[0][3]) + " - partner_recid est KO. Les donnĂ©es de connexion sont incorrectes ") - return False, " Vous n'etes pas autorisĂ© Ă  utiliser cette API " - - # Recuperation des donnĂ©es du partenaire - local_status, my_partner = mycommon.get_partner_data_from_recid(partner_recid) - if (local_status is False): - mycommon.myprint(str(inspect.stack()[0][3]) + " - impossible de recuperer les donnĂ©es du partenaire") - return False, str(inspect.stack()[0][3]) + " - impossible de recuperer les donnĂ©es du partenaire. " + local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) + if (local_status is not True): + return local_status, my_partner """ @@ -125,9 +111,9 @@ def Add_Ressource_Materielle(diction): if (len(str(ref_interne)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'ref_interne' fait plus de 255 caractère ") + 3]) + " - Le champ 'ref_interne' fait plus de 255 caractères") - return False, " - Le champ 'ref_interne' fait plus de 255 caractère " + return False, " - Le champ 'ref_interne' fait plus de 255 caractères" data['ref_interne'] = diction['ref_interne'] @@ -138,9 +124,9 @@ def Add_Ressource_Materielle(diction): if (len(str(nom)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'nom' fait plus de 255 caractère ") + 3]) + " - Le champ 'nom' fait plus de 255 caractères") - return False, " - Le champ 'nom' fait plus de 255 caractère " + return False, " - Le champ 'nom' fait plus de 255 caractères" data['nom'] = diction['nom'] @@ -151,9 +137,9 @@ def Add_Ressource_Materielle(diction): if (len(str(description)) > 500): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'description' fait plus de 500 caractère ") + 3]) + " - Le champ 'description' fait plus de 500 caractères") - return False, " - Le champ 'Detail' fait plus de 500 caractère " + return False, " - Le champ 'Detail' fait plus de 500 caractères" data['description'] = diction['description'] @@ -164,9 +150,9 @@ def Add_Ressource_Materielle(diction): if(len(str(detail)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'Detail' fait plus de 255 caractère ") + 3]) + " - Le champ 'Detail' fait plus de 255 caractères") - return False, " - Le champ 'Detail' fait plus de 255 caractère " + return False, " - Le champ 'Detail' fait plus de 255 caractères" data['detail'] = diction['detail'] @@ -352,9 +338,9 @@ def Update_Ressource_Materielle(diction): if (len(str(ref_interne)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'ref_interne' fait plus de 255 caractère ") + 3]) + " - Le champ 'ref_interne' fait plus de 255 caractères") - return False, " - Le champ 'ref_interne' fait plus de 255 caractère " + return False, " - Le champ 'ref_interne' fait plus de 255 caractères" data_update['ref_interne'] = diction['ref_interne'] nom = "" @@ -363,9 +349,9 @@ def Update_Ressource_Materielle(diction): if (len(str(nom)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'nom' fait plus de 255 caractère ") + 3]) + " - Le champ 'nom' fait plus de 255 caractères") - return False, " - Le champ 'nom' fait plus de 255 caractère " + return False, " - Le champ 'nom' fait plus de 255 caractères" data_update['nom'] = diction['nom'] description = "" @@ -374,9 +360,9 @@ def Update_Ressource_Materielle(diction): if (len(str(description)) > 500): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'description' fait plus de 500 caractère ") + 3]) + " - Le champ 'description' fait plus de 500 caractères") - return False, " - Le champ 'Detail' fait plus de 500 caractère " + return False, " - Le champ 'Detail' fait plus de 500 caractères" data_update['description'] = diction['description'] detail = "" @@ -385,9 +371,9 @@ def Update_Ressource_Materielle(diction): if (len(str(detail)) > 255): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " - Le champ 'Detail' fait plus de 255 caractère ") + 3]) + " - Le champ 'Detail' fait plus de 255 caractères") - return False, " - Le champ 'Detail' fait plus de 255 caractère " + return False, " - Le champ 'Detail' fait plus de 255 caractères" data_update['detail'] = diction['detail'] @@ -762,18 +748,9 @@ def Get_Given_Ressource_Materielle(diction): if diction['token']: token = diction['token'] - # Verifier la validitĂ© du token - retval = mycommon.check_partner_token_validity("", token) - - if retval is False: - return "Err_Connexion", " La session de connexion n'est pas valide" - - # Recuperation des donnĂ©es du partenaire - local_status, my_partner = mycommon.get_partner_data_from_token(token) - if (local_status is False): - mycommon.myprint(str(inspect.stack()[0][3]) + " - impossible de recuperer les donnĂ©es de l'utilisateur ") - return False, str(inspect.stack()[0][3]) + " - impossible de recuperer les donnĂ©es de l'utilisateur. " - + local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction) + if (local_status is not True): + return local_status, my_partner """ @@ -1194,8 +1171,8 @@ def Add_Affectation_Ressource_Materielle_Poste(diction): local_status = mycommon.CheckisDate(date_du) if (local_status is False): mycommon.myprint( - str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa'" + str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de debut d'affectation n'est pas au format 'jj/mm/aaaa'" date_au = "" @@ -1206,8 +1183,8 @@ def Add_Affectation_Ressource_Materielle_Poste(diction): if (local_status is False): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa'" + 3]) + " La date de fin d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de fin d'affectation n'est pas au format 'jj/mm/aaaa'" comment = "" @@ -1366,8 +1343,8 @@ def Update_Affectation_Ressource_Materielle_Poste(diction): local_status = mycommon.CheckisDate(date_du) if (local_status is False): mycommon.myprint( - str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de debut d'affectation n'est pas au format 'j'j/mm/aaaa'" + str(inspect.stack()[0][3]) + " La date de debut d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de debut d'affectation n'est pas au format 'jj/mm/aaaa'" update_data['date_du'] = date_du @@ -1378,8 +1355,8 @@ def Update_Affectation_Ressource_Materielle_Poste(diction): if (local_status is False): mycommon.myprint( str(inspect.stack()[0][ - 3]) + " La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa' ") - return False, "La date de fin d'affectation n'est pas au format 'j'j/mm/aaaa'" + 3]) + " La date de fin d'affectation n'est pas au format 'jj/mm/aaaa' ") + return False, "La date de fin d'affectation n'est pas au format 'jj/mm/aaaa'" update_data['date_du'] = date_du diff --git a/tools_cherif/tools_cherif.py b/tools_cherif/tools_cherif.py index 107e740..a73a829 100644 --- a/tools_cherif/tools_cherif.py +++ b/tools_cherif/tools_cherif.py @@ -852,3 +852,44 @@ def test_jnja2_database(diction): 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, "test_jnja2_database KOOO" + + +""" +Cette fonction retourne la liste de collections utilisable dans la personnalisation d'un document +""" +def Get_Personnalisable_Collection(): + try: + RetObject = [] + + mycollection = {"collection_technical_name":'inscription', "collection_fonctional_name":'Inscription'} + mycollection['fields'] = [] + mycollection_field1 = {"field_technical_name":'session_id', "field_fonctional_name":'Session Code'} + mycollection_field2 = {"field_technical_name": 'class_internal_url', "field_fonctional_name": 'Title Formation'} + mycollection_field3 = {"field_technical_name": 'date_du', "field_fonctional_name": 'Date debut'} + mycollection_field4 = {"field_technical_name": 'date_au', "field_fonctional_name": 'Date Fin'} + mycollection['fields'].append(mycollection_field1) + mycollection['fields'].append(mycollection_field2) + mycollection['fields'].append(mycollection_field3) + mycollection['fields'].append(mycollection_field4) + + RetObject.append(mycommon.JSONEncoder().encode(mycollection)) + + mycollection2 = {"collection_technical_name": 'myclass', "collection_fonctional_name": 'Formation'} + mycollection2['fields'] = [] + mycollection2_field1 = {"field_technical_name": 'title', "field_fonctional_name": 'Titre'} + mycollection2_field2 = {"field_technical_name": 'plus_produit', "field_fonctional_name": 'Avantage'} + mycollection2_field3 = {"field_technical_name": 'objectif', "field_fonctional_name": 'Objectif'} + + mycollection2['fields'].append(mycollection2_field1) + mycollection2['fields'].append(mycollection2_field2) + mycollection2['fields'].append(mycollection2_field3) + + + RetObject.append(mycommon.JSONEncoder().encode(mycollection2)) + + return True, RetObject + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + print(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, " Impossible de recuperer la liste collections personnalisables" \ No newline at end of file