07/04/23 - 9h
parent
4886ad1b22
commit
2dc60f9fbf
|
@ -1,3 +0,0 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -1,12 +0,0 @@
|
|||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="ignoredIdentifiers">
|
||||
<list>
|
||||
<option value="pyPdf" />
|
||||
</list>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
|
@ -1,7 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (Back_Office)" project-jdk-type="Python SDK" />
|
||||
<component name="PyCharmProfessionalAdvertiser">
|
||||
<option name="shown" value="true" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
|
||||
</project>
|
|
@ -2,7 +2,7 @@
|
|||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/myclass_api.iml" filepath="$PROJECT_DIR$/.idea/myclass_api.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Back_Office.iml" filepath="$PROJECT_DIR$/.idea/Back_Office.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Python 3.11 (Back_Office)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -1,55 +1,64 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="1122d9e2-679f-46d6-8c4f-97e9ae4041b5" name="Changes" comment="30/03/23 - 19h30">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/MySy_Back_Office.iml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/myclass_api.iml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Attestation_Certificat.py" beforeDir="false" afterPath="$PROJECT_DIR$/Attestation_Certificat.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/Inscription_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Log/log_file.log" beforeDir="false" afterPath="$PROJECT_DIR$/Log/log_file.log" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/class_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/class_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/data_indexees.csv" beforeDir="false" afterPath="$PROJECT_DIR$/data_indexees.csv" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/email_inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_inscription_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lms_chamilo/mysy_lms.py" beforeDir="false" afterPath="$PROJECT_DIR$/lms_chamilo/mysy_lms.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/strype_payement.py" beforeDir="false" afterPath="$PROJECT_DIR$/strype_payement.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/requirements.txt" beforeDir="false" afterPath="$PROJECT_DIR$/requirements.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Python Script" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
<component name="ProjectId" id="2HZvcul3hHTHdgz8ry7bGcwixIx" />
|
||||
<component name="ProjectId" id="2O40wlXXU4LUU1KR1pTy4RUoafQ" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"ASKED_ADD_EXTERNAL_FILES": "true",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"last_opened_file_path": "C:/Users/cheri/Documents/myclass.com/Siteweb/Production/Ela_back/Modules/Crawl_website",
|
||||
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable"
|
||||
"last_opened_file_path": "C:/Users/billa/Documents/myclass.com/Siteweb/Production/Ela_back/Back_Office/main.py"
|
||||
}
|
||||
}</component>
|
||||
<component name="RunManager">
|
||||
<configuration name="main" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
|
||||
<module name="myclass_api" />
|
||||
<module name="Back_Office" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="SDK_HOME" value="C:\Users\billa\AppData\Local\Programs\Python\Python310\python.exe" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
|
||||
|
@ -65,342 +74,12 @@
|
|||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="1122d9e2-679f-46d6-8c4f-97e9ae4041b5" name="Changes" comment="" />
|
||||
<created>1668505503001</created>
|
||||
<changelist id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="" />
|
||||
<created>1680804787304</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1668505503001</updated>
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="sss">
|
||||
<created>1668505583653</created>
|
||||
<option name="number" value="00001" />
|
||||
<option name="presentableId" value="LOCAL-00001" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1668505583653</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00002" summary="sss - init new pc">
|
||||
<created>1668536872142</created>
|
||||
<option name="number" value="00002" />
|
||||
<option name="presentableId" value="LOCAL-00002" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1668536872142</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00003" summary="sss - init new pc">
|
||||
<created>1668536904183</created>
|
||||
<option name="number" value="00003" />
|
||||
<option name="presentableId" value="LOCAL-00003" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1668536904183</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00004" summary="18/11/22 - 23h30">
|
||||
<created>1668811238236</created>
|
||||
<option name="number" value="00004" />
|
||||
<option name="presentableId" value="LOCAL-00004" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1668811238236</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00005" summary="22/11/22 - 11h30">
|
||||
<created>1669114207155</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1669114207155</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00006" summary="22/11/22 - 22h30">
|
||||
<created>1669153439012</created>
|
||||
<option name="number" value="00006" />
|
||||
<option name="presentableId" value="LOCAL-00006" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1669153439012</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00007" summary="23/11/22 - 22h30">
|
||||
<created>1669238673106</created>
|
||||
<option name="number" value="00007" />
|
||||
<option name="presentableId" value="LOCAL-00007" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1669238673106</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00008" summary="26/11/22 - 10h30">
|
||||
<created>1669456627336</created>
|
||||
<option name="number" value="00008" />
|
||||
<option name="presentableId" value="LOCAL-00008" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1669456627336</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00009" summary="26/11/22 - 23h30">
|
||||
<created>1669502557264</created>
|
||||
<option name="number" value="00009" />
|
||||
<option name="presentableId" value="LOCAL-00009" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1669502557264</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00010" summary="15/12/2022 - 22h00">
|
||||
<created>1671139302487</created>
|
||||
<option name="number" value="00010" />
|
||||
<option name="presentableId" value="LOCAL-00010" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671139302487</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00011" summary="16/12/2022 - 22h00">
|
||||
<created>1671221923143</created>
|
||||
<option name="number" value="00011" />
|
||||
<option name="presentableId" value="LOCAL-00011" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671221923143</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00012" summary="20/12/22 - 11h30">
|
||||
<created>1671533280190</created>
|
||||
<option name="number" value="00012" />
|
||||
<option name="presentableId" value="LOCAL-00012" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671533280190</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00013" summary="20/12/22 - 15h30">
|
||||
<created>1671545843110</created>
|
||||
<option name="number" value="00013" />
|
||||
<option name="presentableId" value="LOCAL-00013" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671545843110</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00014" summary="24/12/2022 - 15h00">
|
||||
<created>1671890429738</created>
|
||||
<option name="number" value="00014" />
|
||||
<option name="presentableId" value="LOCAL-00014" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671890429738</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00015" summary="27/12/2022 - 11h00">
|
||||
<created>1672136528048</created>
|
||||
<option name="number" value="00015" />
|
||||
<option name="presentableId" value="LOCAL-00015" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1672136528048</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00016" summary="09/01/22 à 11h">
|
||||
<created>1673258247710</created>
|
||||
<option name="number" value="00016" />
|
||||
<option name="presentableId" value="LOCAL-00016" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1673258247710</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00017" summary="13/01/22 à 20h">
|
||||
<created>1673637362528</created>
|
||||
<option name="number" value="00017" />
|
||||
<option name="presentableId" value="LOCAL-00017" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1673637362528</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00018" summary="13/01/22 à 20h">
|
||||
<created>1673777794415</created>
|
||||
<option name="number" value="00018" />
|
||||
<option name="presentableId" value="LOCAL-00018" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1673777794415</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00019" summary="15/01/2023 - 22h">
|
||||
<created>1673817096179</created>
|
||||
<option name="number" value="00019" />
|
||||
<option name="presentableId" value="LOCAL-00019" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1673817096179</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00020" summary="18/01/23 - 21h">
|
||||
<created>1674074181794</created>
|
||||
<option name="number" value="00020" />
|
||||
<option name="presentableId" value="LOCAL-00020" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674074181794</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00021" summary="19/01/23 - 20h">
|
||||
<created>1674156410858</created>
|
||||
<option name="number" value="00021" />
|
||||
<option name="presentableId" value="LOCAL-00021" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674156410858</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00022" summary="21/01/23 - 12h">
|
||||
<created>1674299833664</created>
|
||||
<option name="number" value="00022" />
|
||||
<option name="presentableId" value="LOCAL-00022" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674299833664</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00023" summary="25/01/23 - 16h">
|
||||
<created>1674659827829</created>
|
||||
<option name="number" value="00023" />
|
||||
<option name="presentableId" value="LOCAL-00023" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674659827829</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00024" summary="25/01/23 - 20h">
|
||||
<created>1674674874619</created>
|
||||
<option name="number" value="00024" />
|
||||
<option name="presentableId" value="LOCAL-00024" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674674874619</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00025" summary="27/01/23 - 15h">
|
||||
<created>1674831515253</created>
|
||||
<option name="number" value="00025" />
|
||||
<option name="presentableId" value="LOCAL-00025" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674831515253</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00026" summary="27/01:23 - 19h">
|
||||
<created>1674844418103</created>
|
||||
<option name="number" value="00026" />
|
||||
<option name="presentableId" value="LOCAL-00026" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1674844418103</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00027" summary="30/01/23 - 22h">
|
||||
<created>1675114173514</created>
|
||||
<option name="number" value="00027" />
|
||||
<option name="presentableId" value="LOCAL-00027" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1675114173514</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00028" summary="01/02/23 - 22h">
|
||||
<created>1675282357129</created>
|
||||
<option name="number" value="00028" />
|
||||
<option name="presentableId" value="LOCAL-00028" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1675282357129</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00029" summary="05/02/23 - 20h">
|
||||
<created>1675623091527</created>
|
||||
<option name="number" value="00029" />
|
||||
<option name="presentableId" value="LOCAL-00029" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1675623091527</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00030" summary="09/02/23 - 11h">
|
||||
<created>1675938338905</created>
|
||||
<option name="number" value="00030" />
|
||||
<option name="presentableId" value="LOCAL-00030" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1675938338905</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00031" summary="10/02/23 - 12h">
|
||||
<created>1676027348546</created>
|
||||
<option name="number" value="00031" />
|
||||
<option name="presentableId" value="LOCAL-00031" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1676027348546</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00032" summary="14/02/23 - 21h">
|
||||
<created>1676406875389</created>
|
||||
<option name="number" value="00032" />
|
||||
<option name="presentableId" value="LOCAL-00032" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1676406875390</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00033" summary="16/02/23 - 22h">
|
||||
<created>1676581225101</created>
|
||||
<option name="number" value="00033" />
|
||||
<option name="presentableId" value="LOCAL-00033" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1676581225101</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00034" summary="17/02/23 - 14h">
|
||||
<created>1676639333755</created>
|
||||
<option name="number" value="00034" />
|
||||
<option name="presentableId" value="LOCAL-00034" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1676639333755</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00035" summary="20/02/23 - 11h">
|
||||
<created>1676888825283</created>
|
||||
<option name="number" value="00035" />
|
||||
<option name="presentableId" value="LOCAL-00035" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1676888825283</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00036" summary="22/02/23 20h">
|
||||
<created>1677094867932</created>
|
||||
<option name="number" value="00036" />
|
||||
<option name="presentableId" value="LOCAL-00036" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1677094867932</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00037" summary="24/02/23 - 23h23">
|
||||
<created>1677277431565</created>
|
||||
<option name="number" value="00037" />
|
||||
<option name="presentableId" value="LOCAL-00037" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1677277431565</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00038" summary="28/02/23 - 17h45">
|
||||
<created>1677602770952</created>
|
||||
<option name="number" value="00038" />
|
||||
<option name="presentableId" value="LOCAL-00038" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1677602770952</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00039" summary="06/03/23 - 17h45">
|
||||
<created>1678074797958</created>
|
||||
<option name="number" value="00039" />
|
||||
<option name="presentableId" value="LOCAL-00039" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1678074797958</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00040" summary="16/03/23 - 17h45">
|
||||
<created>1678993462192</created>
|
||||
<option name="number" value="00040" />
|
||||
<option name="presentableId" value="LOCAL-00040" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1678993462192</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00041" summary="18/03/23 - 21h45">
|
||||
<created>1679173109666</created>
|
||||
<option name="number" value="00041" />
|
||||
<option name="presentableId" value="LOCAL-00041" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1679173109666</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00042" summary="19/03/23 - 19h45">
|
||||
<created>1679251524150</created>
|
||||
<option name="number" value="00042" />
|
||||
<option name="presentableId" value="LOCAL-00042" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1679251524150</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00043" summary="21/03/23 - 22h">
|
||||
<created>1679433486555</created>
|
||||
<option name="number" value="00043" />
|
||||
<option name="presentableId" value="LOCAL-00043" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1679433486555</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00044" summary="24/03/23 - 17h">
|
||||
<created>1679672559062</created>
|
||||
<option name="number" value="00044" />
|
||||
<option name="presentableId" value="LOCAL-00044" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1679672559062</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00045" summary="24/03/23 - 23h">
|
||||
<created>1679698893677</created>
|
||||
<option name="number" value="00045" />
|
||||
<option name="presentableId" value="LOCAL-00045" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1679698893677</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00046" summary="25/03/23 - 12h">
|
||||
<created>1679742657277</created>
|
||||
<option name="number" value="00046" />
|
||||
<option name="presentableId" value="LOCAL-00046" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1679742657277</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00047" summary="30/03/23 - 19h30">
|
||||
<created>1680198288335</created>
|
||||
<option name="number" value="00047" />
|
||||
<option name="presentableId" value="LOCAL-00047" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1680198288335</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="48" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -414,32 +93,4 @@
|
|||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="25/01/23 - 16h" />
|
||||
<MESSAGE value="25/01/23 - 20h" />
|
||||
<MESSAGE value="27/01/23 - 15h" />
|
||||
<MESSAGE value="27/01:23 - 19h" />
|
||||
<MESSAGE value="30/01/23 - 22h" />
|
||||
<MESSAGE value="01/02/23 - 22h" />
|
||||
<MESSAGE value="05/02/23 - 20h" />
|
||||
<MESSAGE value="09/02/23 - 11h" />
|
||||
<MESSAGE value="10/02/23 - 12h" />
|
||||
<MESSAGE value="14/02/23 - 21h" />
|
||||
<MESSAGE value="16/02/23 - 22h" />
|
||||
<MESSAGE value="17/02/23 - 14h" />
|
||||
<MESSAGE value="20/02/23 - 11h" />
|
||||
<MESSAGE value="22/02/23 20h" />
|
||||
<MESSAGE value="24/02/23 - 23h23" />
|
||||
<MESSAGE value="28/02/23 - 17h45" />
|
||||
<MESSAGE value="06/03/23 - 17h45" />
|
||||
<MESSAGE value="16/03/23 - 17h45" />
|
||||
<MESSAGE value="18/03/23 - 21h45" />
|
||||
<MESSAGE value="19/03/23 - 19h45" />
|
||||
<MESSAGE value="21/03/23 - 22h" />
|
||||
<MESSAGE value="24/03/23 - 17h" />
|
||||
<MESSAGE value="24/03/23 - 23h" />
|
||||
<MESSAGE value="25/03/23 - 12h" />
|
||||
<MESSAGE value="30/03/23 - 19h30" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="30/03/23 - 19h30" />
|
||||
</component>
|
||||
</project>
|
|
@ -110,6 +110,13 @@ def GetSpecificPartnerAttestation_Certificat(diction):
|
|||
return False, "Impossible de recuperer les données de ce template"
|
||||
|
||||
|
||||
if ("preview_url" not in diction.keys()):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " Cette session n'a pas de 'preview_url' sur le modele d'attestation ")
|
||||
return False, " Cette session n'a pas de 'preview_url' sur le modele d'attestation "
|
||||
|
||||
|
||||
RetObject.append(mycommon.JSONEncoder().encode(ret_val))
|
||||
|
||||
|
||||
|
|
|
@ -256,26 +256,26 @@ def UpdateStagiairetoClass(diction):
|
|||
mytoken = ""
|
||||
if ("token" in diction.keys()):
|
||||
if diction['token']:
|
||||
mytoken = diction['token']
|
||||
mytoken = str(diction['token']).strip()
|
||||
#query_key['token'] = diction['token']
|
||||
|
||||
myemail = ""
|
||||
if ("email" in diction.keys()):
|
||||
if diction['email']:
|
||||
myemail = diction['email']
|
||||
query_key['email'] = diction['email']
|
||||
myemail = str(diction['email']).strip()
|
||||
query_key['email'] = str(diction['email']).strip()
|
||||
|
||||
myinternal_url = ""
|
||||
if ("class_internal_url" in diction.keys()):
|
||||
if diction['class_internal_url']:
|
||||
myinternal_url = diction['class_internal_url']
|
||||
query_key['class_internal_url'] = diction['class_internal_url']
|
||||
myinternal_url = str(diction['class_internal_url']).strip()
|
||||
query_key['class_internal_url'] = str(diction['class_internal_url']).strip()
|
||||
|
||||
mysession_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
mysession_id = diction['session_id']
|
||||
query_key['session_id'] = diction['session_id']
|
||||
mysession_id = str(diction['session_id']).strip()
|
||||
query_key['session_id'] = str(diction['session_id']).strip()
|
||||
|
||||
|
||||
partner_recid = mycommon.get_parnter_recid_from_token(mytoken)
|
||||
|
@ -290,49 +290,49 @@ def UpdateStagiairetoClass(diction):
|
|||
|
||||
if ("nom" in diction.keys()):
|
||||
if diction['nom']:
|
||||
mydata['nom'] = diction['nom']
|
||||
user_nom = diction['nom']
|
||||
mydata['nom'] = str(diction['nom']).strip()
|
||||
user_nom = str(diction['nom']).strip()
|
||||
|
||||
if ("price" in diction.keys()):
|
||||
if diction['price']:
|
||||
mydata['price'] = diction['price']
|
||||
mydata['price'] = str(diction['price']).strip()
|
||||
|
||||
if ("employeur" in diction.keys()):
|
||||
if diction['employeur']:
|
||||
mydata['employeur'] = diction['employeur']
|
||||
mydata['employeur'] = str(diction['employeur']).strip()
|
||||
|
||||
user_prenom = ""
|
||||
if ("prenom" in diction.keys()):
|
||||
if diction['prenom']:
|
||||
mydata['prenom'] = diction['prenom']
|
||||
user_prenom = diction['prenom']
|
||||
mydata['prenom'] = str(diction['prenom']).strip()
|
||||
user_prenom = str(diction['prenom']).strip()
|
||||
|
||||
if ("telephone" in diction.keys()):
|
||||
if diction['telephone']:
|
||||
mydata['telephone'] = diction['telephone']
|
||||
mydata['telephone'] = str(diction['telephone']).strip()
|
||||
|
||||
if ("modefinancement" in diction.keys()):
|
||||
if diction['modefinancement']:
|
||||
mydata['modefinancement'] = diction['modefinancement']
|
||||
mydata['modefinancement'] = str(diction['modefinancement']).strip()
|
||||
|
||||
if ("opco" in diction.keys()):
|
||||
if diction['opco']:
|
||||
mydata['opco'] = diction['opco']
|
||||
mydata['opco'] = str(diction['opco']).strip()
|
||||
|
||||
if ("price" in diction.keys()):
|
||||
if diction['price']:
|
||||
mydata['price'] = diction['price']
|
||||
mydata['price'] = str(diction['price']).strip()
|
||||
|
||||
new_status = ""
|
||||
if ("status" in diction.keys()):
|
||||
if diction['status']:
|
||||
mydata['status'] = diction['status']
|
||||
new_status = diction['status']
|
||||
mydata['status'] = str(diction['status']).strip()
|
||||
new_status = str(diction['status']).strip()
|
||||
|
||||
|
||||
if ("comment" in diction.keys()):
|
||||
if diction['comment']:
|
||||
mydata['comment'] = diction['comment']
|
||||
mydata['comment'] = str(diction['comment']).strip()
|
||||
|
||||
|
||||
"""
|
||||
|
@ -478,8 +478,13 @@ def UpdateStagiairetoClass(diction):
|
|||
new_diction['email'] = myemail
|
||||
new_diction['password'] = secrets.token_urlsafe(6)
|
||||
new_diction['locked'] = "0"
|
||||
|
||||
#split_mail_tab = str(myemail).split('@')
|
||||
#new_diction['username'] = split_mail_tab[0]
|
||||
|
||||
new_diction['username'] = myemail
|
||||
|
||||
|
||||
local_status, local_message, local_participant_lms_id = mys_lms.Create_MySy_LMS_Apprenant(new_diction)
|
||||
|
||||
if( local_status is False ):
|
||||
|
@ -1396,7 +1401,7 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
#print(" Lecture du fichier : "+saved_file)
|
||||
nb_line = 0
|
||||
|
||||
df = pd.read_csv(saved_file, encoding='utf8', on_bad_lines='skip', sep=';')
|
||||
df = pd.read_csv(saved_file, encoding='utf8', on_bad_lines='skip', sep=';', encoding_errors='ignore')
|
||||
|
||||
# Dictionnaire des champs utilisables
|
||||
'''
|
||||
|
@ -2748,6 +2753,11 @@ def Send_LMS_Credentials_to_particpants(diction):
|
|||
email_data['pwd'] = lms_pwd
|
||||
email_data['lms_url'] = MYSY_GV.MYSY_LMS_URL
|
||||
email_data['course_owner_email'] = my_partner['email']
|
||||
email_data['partner_recid'] = my_partner['recid']
|
||||
|
||||
#split_mail_tab = str(email).split('@')
|
||||
#email_data['login'] = split_mail_tab[0]
|
||||
|
||||
|
||||
local_status, local_message = email_session.LMS_Credential_Sending_mail(email_data)
|
||||
if (local_status is False):
|
||||
|
|
8058
Log/log_file.log
8058
Log/log_file.log
File diff suppressed because one or more lines are too long
|
@ -42,6 +42,7 @@ def Add_Update_SessionFormation(diction):
|
|||
'code_postal', 'ville', 'formateur', 'code_session',
|
||||
'class_internal_url', 'session_status', 'date_debut_inscription', 'date_fin_inscription',
|
||||
'attestation_certif', "distantiel", "presentiel", "prix_session", 'contenu_ftion', 'lms_class_code']
|
||||
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -511,7 +512,7 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
# print(" Lecture du fichier : "+saved_file)
|
||||
nb_line = 0
|
||||
|
||||
df = pd.read_csv(saved_file, encoding='utf8', on_bad_lines='skip', sep=';')
|
||||
df = pd.read_csv(saved_file, encoding='utf8', on_bad_lines='skip', sep=';', encoding_errors='ignore')
|
||||
|
||||
# Dictionnaire des champs utilisables
|
||||
'''
|
||||
|
@ -519,7 +520,7 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
'''
|
||||
field_list = ['date_debut', 'date_fin', 'nb_participant', 'adresse', 'code_postal', 'ville',
|
||||
'session_status', 'date_debut_inscription', 'date_fin_inscription', 'attestation', 'formateur',
|
||||
'code_session', "distanciel", "presentiel", "prix_session", 'contenu_ftion']
|
||||
'code_session', "distanciel", "presentiel", "prix_session", 'contenu_ftion', 'lms_class_code']
|
||||
|
||||
# Controle du nombre de lignes dans le fichier.
|
||||
total_rows = len(df)
|
||||
|
@ -556,9 +557,26 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
return False, "la session de formation n'existe pas. Impossible d'importer la liste des participants"
|
||||
|
||||
x = range(0, total_rows)
|
||||
ignored_line = ""
|
||||
nb_inserted_line = 0
|
||||
|
||||
for n in x:
|
||||
mydata = {}
|
||||
|
||||
nb_inserted_line = nb_inserted_line + 1
|
||||
# Si une ligne n'a aucune information obligatoire, alors on ignore la ligne
|
||||
if (str(df['code_session'].values[n]) == "nan" or str(df['session_status'].values[n]) == "nan" or
|
||||
str(df['date_debut'].values[n]) == "nan" or str(df['date_fin'].values[n]) == "nan" ):
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][
|
||||
3]) + " - La ligne " + str(n + 2) + " a été ignorée")
|
||||
ignored_line = str(n + 2) + " , " + str(ignored_line)
|
||||
|
||||
nb_inserted_line = nb_inserted_line - 1
|
||||
continue
|
||||
|
||||
|
||||
|
||||
mydata['date_debut'] = str(df['date_debut'].values[n]).strip().split(" ")[0]
|
||||
local_status = mycommon.CheckisDate(mydata['date_debut'])
|
||||
if(local_status is False ):
|
||||
|
@ -625,12 +643,18 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
local_code_session = str(df['code_session'].values[n]).strip()
|
||||
mydata['code_session'] = local_code_session
|
||||
|
||||
local_adresse = " "
|
||||
local_adresse = ""
|
||||
if ("adresse" in df.keys()):
|
||||
if (str(df['adresse'].values[n])):
|
||||
local_adresse = str(df['adresse'].values[n]).strip()
|
||||
mydata['adresse'] = local_adresse
|
||||
|
||||
lms_class_code = ""
|
||||
if ("lms_class_code" in df.keys()):
|
||||
if (str(df['lms_class_code'].values[n])):
|
||||
lms_class_code = str(df['lms_class_code'].values[n]).strip()
|
||||
mydata['lms_class_code'] = lms_class_code
|
||||
|
||||
|
||||
|
||||
local_code_postal = ""
|
||||
|
@ -753,7 +777,13 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
|
||||
print(str(total_rows) + " sessions ont été inserées")
|
||||
|
||||
return True, str(total_rows) + " sessions ont été inserées / Mises à jour"
|
||||
message_ignored_line = ""
|
||||
if (ignored_line):
|
||||
message_ignored_line = " ATTENTION - Les lignes [" + str(
|
||||
ignored_line) + "] ont été ignorées. car les toutes informations obligatoires ne sont pas fournies"
|
||||
|
||||
return True, str(nb_inserted_line) + " sessions ont été inserées / Mises à jour. " + str(message_ignored_line)
|
||||
|
||||
|
||||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
|
|
32
class_mgt.py
32
class_mgt.py
|
@ -2752,7 +2752,8 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
#print(" Lecture du fichier : "+saved_file)
|
||||
nb_line = 0
|
||||
|
||||
df = pd.read_csv(saved_file, encoding='utf8', on_bad_lines='skip', sep=';')
|
||||
|
||||
df = pd.read_csv(saved_file, encoding='utf8', on_bad_lines='skip', sep=';', encoding_errors='ignore')
|
||||
|
||||
# Dictionnaire des champs utilisables
|
||||
'''
|
||||
|
@ -2803,7 +2804,8 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
new_nb_active) + "). "
|
||||
|
||||
x = range(0, total_rows)
|
||||
|
||||
ignored_line = ""
|
||||
nb_inserted_line = 0
|
||||
|
||||
for n in x:
|
||||
mydata = {}
|
||||
|
@ -2828,12 +2830,23 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
return False, " Absence de 'domaine' pour la formation à la ligne "+str(n+2)
|
||||
|
||||
|
||||
if ("domaine" not in df.keys()):
|
||||
if ("description" not in df.keys()):
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][
|
||||
3]) + " - Absence de 'description' pour la formation à la ligne "+str(n+2))
|
||||
return False, " Absence de 'description' pour la formation à la ligne "+str(n+2)
|
||||
|
||||
nb_inserted_line = nb_inserted_line + 1
|
||||
# Si une ligne n'a aucune information obligatoire, alors on ignore la ligne
|
||||
if (str(df['external_code'].values[n]) == "nan" or str(df['titre'].values[n]) == "nan"):
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][
|
||||
3]) + " - La ligne " + str(n + 2)+" a été ignorée")
|
||||
ignored_line = str(n + 2)+" , "+str(ignored_line)
|
||||
|
||||
nb_inserted_line = nb_inserted_line - 1
|
||||
continue
|
||||
|
||||
|
||||
mydata['external_code'] = str(df['external_code'].values[n]).strip()
|
||||
mydata['title'] = str(df['titre'].values[n]).strip()
|
||||
|
@ -2842,6 +2855,7 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
tmp_desc = mycommon.format_MySy_Text_Tag(tmp_desc)
|
||||
mydata['description'] = tmp_desc
|
||||
|
||||
|
||||
formateur = ""
|
||||
if ("formateur" in df.keys()):
|
||||
if (str(df['formateur'].values[n])):
|
||||
|
@ -2880,8 +2894,6 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
mydata['plus_produit'] = plus_produit
|
||||
|
||||
|
||||
|
||||
|
||||
presentiel = "0"
|
||||
if ("presentiel" in df.keys()):
|
||||
if (str(df['presentiel'].values[n])):
|
||||
|
@ -3073,9 +3085,6 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
mydata['token'] = diction['token']
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
clean_dict = {k: mydata[k] for k in mydata if ( str(mydata[k]) != "nan") }
|
||||
|
||||
#print( clean_dict)
|
||||
|
@ -3084,9 +3093,12 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
if( status is False ):
|
||||
return status, retval
|
||||
|
||||
print(str(total_rows)+" formations ont été inserées")
|
||||
message_ignored_line = ""
|
||||
if( ignored_line ):
|
||||
message_ignored_line = " ATTENTION - Les lignes [" + str(ignored_line) + "] ont été ignorées. car les toutes informations obligatoires ne sont pas fournies"
|
||||
|
||||
return True, str(total_rows)+" formations ont été inserées / Mises à jour"
|
||||
|
||||
return True, str(nb_inserted_line)+" formations ont été inserées / Mises à jour. "+str(message_ignored_line)
|
||||
|
||||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
,index,mots,occurence,moyenne,id_formation,source_field
|
||||
0,0,praticien,1,0.33,MYSY_Test_AR,title
|
||||
1,1,aromatherapie,1,0.33,MYSY_Test_AR,title
|
||||
2,2,integrative,1,0.33,MYSY_Test_AR,title
|
||||
0,0,gestion,1,0.33,MYSY_Demo_001,title
|
||||
1,1,donne,1,0.33,MYSY_Demo_001,title
|
||||
2,2,base,1,0.33,MYSY_Demo_001,title
|
||||
|
|
|
|
@ -1,4 +1,4 @@
|
|||
mots occurence moyenne id_formation source_field
|
||||
0 praticien 1 0.33 MYSY_Test_AR title
|
||||
1 aromatherapie 1 0.33 MYSY_Test_AR title
|
||||
2 integrative 1 0.33 MYSY_Test_AR title
|
||||
mots occurence moyenne id_formation source_field
|
||||
0 gestion 1 0.33 MYSY_Demo_001 title
|
||||
1 donne 1 0.33 MYSY_Demo_001 title
|
||||
2 base 1 0.33 MYSY_Demo_001 title
|
|
@ -1160,14 +1160,21 @@ def LMS_Credential_Sending_mail(diction):
|
|||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['nom', 'prenom', 'email', 'date_du', 'date_au', 'title', 'login', 'pwd', 'lms_url', 'course_owner_email' ]
|
||||
field_list_obligatoire = ['nom', 'prenom', 'email', 'date_du', 'date_au', 'title', 'login', 'pwd', 'lms_url', 'course_owner_email', 'partner_recid' ]
|
||||
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, "Impossible d'envoyer les information de connexion à la plateforme LMS"
|
||||
"""
|
||||
local_status, is_account_exist = mycommon.is_LMS_user_exist(diction)
|
||||
|
||||
if( local_status is False or is_account_exist is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Le compte LMS n'est pas valide ")
|
||||
return False, "Le compte LMS n'est pas valide"
|
||||
|
||||
"""
|
||||
tomorrow = datetime.date.today() + datetime.timedelta(days=1)
|
||||
tomorrow_day = tomorrow.strftime("%A")
|
||||
|
||||
|
|
32
email_mgt.py
32
email_mgt.py
|
@ -1846,14 +1846,14 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
TEMPLATE_FILE = "Template/MySy_Invoice_RIB_tpl.html"
|
||||
template = templateEnv.get_template(TEMPLATE_FILE)
|
||||
body = {
|
||||
"params": {"order_id": "005G",
|
||||
"date_order": ": 07/03/2023",
|
||||
"total_ht": "150",
|
||||
"tva": "0",
|
||||
"total_ttc": "150",
|
||||
"client_name": "HIFMI-INSTITUTE",
|
||||
"client_address": "50 AV PIERRE ET MARIE CURIE",
|
||||
"client_zip_ville": "93700 DRANCY",
|
||||
"params": {"order_id": "007G",
|
||||
"date_order": ": 03/04/2023",
|
||||
"total_ht": "171",
|
||||
"tva": "34,2",
|
||||
"total_ttc": "205,2",
|
||||
"client_name": "CAP SANTE",
|
||||
"client_address": "4 Allée des Jacquiers",
|
||||
"client_zip_ville": "97427 L'Etang Salé",
|
||||
"client_pays": "France",
|
||||
"packs": "PACK GOLD ",
|
||||
"detail_packs": "-- Support téléphonique -- "
|
||||
|
@ -1865,13 +1865,13 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
"Envoi de 1000 emails markéting / mois --"
|
||||
"Reporting Dynamique et personnalisé",
|
||||
|
||||
"qty": "3",
|
||||
"unit_price": "50",
|
||||
"montant": "150",
|
||||
"invoice_id": "FACT_230300027",
|
||||
"invoice_date": "07/03/2023",
|
||||
"due_date": "07/03/2022",
|
||||
"orign_order": "Contrat 005G",
|
||||
"qty": "2",
|
||||
"unit_price": "85.5",
|
||||
"montant": "171",
|
||||
"invoice_id": "FACT_230400029",
|
||||
"invoice_date": "03/04/2023",
|
||||
"due_date": "03/04/2022",
|
||||
"orign_order": "Contrat 007G",
|
||||
}
|
||||
}
|
||||
sourceHtml = template.render(params=body["params"])
|
||||
|
@ -1917,7 +1917,7 @@ def ManualSendInvoiceEmailRIB(diction):
|
|||
}
|
||||
"""
|
||||
sourceHtml = template.render(json_data=body["params"])
|
||||
orig_file_name = "invoice_FACT_230200020.pdf"
|
||||
orig_file_name = "invoice_FACT_230400029.pdf"
|
||||
outputFilename = str(MYSY_GV.INVOICE_DIRECTORY) + str(orig_file_name)
|
||||
|
||||
# open output file for writing (truncated binary)
|
||||
|
|
|
@ -987,7 +987,8 @@ def Check_MySy_LMS_Account(diction):
|
|||
new_diction['password'] = my_partner['pwd']
|
||||
new_diction['locked'] = "0"
|
||||
new_diction['official_code'] = ""
|
||||
new_diction['username'] = my_partner['email']
|
||||
split_mail_tab = str(my_partner['email']).split('@')
|
||||
new_diction['username'] = split_mail_tab[0]
|
||||
|
||||
|
||||
local_status, local_retval, new_lms_use_id = Create_MySy_LMS_User(new_diction)
|
||||
|
@ -1212,17 +1213,17 @@ def Add_User_To_LMS_Class(diction):
|
|||
my_token = ""
|
||||
if ("token" in diction.keys()):
|
||||
if diction['token']:
|
||||
my_token = diction['token']
|
||||
my_token = str(diction['token']).strip()
|
||||
|
||||
course_code = ""
|
||||
if ("course_code" in diction.keys()):
|
||||
if diction['course_code']:
|
||||
course_code = diction['course_code']
|
||||
course_code = str(diction['course_code']).strip()
|
||||
|
||||
user_lms_id = ""
|
||||
if ("user_lms_id" in diction.keys()):
|
||||
if diction['user_lms_id']:
|
||||
user_lms_id = diction['user_lms_id']
|
||||
user_lms_id = str(diction['user_lms_id']).strip()
|
||||
|
||||
partner_recid = ""
|
||||
# Verification de la validité du token/mail dans le cas des user en mode connecté
|
||||
|
@ -1803,7 +1804,8 @@ def LMS_Get_Partner_Data(diction):
|
|||
|
||||
"""
|
||||
|
||||
lms_pwd_mask = "mSyt"+str(lms_user_id)+str(datetime.now().day)+str(my_partner['pwd'])
|
||||
day_on_2_digit = '{:02d}'.format(datetime.now().day)
|
||||
lms_pwd_mask = "mSyt"+str(lms_user_id)+str(day_on_2_digit)+str(my_partner['pwd'])
|
||||
|
||||
val_tmp = {}
|
||||
val_tmp['lms_account'] = lms_account
|
||||
|
|
14
main.py
14
main.py
|
@ -2380,6 +2380,20 @@ def mysylmsdb():
|
|||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
|
||||
"""
|
||||
API de test de fonctionnement du webservice
|
||||
"""
|
||||
@app.route('/myclass/api/test_web_service/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def test_web_service():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = request.form.to_dict()
|
||||
print(" ### test_web_service : payload = ",payload)
|
||||
localStatus, message= tools_cherif.test_web_service(payload)
|
||||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
|
||||
|
||||
"""
|
||||
Cette API créer un user LMS Mysy, c'est a dire un user chamilo
|
||||
"""
|
||||
|
|
|
@ -40,6 +40,7 @@ import jinja2
|
|||
import ftplib
|
||||
import pysftp
|
||||
import html
|
||||
import mariadb
|
||||
|
||||
class JSONEncoder(json.JSONEncoder):
|
||||
def default(self, o):
|
||||
|
@ -2856,3 +2857,49 @@ def CheckSalesOrder(diction):
|
|||
myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||
return False, " Impossible de verifier l'existence de la commande "
|
||||
|
||||
|
||||
"""
|
||||
Cette fonction verifie s'un utilisateur existe vraiment dans le LMS
|
||||
"""
|
||||
def is_LMS_user_exist(diction):
|
||||
try:
|
||||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = [ 'login', 'partner_recid']
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
myprint(
|
||||
str(inspect.stack()[0][3]) + " - : La valeur '" + val + "' n'est pas presente dans liste ")
|
||||
return False, "Impossible d'envoyer les information de connexion à la plateforme LMS"
|
||||
|
||||
conn = mariadb.connect(
|
||||
user=MYSY_GV.MYSY_MARIADB_USER,
|
||||
password=MYSY_GV.MYSY_MARIADB_USER_PASS,
|
||||
host=MYSY_GV.MYSY_MARIADB_HOST,
|
||||
port=MYSY_GV.MYSY_MARIADB_PORT,
|
||||
database=MYSY_GV.MYSY_LMS_BDD
|
||||
)
|
||||
cur = conn.cursor()
|
||||
|
||||
qry = "SELECT count(*) FROM user WHERE username = '"+str(diction['login'])+"' "
|
||||
print(" #### qry = ", qry)
|
||||
query_compte_exist_exec = cur.execute("SELECT count(*) FROM user WHERE username = '"+str(diction['login'])+"' ")
|
||||
|
||||
is_exist = False
|
||||
|
||||
query_compte_exist_exec = ""
|
||||
query_compte_exist_exec_val = "0"
|
||||
for query_compte_exist_exec in cur:
|
||||
query_compte_exist_exec_val = query_compte_exist_exec[0]
|
||||
if (int(tryInt(query_compte_exist_exec_val)) > 0):
|
||||
is_exist = True
|
||||
conn.commit()
|
||||
|
||||
|
||||
return True, is_exist
|
||||
|
||||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||
return False, " Impossible de verifier l'existence du compte utilisateur dans le LMS "
|
|
@ -21,7 +21,6 @@ pandas
|
|||
stripe
|
||||
python-dotenv
|
||||
pyopenssl
|
||||
|
||||
arabic-reshaper
|
||||
coverage
|
||||
html5lib
|
||||
|
@ -31,4 +30,7 @@ python-bidi
|
|||
reportlab
|
||||
svglib
|
||||
pyHanko
|
||||
pyhanko-certvalidator
|
||||
pyhanko-certvalidator
|
||||
zeep
|
||||
mariadb
|
||||
validate_email
|
|
@ -791,3 +791,16 @@ def mysylmsdb():
|
|||
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
|
||||
return False, " Connexion mariadb KOOO"
|
||||
|
||||
|
||||
def test_web_service(diction):
|
||||
try:
|
||||
if( diction ):
|
||||
print(" ### diction = ", diction)
|
||||
|
||||
return True, "Test WebService OK Diction = "+str(diction)
|
||||
|
||||
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, "Test WebService KOOO"
|
||||
|
||||
|
|
Loading…
Reference in New Issue