mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 15:33:22 +00:00
feat: Gestion des inscriptions [#1] feat(frontend): Création des vues pour le paramétrage de l'école [#2] feat: Gestion du login [#6] fix: Correction lors de la migration des modèle [#8] feat: Révision du menu principal [#9] feat: Ajout d'un footer [#10] feat: Création des dockers compose pour les environnements de développement et de production [#12] doc(ci): Mise en place de Husky et d'un suivi de version automatique [#14]
86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
import logging
|
|
from django.db.models import Q
|
|
from GestionInscriptions.models import FicheInscription, Profil, Eleve
|
|
|
|
def getAllObjects(_objectName):
|
|
result = _objectName.objects.all()
|
|
if not result:
|
|
logging.warning("Aucun résultat n'a été trouvé - " + _objectName.__name__)
|
|
return result
|
|
|
|
def getObject(_objectName, _columnName, _value):
|
|
result=None
|
|
try :
|
|
result = _objectName.objects.get(**{_columnName: _value})
|
|
except _objectName.DoesNotExist:
|
|
logging.error("Aucun résultat n'a été trouvé - " + _objectName.__name__ + " (" + _columnName + "=" + str(_value) + ")")
|
|
|
|
return result
|
|
|
|
def getObjects(_objectName, _columnName, _value, _reverseCondition=False):
|
|
results=None
|
|
try :
|
|
results = _objectName.objects.filter(**{_columnName: _value}) if _reverseCondition == False else _objectName.objects.filter(~Q(**{_columnName: _value}))
|
|
except _objectName.DoesNotExist:
|
|
logging.error("Aucun résultat n'a été trouvé - " + _objectName.__name__ + " (" + _columnName + "=" + str(_value) + ")")
|
|
|
|
return results
|
|
|
|
def existsProfilInList(objectList, valueToCheck):
|
|
result = False
|
|
for objectInstance in objectList:
|
|
if objectInstance.email == valueToCheck:
|
|
result = True
|
|
return result
|
|
|
|
def getProfile(objectList, valueToCheck):
|
|
result = None
|
|
for objectInstance in objectList:
|
|
if objectInstance.email == valueToCheck:
|
|
result = objectInstance
|
|
return result
|
|
|
|
def getEleveByCodeFI(_codeFI):
|
|
eleve = None
|
|
ficheInscriptions_List=getAllObjects(FicheInscription)
|
|
for fi in ficheInscriptions_List:
|
|
if fi.codeLienInscription == _codeFI:
|
|
eleve = fi.eleve
|
|
return eleve
|
|
|
|
def getLastId(_object):
|
|
result = 1
|
|
try:
|
|
result = _object.objects.latest('id').id
|
|
except:
|
|
logging.warning("Aucun résultat n'a été trouvé - ")
|
|
return result
|
|
|
|
def searchObjects(_objectName, _searchTerm, _excludeState=None):
|
|
"""
|
|
Recherche générique sur les objets avec possibilité d'exclure certains états
|
|
_objectName: Classe du modèle
|
|
_searchTerm: Terme de recherche
|
|
_excludeState: État à exclure de la recherche (optionnel)
|
|
"""
|
|
try:
|
|
query = _objectName.objects.all()
|
|
|
|
# Si on a un état à exclure
|
|
if _excludeState is not None:
|
|
query = query.filter(etat__lt=_excludeState)
|
|
|
|
# Si on a un terme de recherche
|
|
if _searchTerm and _searchTerm.strip():
|
|
terms = _searchTerm.lower().strip().split()
|
|
for term in terms:
|
|
query = query.filter(
|
|
Q(eleve__nom__icontains=term) |
|
|
Q(eleve__prenom__icontains=term)
|
|
)
|
|
|
|
return query.order_by('eleve__nom', 'eleve__prenom')
|
|
|
|
except _objectName.DoesNotExist:
|
|
logging.error(f"Aucun résultat n'a été trouvé - {_objectName.__name__} (recherche: {_searchTerm})")
|
|
return None |