mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
Merge branch 'develop'
This commit is contained in:
@ -1,11 +1,12 @@
|
|||||||
from django.db.models.signals import post_save, post_delete, m2m_changed
|
from django.db.models.signals import post_save, post_delete, m2m_changed
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
|
||||||
from GestionInscriptions.models import FicheInscription, Eleve, Responsable
|
from GestionInscriptions.models import FicheInscription, Eleve, Responsable
|
||||||
from GestionLogin.models import Profil
|
from GestionLogin.models import Profil
|
||||||
from N3wtSchool import settings
|
from N3wtSchool import settings
|
||||||
from N3wtSchool.redis_client import redis_client
|
from N3wtSchool.redis_client import redis_client
|
||||||
|
import logging
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
def clear_cache():
|
def clear_cache():
|
||||||
# Préfixes des clés à supprimer
|
# Préfixes des clés à supprimer
|
||||||
@ -14,10 +15,10 @@ def clear_cache():
|
|||||||
for prefix in prefixes:
|
for prefix in prefixes:
|
||||||
# Utiliser le motif pour obtenir les clés correspondant au préfixe
|
# Utiliser le motif pour obtenir les clés correspondant au préfixe
|
||||||
pattern = f'*{prefix}*'
|
pattern = f'*{prefix}*'
|
||||||
print(f'pattern : {pattern}')
|
logger.debug(f'pattern : {pattern}')
|
||||||
for key in redis_client.scan_iter(pattern):
|
for key in redis_client.scan_iter(pattern):
|
||||||
redis_client.delete(key)
|
redis_client.delete(key)
|
||||||
print(f'deleting : {key}')
|
logger.debug(f'deleting : {key}')
|
||||||
|
|
||||||
@receiver(post_save, sender=FicheInscription)
|
@receiver(post_save, sender=FicheInscription)
|
||||||
@receiver(post_delete, sender=FicheInscription)
|
@receiver(post_delete, sender=FicheInscription)
|
||||||
|
|||||||
@ -8,7 +8,6 @@ from N3wtSchool import settings, bdd
|
|||||||
import requests
|
import requests
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logger.setLevel(logging.WARNING)
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def check_for_signature_deadlines():
|
def check_for_signature_deadlines():
|
||||||
@ -22,7 +21,7 @@ def check_for_signature_deadlines():
|
|||||||
send_notification(dossier)
|
send_notification(dossier)
|
||||||
|
|
||||||
def send_notification(dossier):
|
def send_notification(dossier):
|
||||||
print(f'Dossier en attente.... {dossier} - Positionnement à l\'état A_RELANCER')
|
logger.debug(f'Dossier en attente.... {dossier} - Positionnement à l\'état A_RELANCER')
|
||||||
|
|
||||||
# Changer l'état de l'automate
|
# Changer l'état de l'automate
|
||||||
updateStateMachine(dossier, 'relanceDI')
|
updateStateMachine(dossier, 'relanceDI')
|
||||||
|
|||||||
@ -2,10 +2,12 @@ import logging
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from GestionInscriptions.models import FicheInscription, Profil, Eleve
|
from GestionInscriptions.models import FicheInscription, Profil, Eleve
|
||||||
|
|
||||||
|
logger = logging.getLogger('N3wtSchool')
|
||||||
|
|
||||||
def getAllObjects(_objectName):
|
def getAllObjects(_objectName):
|
||||||
result = _objectName.objects.all()
|
result = _objectName.objects.all()
|
||||||
if not result:
|
if not result:
|
||||||
logging.warning("Aucun résultat n'a été trouvé - " + _objectName.__name__)
|
logger.warning("Aucun résultat n'a été trouvé - " + _objectName.__name__)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def getObject(_objectName, _columnName, _value):
|
def getObject(_objectName, _columnName, _value):
|
||||||
@ -13,7 +15,7 @@ def getObject(_objectName, _columnName, _value):
|
|||||||
try :
|
try :
|
||||||
result = _objectName.objects.get(**{_columnName: _value})
|
result = _objectName.objects.get(**{_columnName: _value})
|
||||||
except _objectName.DoesNotExist:
|
except _objectName.DoesNotExist:
|
||||||
logging.error("Aucun résultat n'a été trouvé - " + _objectName.__name__ + " (" + _columnName + "=" + str(_value) + ")")
|
logger.error("Aucun résultat n'a été trouvé - " + _objectName.__name__ + " (" + _columnName + "=" + str(_value) + ")")
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ def getObjects(_objectName, _columnName, _value, _reverseCondition=False):
|
|||||||
try :
|
try :
|
||||||
results = _objectName.objects.filter(**{_columnName: _value}) if _reverseCondition == False else _objectName.objects.filter(~Q(**{_columnName: _value}))
|
results = _objectName.objects.filter(**{_columnName: _value}) if _reverseCondition == False else _objectName.objects.filter(~Q(**{_columnName: _value}))
|
||||||
except _objectName.DoesNotExist:
|
except _objectName.DoesNotExist:
|
||||||
logging.error("Aucun résultat n'a été trouvé - " + _objectName.__name__ + " (" + _columnName + "=" + str(_value) + ")")
|
logger.error("Aucun résultat n'a été trouvé - " + _objectName.__name__ + " (" + _columnName + "=" + str(_value) + ")")
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
@ -53,7 +55,7 @@ def getLastId(_object):
|
|||||||
try:
|
try:
|
||||||
result = _object.objects.latest('id').id
|
result = _object.objects.latest('id').id
|
||||||
except:
|
except:
|
||||||
logging.warning("Aucun résultat n'a été trouvé - ")
|
logger.warning("Aucun résultat n'a été trouvé - ")
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def searchObjects(_objectName, _searchTerm=None, _excludeStates=None):
|
def searchObjects(_objectName, _searchTerm=None, _excludeStates=None):
|
||||||
|
|||||||
@ -92,6 +92,68 @@ SESSION_CACHE_ALIAS = 'default'
|
|||||||
|
|
||||||
WSGI_APPLICATION = 'N3wtSchool.wsgi.application'
|
WSGI_APPLICATION = 'N3wtSchool.wsgi.application'
|
||||||
|
|
||||||
|
|
||||||
|
#LOGGING
|
||||||
|
LOGGING = {
|
||||||
|
"version": 1,
|
||||||
|
"disable_existing_loggers": False,
|
||||||
|
"formatters": { # Ajout des formateurs
|
||||||
|
"verbose": {
|
||||||
|
"format": "{asctime} [{levelname}] [{name}] {module}.{funcName} - {message}",
|
||||||
|
"style": "{",
|
||||||
|
"datefmt": "%Y-%m-%d %H:%M:%S"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"handlers": {
|
||||||
|
"console": {
|
||||||
|
"class": "logging.StreamHandler",
|
||||||
|
"formatter": "verbose", # Utilisation du formateur
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("ROOT_LOG_LEVEL", "INFO"),
|
||||||
|
},
|
||||||
|
"loggers": {
|
||||||
|
|
||||||
|
"celery": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("CELERY_LOG_LEVEL", "INFO"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"N3wtSchool": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("N3WTSCHOOL_LOG_LEVEL", "INFO"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"GestionNotification": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("GESTION_NOTIFICATION_LOG_LEVEL", "INFO"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"GestionLogin": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("GESTION_LOGIN_LOG_LEVEL", "INFO"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"GestionInscriptions": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("GESTION_INSCRIPTIONS_LOG_LEVEL", "DEBUG"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"GestionMessagerie": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("GESTION_MESSAGERIE_LOG_LEVEL", "INFO"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
"GestionEnseignants": {
|
||||||
|
"handlers": ["console"],
|
||||||
|
"level": os.getenv("GESTION_ENSEIGNANTS_LOG_LEVEL", "INFO"),
|
||||||
|
"propagate": False,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
# Password validation
|
# Password validation
|
||||||
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
|
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
|
||||||
|
|
||||||
|
|||||||
@ -19,12 +19,12 @@ from django.urls import include, path, re_path
|
|||||||
from rest_framework import permissions
|
from rest_framework import permissions
|
||||||
from drf_yasg.views import get_schema_view
|
from drf_yasg.views import get_schema_view
|
||||||
from drf_yasg import openapi
|
from drf_yasg import openapi
|
||||||
|
from __version__ import __version__
|
||||||
|
|
||||||
schema_view = get_schema_view(
|
schema_view = get_schema_view(
|
||||||
openapi.Info(
|
openapi.Info(
|
||||||
title="N3wtSchool API",
|
title="N3wtSchool API",
|
||||||
default_version='v1',
|
default_version=__version__,
|
||||||
description="Documentation de l'API de N3wtSchool",
|
description="Documentation de l'API de N3wtSchool",
|
||||||
terms_of_service="https://www.google.com/policies/terms/",
|
terms_of_service="https://www.google.com/policies/terms/",
|
||||||
contact=openapi.Contact(email="contact@example.com"),
|
contact=openapi.Contact(email="contact@example.com"),
|
||||||
|
|||||||
Reference in New Issue
Block a user