mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
chore: Initial Commit
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]
This commit is contained in:
86
Back-End/N3wtSchool/bdd.py
Normal file
86
Back-End/N3wtSchool/bdd.py
Normal file
@ -0,0 +1,86 @@
|
||||
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
|
||||
Reference in New Issue
Block a user