932 lines
26 KiB
Python
932 lines
26 KiB
Python
'''
|
|
Ce fichier contient les variables globales du systeme
|
|
'''
|
|
from pymongo import MongoClient
|
|
from spellchecker import SpellChecker
|
|
from nltk.stem.snowball import SnowballStemmer
|
|
import spacy
|
|
import logging
|
|
from autocorrect import Speller
|
|
from nltk.corpus import stopwords
|
|
import ela_spacy_common as lsc
|
|
import Env_Data as ENV_DATA
|
|
"""
|
|
Cette variable definit l'environnement de travail
|
|
"""
|
|
|
|
MYSY_ENV = ENV_DATA.MYSY_ENV
|
|
|
|
# Cette variable definit l'url de base du server
|
|
CLIENT_URL_BASE = ""
|
|
|
|
if (MYSY_ENV == "PROD"):
|
|
CONNECTION_STRING = "mongodb://localhost:27017/cherifdb_fi"
|
|
client = MongoClient(CONNECTION_STRING)
|
|
dbname = client['cherifdb_fi']
|
|
CLIENT_URL_BASE = 'https://www.mysy-training.com/'
|
|
MYSY_DEBUG_LEVEL = 0
|
|
|
|
|
|
# Domaine pour le catalogue public
|
|
MYSY_PUBLIC_CATALOG_DOMAIN = 'mysy-hosting.online'
|
|
|
|
"""
|
|
REPERTOIRE FTP DES IMAGES DU BLOG
|
|
Volontairement on met tous les environnements dans le meme repertoire. C'est un choix
|
|
"""
|
|
BLOG_FTP_IMG_REPOSITORY = "/var/www/html/blog_imgs/blog_img_prod/"
|
|
BLOG_IMG_URL = "https://blogimg.mysy-training.com/"
|
|
|
|
|
|
elif (MYSY_ENV == "DEV"):
|
|
CONNECTION_STRING = "mongodb://localhost:27017/cherifdb_dev_fi"
|
|
client = MongoClient(CONNECTION_STRING)
|
|
dbname = client['cherifdb_dev_fi']
|
|
CLIENT_URL_BASE = 'http://localhost:3009/'
|
|
MYSY_DEBUG_LEVEL = 1
|
|
|
|
# Domaine pour le catalogue public
|
|
MYSY_PUBLIC_CATALOG_DOMAIN = 'localhost:3009'
|
|
|
|
"""
|
|
REPERTOIRE FTP DES IMAGES DU BLOG
|
|
Volontairement on met tous les environnements dans le meme repertoire. C'est un choix
|
|
"""
|
|
BLOG_FTP_IMG_REPOSITORY = "/var/www/html/blog_imgs/blog_img_prod/"
|
|
BLOG_IMG_URL = "https://blogimg.mysy-training.com/"
|
|
|
|
|
|
|
|
elif (MYSY_ENV == "REC"):
|
|
CONNECTION_STRING = "mongodb://localhost:27017/cherifdb_rec_fi"
|
|
client = MongoClient(CONNECTION_STRING)
|
|
dbname = client['cherifdb_rec_fi']
|
|
CLIENT_URL_BASE = 'https://dev.mysy-training.com/'
|
|
MYSY_DEBUG_LEVEL = 1
|
|
|
|
# Domaine pour le catalogue public
|
|
MYSY_PUBLIC_CATALOG_DOMAIN = 'devmysy-hosting.online'
|
|
|
|
"""
|
|
REPERTOIRE FTP DES IMAGES DU BLOG
|
|
Volontairement on met tous les environnements dans le meme repertoire. C'est un choix
|
|
"""
|
|
BLOG_FTP_IMG_REPOSITORY = "/var/www/html/blog_imgs/blog_img_prod/"
|
|
BLOG_IMG_URL = "https://blogimg.mysy-training.com/"
|
|
|
|
|
|
elif (MYSY_ENV == "DEM"):
|
|
CONNECTION_STRING = "mongodb://localhost:27017/cherifdb_demo_fi"
|
|
client = MongoClient(CONNECTION_STRING)
|
|
dbname = client['cherifdb_demo_fi']
|
|
CLIENT_URL_BASE = 'https://demo.mysy-training.com/'
|
|
MYSY_DEBUG_LEVEL = 1
|
|
|
|
# Domaine pour le catalogue public
|
|
MYSY_PUBLIC_CATALOG_DOMAIN = 'demomysy-hosting.online'
|
|
|
|
"""
|
|
REPERTOIRE FTP DES IMAGES DU BLOG
|
|
Volontairement on met tous les environnements dans le meme repertoire. C'est un choix
|
|
"""
|
|
BLOG_FTP_IMG_REPOSITORY = "/var/www/html/blog_imgs/blog_img_prod/"
|
|
BLOG_IMG_URL = "https://blogimg.mysy-training.com/"
|
|
|
|
|
|
|
|
YTUBES_CONNECTION_STRING = "mongodb://localhost:27017/"
|
|
YTUBES_client = MongoClient(YTUBES_CONNECTION_STRING)
|
|
YTUBES_dbname = YTUBES_client['mysyvideodb']
|
|
|
|
|
|
"""
|
|
Cette Variable definit les port de connexion
|
|
en dev ou en production
|
|
"""
|
|
MYSY_PORT_PROD = 5000
|
|
MYSY_PORT_DEV = 5001
|
|
MYSY_PORT_REC = 5001
|
|
MYSY_PORT_DEM = 5003
|
|
|
|
|
|
|
|
'''
|
|
Cette Variable defini le nombre minimum
|
|
de frequence d'un mot pour qu'il soit indexé.
|
|
|
|
en gros, dans une text, les mots apparaissent moins de 5 fois sont consideré
|
|
comme des mots à faible raisonnance'''
|
|
INDEX_MIN_OCCURENCE = 5
|
|
|
|
|
|
|
|
## Gle Variables
|
|
stemmer = SnowballStemmer(language='french')
|
|
nlp = spacy.load("fr_core_news_sm")
|
|
spell = SpellChecker(language='fr')
|
|
token_fr_pontuation = []
|
|
|
|
'''
|
|
La taille maximal d'un champs à retourner.
|
|
Au dela de 300 caractère, le système rame
|
|
'''
|
|
MAX_CARACT = 300 # Celui est utilisé pour les affichage courts et tronqués, comme sur la page principale du moteur
|
|
MAX_CARACT_DEDUIT = 150
|
|
TOKEN_SIZE = 25
|
|
MAX_CARACT_DETAIL = 1000 # Celui est utilisé pour les affichage globaux (si le texte est trop long, il va tronquer un peut mais cela permet de cadrer un peu les choses
|
|
|
|
|
|
|
|
DEBUG_LEVEL = logging.DEBUG
|
|
LOG_FILE_NAME = "./Log/log_file.log"
|
|
|
|
TEMPORARY_DIRECTORY_V2 = "./temp_direct/"
|
|
|
|
upload_folder = "./Data/"
|
|
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'webp'}
|
|
logging.basicConfig( level=DEBUG_LEVEL, filename=LOG_FILE_NAME)
|
|
AUTORIZED_SOURCE_IPV4=["127.0.0.1", "localhost", "88.170.110.220", "192.168.1.21", "192.168.1.48", "51.77.211.142"]
|
|
|
|
|
|
#assign the default stopwords list to a variable
|
|
STOP_WORDS = spacy.lang.fr.stop_words.STOP_WORDS
|
|
stopWords = set(stopwords.words('french'))
|
|
sentence = "Bouygues a eu une coupure de réseau à Marseille chez ses clients marseillais et son couteau"
|
|
lsc.update_stopWords(stopWords)
|
|
|
|
#print(type(stopWords))
|
|
|
|
lsc.update_token_fr_pontuation(token_fr_pontuation)
|
|
spell_fr = Speller(lang='fr')
|
|
|
|
|
|
'''
|
|
Repertoire de stockage de video YouTubes
|
|
'''
|
|
YTUBES_ENSCRIPT_LOCATION = ""
|
|
|
|
|
|
'''
|
|
Email recever des alertes internes
|
|
'''
|
|
INTERNAL_MAIL_RECEVER = "contact@mysy-training.com"
|
|
INTERNAL_MAIL_SENDER = "contact@mysy-training.com"
|
|
INTERNAL_TEL_RECEVER = "+33769203945"
|
|
INTERNAL_TEL_SENDER = "+33769203945"
|
|
|
|
|
|
'''
|
|
Cette variable definit le nombre max
|
|
de retour à faire sur une requet de recherche
|
|
'''
|
|
QUERY_LIMIT_ROW = 50
|
|
|
|
'''
|
|
Cette variable definit le nombre max
|
|
retour à faire sur page d'acceuil '''
|
|
MAINPAGE_QUERY_LIMIT_ROW =50
|
|
|
|
|
|
'''
|
|
Cette variable definit le nombre de mots retourné dans le
|
|
cas d'une aide à avec une recherche vide
|
|
'''
|
|
HELP_WORD_QUERY_LIMIT = 3
|
|
|
|
|
|
'''
|
|
Les formats d'image accepté
|
|
'''
|
|
IMG_FORMAT=['jpg', 'jpeg', 'png', 'jpe', 'webp', 'gif',]
|
|
|
|
"""
|
|
Image au formation PNG UNIQUEMENT
|
|
"""
|
|
IMG_PNG_FORMAT=['png']
|
|
|
|
'''
|
|
Sendinblue clea API
|
|
'''
|
|
SENDINBLUE_API_KEY = "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"
|
|
|
|
'''
|
|
Taux de TVA
|
|
'''
|
|
TVA_TAUX = 0.2
|
|
|
|
|
|
"""
|
|
Variable defini le mombre max de mots clés dans une formation
|
|
"""
|
|
MAX_KEYWORD = 3
|
|
|
|
"""
|
|
Connexion SFTP
|
|
"""
|
|
#MYSY_FTP_HOST = "192.168.1.21"
|
|
MYSY_FTP_HOST = "51.77.211.142"
|
|
MYSY_FTP_LOGIN = "mysysftpuser"
|
|
MYSY_FTP_PWD = "JvMysedrBsDMy01!+"
|
|
|
|
|
|
if (MYSY_ENV == "DEM"):
|
|
MYSY_FTP_HOST = "192.168.1.21"
|
|
MYSY_FTP_LOGIN = "mysysftpuser"
|
|
MYSY_FTP_PWD = "JvMysedrBsDMy01!+"
|
|
|
|
"""
|
|
Repertoire de depot des factures
|
|
"""
|
|
#INVOICE_DIRECTORY = "/var/www/html/sftp_iexercice/mysy_invoices"
|
|
INVOICE_DIRECTORY = "./Invoices/"
|
|
|
|
"""
|
|
Repertoire pour les liste d'emargement
|
|
"""
|
|
EMARGEMENT_DIRECTORY = "./Emargement/"
|
|
|
|
|
|
"""
|
|
Repertoire racine du ftp ou sont stocké les factures
|
|
"""
|
|
INVOICE_FTP_DIRECTORY = "https://sftp.iexercice.com/mysy_invoices/"
|
|
|
|
|
|
if (MYSY_ENV == "PROD"):
|
|
INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/home/mysy_data/mysy_invoices/"
|
|
|
|
elif (MYSY_ENV == "DEV"):
|
|
INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/home/mysy_data/mysy_invoices_dev/"
|
|
|
|
elif (MYSY_ENV == "REC"):
|
|
INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/home/mysy_data/mysy_invoices_rec/"
|
|
|
|
elif (MYSY_ENV == "DEM"):
|
|
INVOICE_FTP_LOCAL_STORAGE_DIRECTORY = "/home/mysy_data/mysy_invoices_demo/"
|
|
|
|
"""
|
|
Cette Variable definit le nombre de formation associées à retourner
|
|
"""
|
|
LIMIT_ASSOCIATED_TRAINING = 3
|
|
|
|
"""
|
|
Valeur MAX du display ranking accordé aux compte de type demo
|
|
"""
|
|
DEMO_RANKING_VALUE = "50"
|
|
|
|
|
|
"""
|
|
Sendinblu compte support
|
|
"""
|
|
SENDINBLUE_API_KEY_SUPPORT = "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"
|
|
|
|
|
|
"""
|
|
Variable SMTP de OFFICE 365, suite a l'abandon de sendinblu comme relay stmp
|
|
"""
|
|
if (MYSY_ENV == "PROD"):
|
|
O365_SMTP_COUNT_password = 'Xad47198'
|
|
O365_SMTP_COUNT_smtpsrv = "smtp.office365.com"
|
|
O365_SMTP_COUNT_user = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_From_User = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_port = 587
|
|
|
|
if (MYSY_ENV == "REC"):
|
|
O365_SMTP_COUNT_password = 'Xad47198'
|
|
O365_SMTP_COUNT_smtpsrv = "smtp.office365.com"
|
|
O365_SMTP_COUNT_user = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_From_User = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_port = 587
|
|
|
|
if (MYSY_ENV == "DEM"):
|
|
O365_SMTP_COUNT_password = 'Xad47198'
|
|
O365_SMTP_COUNT_smtpsrv = "smtp.office365.com"
|
|
O365_SMTP_COUNT_user = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_From_User = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_port = 587
|
|
|
|
|
|
if (MYSY_ENV == "DEV"):
|
|
"""
|
|
O365_SMTP_COUNT_password = 'GomboyaVince1234+'
|
|
O365_SMTP_COUNT_smtpsrv = "smtp.office365.com"
|
|
O365_SMTP_COUNT_user = "cbalde@mysy-training.com"
|
|
O365_SMTP_COUNT_From_User = "cbalde@mysy-training.com"
|
|
O365_SMTP_COUNT_port = 587
|
|
"""
|
|
"""
|
|
O365_SMTP_COUNT_password = 'Sod78!526+'
|
|
O365_SMTP_COUNT_smtpsrv = "smtp.office365.com"
|
|
O365_SMTP_COUNT_user = "communication@mysytraining.fr"
|
|
O365_SMTP_COUNT_From_User = "communication@mysytraining.fr"
|
|
O365_SMTP_COUNT_port = 587
|
|
"""
|
|
|
|
"""
|
|
# Tester le relay smtp perso (maison - DIRTY MAIL)
|
|
O365_SMTP_COUNT_password = 'cherif'
|
|
O365_SMTP_COUNT_smtpsrv = "srvdmz.iexercice.com"
|
|
O365_SMTP_COUNT_user = "clientmail-vm2"
|
|
O365_SMTP_COUNT_From_User = "clientmail-vm2@iexercice.com"
|
|
O365_SMTP_COUNT_port = 587
|
|
"""
|
|
|
|
"""
|
|
# Tester le relay smtp perso (maison - mysy-training.fr)
|
|
O365_SMTP_COUNT_password = 'cherif'
|
|
O365_SMTP_COUNT_smtpsrv = "srvdmz.mysy-training.fr"
|
|
O365_SMTP_COUNT_user = "cbalde"
|
|
O365_SMTP_COUNT_From_User = "cbalde@mysy-training.fr"
|
|
O365_SMTP_COUNT_port = 587
|
|
"""
|
|
|
|
O365_SMTP_COUNT_password = 'Xad47198'
|
|
O365_SMTP_COUNT_smtpsrv = "smtp.office365.com"
|
|
O365_SMTP_COUNT_user = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_From_User = "support@mysy-training.com"
|
|
O365_SMTP_COUNT_port = 587
|
|
|
|
|
|
|
|
"""
|
|
Repertoire temporaire de telechargement ou de creation de fichier
|
|
"""
|
|
TEMPORARY_DIRECTORY = "./temp_direct"
|
|
|
|
|
|
"""
|
|
Nombre maximum de participants importable par csv
|
|
"""
|
|
MAX_PARTICIPANT_BY_CSV = 50
|
|
|
|
"""
|
|
Nombre maximum de clients de partner importable par csv
|
|
"""
|
|
MAX_PARTNER_CLIENT_BY_CSV = 100
|
|
|
|
"""
|
|
Nombre maximum de lignes dans un fichier de planification d'une UE
|
|
"""
|
|
MAX_EU_PLANIF_BY_CSV = 200
|
|
|
|
"""
|
|
Stripe : Nom des produits et prix et la clé de config
|
|
"""
|
|
if (MYSY_ENV == "PROD"):
|
|
STRIPE_GOLD_PRICE_ID = "price_1NG2HdAbmaEugrFTMbzVRwj1"
|
|
STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NG2HsAbmaEugrFTAiHh2SzD"
|
|
STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NG2IJAbmaEugrFTMPdMIzNH"
|
|
|
|
STRIPE_STANDARD_PRICE_ID = "price_1NG2JmAbmaEugrFTBwRDLlbs"
|
|
STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NG2GtAbmaEugrFTyJavt1Lx"
|
|
STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NG2HBAbmaEugrFTaMsDGikP"
|
|
|
|
|
|
STRIPE_STANDARD_PRICE_ID = "price_1MUSoGAbmaEugrFTTjz5lSye"
|
|
STRIPE_TEST_PRICE_ID = "price_1MT0f0AbmaEugrFTJjdZZXG7"
|
|
STRIPE_CONFIG_KEY_PUB = "pk_live_51LUUfAAbmaEugrFTyfNe4Dj0vbxc5qXQqNs0rztjAKy8oSlc5EEQyJGjA8Z5kXmP2gvUMcYLUBYCIyWWzLCw59RY00PtGInkVf"
|
|
STRIPE_CONFIG_API_KEY = "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"
|
|
|
|
elif (MYSY_ENV == "DEV"):
|
|
STRIPE_GOLD_PRICE_ID = "price_1MT3FmAbmaEugrFTZ5vyJRcZ"
|
|
STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NEpALAbmaEugrFTCDhlJyo3"
|
|
STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NFyUEAbmaEugrFT5sRXixeZ"
|
|
|
|
|
|
STRIPE_STANDARD_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb"
|
|
STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NEpCOAbmaEugrFTcBnOf89X"
|
|
STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NFySwAbmaEugrFTxrQHhFN9"
|
|
|
|
|
|
|
|
STRIPE_TEST_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb"
|
|
STRIPE_CONFIG_KEY_PUB = "pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p"
|
|
STRIPE_CONFIG_API_KEY = "sk_test_51LUUfAAbmaEugrFTrWsfcBWZtbBh9r3HCa2sgeyikG808LjSk3bAdFhV6KxgRZ3vFxooa6RE0c5zBkTuOUrKkyjy00BrsIXAPs"
|
|
|
|
|
|
|
|
elif (MYSY_ENV == "REC"):
|
|
STRIPE_GOLD_PRICE_ID = "price_1MT3FmAbmaEugrFTZ5vyJRcZ"
|
|
STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NEpALAbmaEugrFTCDhlJyo3"
|
|
STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NFyUEAbmaEugrFT5sRXixeZ"
|
|
STRIPE_GOLD_PRICE_ID_100_OFF = "price_1NEpeJAbmaEugrFTXT5OFciX"
|
|
|
|
STRIPE_STANDARD_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb"
|
|
STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NEpCOAbmaEugrFTcBnOf89X"
|
|
STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NFySwAbmaEugrFTxrQHhFN9"
|
|
STRIPE_STANDARD_PRICE_ID_100_OFF = "price_1NEpbrAbmaEugrFTgLABbIOF"
|
|
|
|
|
|
STRIPE_TEST_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb"
|
|
STRIPE_CONFIG_KEY_PUB = "pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p"
|
|
STRIPE_CONFIG_API_KEY = "sk_test_51LUUfAAbmaEugrFTrWsfcBWZtbBh9r3HCa2sgeyikG808LjSk3bAdFhV6KxgRZ3vFxooa6RE0c5zBkTuOUrKkyjy00BrsIXAPs"
|
|
|
|
elif (MYSY_ENV == "DEM"):
|
|
STRIPE_GOLD_PRICE_ID = "price_1MT3FmAbmaEugrFTZ5vyJRcZ"
|
|
STRIPE_GOLD_PRICE_ID_50_OFF = "price_1NEpALAbmaEugrFTCDhlJyo3"
|
|
STRIPE_GOLD_PRICE_ID_95_OFF = "price_1NFyUEAbmaEugrFT5sRXixeZ"
|
|
STRIPE_GOLD_PRICE_ID_100_OFF = "price_1NEpeJAbmaEugrFTXT5OFciX"
|
|
|
|
STRIPE_STANDARD_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb"
|
|
STRIPE_STANDARD_PRICE_ID_50_OFF = "price_1NEpCOAbmaEugrFTcBnOf89X"
|
|
STRIPE_STANDARD_PRICE_ID_95_OFF = "price_1NFySwAbmaEugrFTxrQHhFN9"
|
|
STRIPE_STANDARD_PRICE_ID_100_OFF = "price_1NEpbrAbmaEugrFTgLABbIOF"
|
|
|
|
|
|
STRIPE_TEST_PRICE_ID = "price_1MT3FLAbmaEugrFTDgw7MVgb"
|
|
STRIPE_CONFIG_KEY_PUB = "pk_test_51LUUfAAbmaEugrFTI25uZBD3IFjbtaL6jUfRV83diDf7nco8worna4NGKhMHbPP71WCwT5EHFRdDNatxPrJWwgZ300kgH5EO4p"
|
|
STRIPE_CONFIG_API_KEY = "sk_test_51LUUfAAbmaEugrFTrWsfcBWZtbBh9r3HCa2sgeyikG808LjSk3bAdFhV6KxgRZ3vFxooa6RE0c5zBkTuOUrKkyjy00BrsIXAPs"
|
|
|
|
|
|
"""
|
|
Limite des zones de texte des formation
|
|
- porgramme
|
|
- objectif
|
|
- description
|
|
"""
|
|
CLASS_ZONE_PROGRAM_LIMIT = 1300
|
|
CLASS_ZONE_DESCRIP_LIMIT = 2000
|
|
CLASS_ZONE_OBJECTIF_LIMIT = 2000
|
|
|
|
|
|
"""
|
|
MariaDB database access
|
|
"""
|
|
|
|
if (MYSY_ENV == "PROD"):
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "51.77.211.142"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "mysy_db_chamilo_prod"
|
|
MYSY_LMS_URL = "https://lms-mysy-training.com/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy_prod/"
|
|
LMS_BAS_URL = "lms-mysy-training.com/"
|
|
MYSY_ENV_API = "https://apimysy.mysy-training.com/myclass/api/"
|
|
|
|
|
|
|
|
""" DEV on localHost
|
|
elif (MYSY_ENV == "DEV"):
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "127.0.0.1"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "chamilo"
|
|
MYSY_LMS_URL = "http://localhost/mysylms/lmsdev/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy/"
|
|
LMS_BAS_URL = "mysy-training.fr/"
|
|
|
|
|
|
elif (MYSY_ENV == "DEV"):
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "192.168.1.21"
|
|
#MYSY_MARIADB_HOST = "88.170.110.220"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "chamilo_dev2"
|
|
MYSY_LMS_URL = "https://lms.mysy-training.com/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy/"
|
|
LMS_BAS_URL = "mysy-training.fr/"
|
|
"""
|
|
elif (MYSY_ENV == "DEV"):
|
|
"""
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "88.170.110.220"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "chamilo_dev2"
|
|
MYSY_LMS_URL = "https://lms.mysy-training.com/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy/"
|
|
LMS_BAS_URL = "mysy-training.com/"
|
|
"""
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "51.77.211.142"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "mysy_db_chamilo_rec"
|
|
MYSY_LMS_URL = "https://reclms.mysy-training.com/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy_rec/"
|
|
LMS_BAS_URL = "mysy-hosting.com/"
|
|
|
|
MYSY_ENV_API = "http://localhost:"+str(MYSY_PORT_DEV)+"/myclass/api/"
|
|
|
|
|
|
elif (MYSY_ENV == "REC"):
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "51.77.211.142"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "mysy_db_chamilo_rec"
|
|
MYSY_LMS_URL = "https://reclms.mysy-training.com/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_mysy_rec/"
|
|
LMS_BAS_URL = "mysy-hosting.com/"
|
|
MYSY_ENV_API = "https://devapimysy.mysy-training.com/myclass/api/"
|
|
|
|
elif (MYSY_ENV == "DEM"):
|
|
MYSY_MARIADB_USER = "mysy_mariadb_user"
|
|
MYSY_MARIADB_USER_PASS = "fB5z%M)GG&g!n2c"
|
|
MYSY_MARIADB_HOST = "192.168.1.21"
|
|
MYSY_MARIADB_PORT = 3306
|
|
MYSY_LMS_BDD = "mysy_db_chamilo_rec"
|
|
MYSY_LMS_URL = "https://demolms.mysy-training.com/"
|
|
MYSY_LMS_BASE_DIRECTORY = "/var/www/html/chamilo_demo/"
|
|
LMS_BAS_URL = "mysy-hosting.fr/"
|
|
MYSY_ENV_API = "https://demoapi.mysy-training.com/myclass/api/"
|
|
|
|
|
|
|
|
|
|
"""
|
|
Variable pour definir les unité de durée acceptées pour une formation
|
|
"""
|
|
CLASS_DURATION_UNIT = ['heure', 'jour', 'semaine', 'mois', 'annee', 'user_rythme']
|
|
# user_rythme : definit les formations ou la durée depend de la progression de l'utilisateur
|
|
|
|
|
|
"""
|
|
Varibale definit la taille maximiale des repertoire à créer par mysy
|
|
"""
|
|
DIRECTORY_MAX_LENGTH = 50
|
|
|
|
|
|
"""
|
|
Variable defini les type de remise (code promo) acceptés:
|
|
percent ou fix
|
|
"""
|
|
CODE_PROMO_TYPE = ['fix', 'percent']
|
|
|
|
"""
|
|
Variable qui defini les type de contact possible
|
|
"""
|
|
CONTACT_TYPE = ['liv', 'fac', 'aut', 'nor']
|
|
|
|
"""
|
|
Variable qui defini les collections qui accepte des contact
|
|
"""
|
|
CONTACT_COLLECTION = ['user_account', 'partnair_account', 'partner_client']
|
|
|
|
"""
|
|
Variable qui defini les type d'activité possible
|
|
"""
|
|
ACTIVITE_TYPE = ['email', 'call', 'meeting', 'cmd', 'devis', 'facture', 'autre']
|
|
|
|
"""
|
|
Variable qui defini les collections qui accepte les activités
|
|
"""
|
|
ACTIVITE_COLLECTION = ['user_account', 'partnair_account', 'partner_client']
|
|
|
|
"""
|
|
Variable qui defini les status qui sont acceptés pour une activité
|
|
encours : 0
|
|
fait : 1
|
|
annulé : -1
|
|
archivé : 2
|
|
"""
|
|
|
|
ACTIVITE_STATUS = ['0', '-1', '1', '2']
|
|
|
|
"""
|
|
Les types d'image authorisé a etre stockés en base de données
|
|
"""
|
|
BDD_STOCKAGE_IMG = ['logo', 'cachet', 'user']
|
|
|
|
|
|
"""
|
|
Pour les session, on definit les étapes suivantes :
|
|
0 => En projet
|
|
1 => En planification
|
|
2 => Planifiée
|
|
3 => Terminée
|
|
4 => Facturée
|
|
-1 => Annulée
|
|
"""
|
|
SESSION_ETAPE = ['-1', '0', '1', '2', '3', '4', '5']
|
|
|
|
|
|
"""
|
|
Les profils des ressources humaines autorisé
|
|
"""
|
|
RESSOURCE_PROFIL = ['enseignant', 'cadre', 'employe', 'autre', '']
|
|
|
|
"""
|
|
Dans le processus d'inscription, les statuts accepté sont :
|
|
- '-1' => Annulé
|
|
- 0 => Préinscription
|
|
- 1 => Inscription (validée)
|
|
- 2 => Encours (Inscription en cours de creation, ici, on ne declenche aucun email)
|
|
"""
|
|
INSCRIPTION_STATUS = ['-1', '0', '1', '2']
|
|
|
|
|
|
"""
|
|
Gestion de modele de courrier : Type de courrier autorisé
|
|
"""
|
|
MODELE_DOCUMENT_TYPE = ['sms', 'email', 'pdf']
|
|
|
|
"""
|
|
Gestion des commandes et devis des partenaires
|
|
"""
|
|
|
|
PARTNER_ORDER_TYPE = ['devis', 'commande']
|
|
|
|
"""
|
|
Les Commandes :
|
|
En termes de process, un document de type commande peut avoir le statut de :
|
|
• -1 => Annulé
|
|
• 0 => Brouillon
|
|
• 1 => En cours
|
|
• 2 => Traité (prêt à être facturée)
|
|
• 3 => Facturé (la facture est traitée dans un autre document).
|
|
"""
|
|
PARTNER_ORDER_STATUS = ['-1', '0', '1', '2', '3']
|
|
|
|
"""
|
|
Les devis :
|
|
En termes de process, un document de type devis peut avoir le un des statuts ci-dessous :
|
|
• Brouillon => valeur 0
|
|
• En cours => valeur 1
|
|
• Fermé => valeur 2
|
|
• gagné => valeur 3
|
|
• perdu => valeur 4
|
|
• Annulé => valeur -1
|
|
"""
|
|
PARTNER_QUOTATION_STATUS = ['-1', '0', '1', '2', '3', '4']
|
|
|
|
|
|
"""
|
|
Pour mettre en place un système de configuration global, on va definir les valeur acceptée
|
|
"""
|
|
PARTNER_BASE_CONFIG_NAME = ['tva', 'smtp_server', 'smtp_user', 'smtp_user_pwd', 'smtp_count_from_name',
|
|
'smtp_count_port', 'partner_smtp', 'partner_jour_heure', 'nb_relance_auto',
|
|
'relance_auto', 'frequence_relance_auto', 'session_warning', 'session_warning_lead_time',
|
|
'recyclage_warning', 'recyclage_warning_lead_time',
|
|
'preinscription_notification_email', 'inscription_notification_email']
|
|
|
|
|
|
"""
|
|
Pour la personnalisation des champ, seuls certains objet metier / collection
|
|
sont autorisés
|
|
"""
|
|
PERSONALISATION_AUTORIZED_COLLECTION = ['ressource_humaine', 'ressource_materielle', 'partner_client',
|
|
'myclass', 'session_formation', 'inscription']
|
|
|
|
|
|
|
|
"""
|
|
Les objets metiers qui accepte d'etre lié à un agenda.
|
|
Par defaut il en y a 2 :
|
|
- ressource_humaine et
|
|
- ressource_materielle
|
|
"""
|
|
ALLOWED_AGENDA_RELATED_COLLECTION = ['ressource_humaine', 'ressource_materielle', 'inscription',
|
|
'apprenant', 'jury']
|
|
|
|
"""
|
|
Les types de location pour une session (intra ou extra ou autre)
|
|
"""
|
|
TRAINING_LOCATION_TYPE = ['intra', 'extra', 'autre', '']
|
|
|
|
|
|
"""
|
|
Gestion des champs spécifique : Type de champs autorisé
|
|
"""
|
|
SPECIFIC_FIELD_TYPE = ['float', 'string']
|
|
|
|
"""
|
|
Gestion des type d'evenement accepté dans un egend
|
|
- absence
|
|
- planning
|
|
- etc
|
|
"""
|
|
AGENDA_EVENT_TYPE = ['absence', 'planning', 'autre', '']
|
|
|
|
"""
|
|
Limite pour l'affichage des historique d'action coté front.
|
|
Par exemple on va afficher les 100 dernières action, mais pas tout.
|
|
"""
|
|
HISTORIQUE_MAX_EVENT = 100
|
|
|
|
"""
|
|
Type d'apprenant à l'inscription d'une session de formation
|
|
• 0 => autre
|
|
• 1 => salariés
|
|
• 2 => apprentis
|
|
• 3 => particuliers
|
|
• 4 => sans_emploi
|
|
"""
|
|
INSCRIPTION_TYPE_APPRENANT = [ '0', '1', '2', '3', '4']
|
|
|
|
|
|
"""
|
|
Gestion des prix d'achat / cout employé / cout location materiel
|
|
Ici on definit la périodicité
|
|
"""
|
|
PURCHASE_PRICE_PERIODICITY = ['fixe', 'heure', 'jour', 'mois', 'annee', ]
|
|
|
|
|
|
"""
|
|
Recyclage des formation
|
|
Ici on definit la périodicité
|
|
"""
|
|
RECYCLAGE_PERIODICITY = [ 'mois', 'annee', ]
|
|
|
|
|
|
"""
|
|
Les civilité
|
|
"""
|
|
CIVILITE = ['m', 'mme', 'neutre', '']
|
|
|
|
|
|
"""
|
|
Les prix de vente des formations
|
|
"""
|
|
TRAINING_PRICE = ['persession', 'perstagiaire', '']
|
|
|
|
|
|
"""
|
|
Les conditions de paiement : Date depart
|
|
xxx jrs fin du mois, ou y jours date facture.
|
|
les valeurs autorisées sont :
|
|
- facture = date facture
|
|
- mois = fin du mois
|
|
"""
|
|
PAIEMENT_CONDITION_DEPART = ['facture', 'mois']
|
|
|
|
|
|
"""
|
|
CRM :
|
|
Proabilité de gain valeur
|
|
"""
|
|
CRM_GAIN_PROBABILITE = ['faible', 'moyen', 'fort', 'inconnu', '']
|
|
|
|
"""
|
|
Statut de facturation d'un session de formation : invoiced_statut
|
|
|
|
- Si toutes les inscription associées à une session sont facturée ==> invoiced_statut de la session = 2
|
|
- Si au moins une inscription associée à une session est facturé ==> invoiced_statut de la session = 1
|
|
- Si non invoiced_statut de la session =0
|
|
|
|
"""
|
|
|
|
"""
|
|
Gestion des sequences de formation ( en rapport avec les emargements) :
|
|
- option = 0 ==> on prend le calendrier
|
|
- option = 1 ==> on prend la demi-journée
|
|
- option = 2 ==> on prend la journée
|
|
"""
|
|
EMARGEMENT_OPTION = ["0", "1", "2"]
|
|
|
|
"""
|
|
Taille maximale des nom de fichier
|
|
"""
|
|
FILE_NAME_MAX_SIZE = 250
|
|
|
|
"""
|
|
Les types de formulaire
|
|
- pos = Formulaire pour questionnaire de positionnement
|
|
- hot_eval = Formulaire pour evaluation à chaud
|
|
- cold_eval = Formulaire pour evaluation à froid
|
|
- human_eval = Formulaire pour evaluation d'une ressource humaine
|
|
- autre_eval = Formulaire pour d'autres evaluation non prevu plus haut
|
|
"""
|
|
FORM_TYPE = ['pos', 'hot_eval', 'cold_eval', 'human_eval', 'autre_eval']
|
|
|
|
|
|
"""
|
|
Formulaire : Type de question :
|
|
- qcm,
|
|
- text,
|
|
- note
|
|
- entier
|
|
"""
|
|
FORM_QUESTION_TYPE = ['qcm', 'text', 'note', 'entier', 'bool', 'checkbox']
|
|
|
|
|
|
"""
|
|
Survey Statut :
|
|
Une enquete a les statuts suivants :
|
|
0 - initialisé
|
|
1 - envoyé
|
|
2 - repondu
|
|
-1 - annulé
|
|
"""
|
|
SURVEY_STATUS = ['-1', '0', '1', '2']
|
|
|
|
|
|
"""
|
|
Statut de paiement des factures
|
|
0 - aucun regelement
|
|
1 - partiellement payé
|
|
2 - entièrement payé
|
|
"""
|
|
INVOICE_PAIEMENT_STATUS = ['0', '1', '2']
|
|
|
|
"""
|
|
Completude des etapes d'une session de formation : "statut_completude"
|
|
- 2 = "Oui", Etape completé
|
|
- 1 = "Part", Etape partiellement effectué
|
|
- 0 = "Non", Etape non demarré
|
|
|
|
"""
|
|
|
|
"""
|
|
Gestion is_company ?
|
|
- 0 : Particulier
|
|
- 1 : Société
|
|
- 2 : Pouvoir Public
|
|
"""
|
|
|
|
"""
|
|
Gestion du module d'envoie d'email
|
|
les 'related_collection' sont : ['inscription', 'apprenant', 'contact', 'nointernalcontact']
|
|
"""
|
|
EMAIL_DEST_RELATED_COLLECTION = ['inscription', 'apprenant', 'contact', 'nointernalcontact']
|
|
|
|
EMAIL_MAX_DESTINAIRE = 30
|
|
EMAIL_MAX_CC = 10
|
|
EMAIL_MAX_BCC = 10
|
|
EMAIL_MAX_PJ = 5
|
|
|
|
|
|
"""
|
|
La clé API de OpenAI
|
|
"""
|
|
OPENAI_KEY = "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"
|
|
|
|
"""
|
|
Variable interne pour le traitement
|
|
des mysy_voice_to_text
|
|
"""
|
|
#Les collections autorisées pour les opérations voix
|
|
mysy_voice_instruction_related_collection = ['myclass', 'session_formation', 'parter_order_header', 'parter_order_line']
|
|
|
|
#Les mots de ponctuation vocale
|
|
mysy_voice_stop_word = ['stop', 'fin']
|
|
|
|
#Les champs autorisés par collection
|
|
mysy_voice_instruction_collection_field = {
|
|
"myclass": [
|
|
"Titre",
|
|
"Description",
|
|
"Programme"
|
|
],
|
|
"session_formation": [
|
|
"Titre",
|
|
"Debut",
|
|
"Fin"
|
|
]
|
|
}
|
|
|
|
|
|
#Les actions autorisées par collection
|
|
mysy_voice_instruction_collection_action = {
|
|
"myclass": [
|
|
{"créer": "create"}, {"création": "create"}, {"crée": "create"},
|
|
{"ajoute": "create"}, {"ajout": "create"}, {"nouvelle": "create"},
|
|
{"nouveau": "create"},
|
|
|
|
{"met à jour": "update"}, {"met a jour": "update"}, {"mettre à jour": "update"},
|
|
{"mettre a jour": "update"}, {"modifier": "update"}, {"modifie": "update"},
|
|
{"update":"update"} ,
|
|
],
|
|
"session_formation": [
|
|
{"créer": "create"}, {"création": "create"}, {"crée": "create"},
|
|
{"ajoute": "create"}, {"ajout": "create"}, {"nouvelle": "create"},
|
|
{"nouveau": "create"},
|
|
{"met à jour": "update"}, {"met a jour": "update"}, {"mettre à jour": "update"},
|
|
{"mettre a jour": "update"}, {"modifier": "update"}, {"modifie": "update"},
|
|
{"update":"update"} ,
|
|
]
|
|
}
|
|
|
|
"""
|
|
Cette variable defini ou les messages vocaux utilisés par le système
|
|
sont stocké
|
|
"""
|
|
SYSTEM_VOICE_MESSAGES_LOCATION = "./admin_voices_messages/"
|
|
|
|
|
|
"""
|
|
Confirmation d'un ordre de vocal
|
|
"""
|
|
VOICE_INSTRUCTION_CONFIRMATION = ["confirme", "confimer", "conformation"]
|
|
|
|
"""
|
|
Annulation d'un ordre de vocal
|
|
"""
|
|
VOICE_INSTRUCTION_ANNULATION = ["annuler", "annulle", "refus", "refuser"]
|
|
|
|
|
|
"""
|
|
Gestion du context de connexion d'un partenaire
|
|
"""
|
|
PARTNER_ACCOUNT_CONNEXION_CONTEXT_VALUES = ['mysy_session_display_view',
|
|
'mysy_menu_gauche_reduit',
|
|
'mysy_catalog_data_row_grouped_by']
|
|
|
|
|
|
"""
|
|
Longueur maximale d'un commentaire dans l'historique
|
|
"""
|
|
HISTORIQUE_DESCRIPTION_LEN = 500 |