620 lines
26 KiB
Python
620 lines
26 KiB
Python
from rest_framework import serializers
|
|
from bs4 import BeautifulSoup
|
|
from html import unescape
|
|
from .models import GlpiTickets, GlpiTicketvalidations, GlpiUsers
|
|
|
|
def extract_information_aa_v1(content):
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
|
|
def extract_field(field_name):
|
|
field = soup.find(string=lambda text: field_name in text)
|
|
if field:
|
|
parts = field.split(':', 1)
|
|
if len(parts) > 1:
|
|
return parts[1].strip()
|
|
return None
|
|
|
|
matricule = extract_field("Matricule")
|
|
fonction = extract_field("Fonction")
|
|
structure = extract_field("Structure")
|
|
date_absence = extract_field("la journée du")
|
|
commentaire = extract_field("Commentaire")
|
|
|
|
return matricule, fonction, structure, date_absence, commentaire
|
|
|
|
def extract_information_aa_v2(content):
|
|
content = unescape(content) # Unescape HTML entities
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
|
|
# Extract the text and split by line breaks (<br />)
|
|
text_lines = soup.get_text(separator="\n").splitlines()
|
|
|
|
# Initialize variables to hold the extracted data
|
|
matricule = None
|
|
fonction = None
|
|
structure = None
|
|
date_absence = None
|
|
commentaire = None
|
|
|
|
# Iterate through each line and extract the data
|
|
for line in text_lines:
|
|
line = line.strip()
|
|
if line.startswith("Fonction"):
|
|
fonction = line.replace("Fonction :", "").strip()
|
|
elif line.startswith("Structure"):
|
|
structure = line.replace("Structure :", "").strip()
|
|
elif line.startswith("Est autorisé (e) à s'absenter la journée du"):
|
|
date_absence = line.replace("Est autorisé (e) à s'absenter la journée du :", "").strip()
|
|
elif line.startswith("Commentaire"):
|
|
commentaire = line.replace("Commentaire :", "").strip()
|
|
elif line.startswith("Matricule"):
|
|
matricule = line.replace("Matricule :", "").strip()
|
|
|
|
return matricule, fonction, structure, date_absence, commentaire
|
|
|
|
def extract_information_aa(content):
|
|
# First, try extracting using the first function
|
|
matricule, fonction, structure, date_absence, commentaire = extract_information_aa_v1(content)
|
|
|
|
# If any key field is not extracted, apply the second method
|
|
if not (matricule and date_absence):
|
|
matricule, fonction, structure, date_absence, commentaire = extract_information_aa_v2(content)
|
|
|
|
return matricule, fonction, structure, date_absence, commentaire
|
|
|
|
def extract_information_ae(content):
|
|
content = unescape(content) # Unescape HTML entities
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
|
|
# Extract the text and split by line breaks (<br />)
|
|
text_lines = soup.get_text(separator="\n").splitlines()
|
|
|
|
# Initialize variables to hold the extracted data
|
|
matricule = None
|
|
fonction = None
|
|
structure = None
|
|
date_reprise = None
|
|
commentaire = None
|
|
|
|
# Iterate through each line and extract the data
|
|
for line in text_lines:
|
|
line = line.strip()
|
|
if line.startswith("Matricule"):
|
|
matricule = line.replace("Matricule :", "").strip()
|
|
elif line.startswith("Fonction"):
|
|
fonction = line.replace("Fonction :", "").strip()
|
|
elif line.startswith("Structure"):
|
|
structure = line.replace("Structure :", "").strip()
|
|
elif line.startswith("Est autorisé (e) de reprendre à :"):
|
|
date_reprise = line.replace("Est autorisé (e) de reprendre à :", "").strip()
|
|
elif line.startswith("Commentaire :"):
|
|
commentaire = line.replace("Commentaire :", "").strip()
|
|
|
|
return matricule, fonction, structure, date_reprise, commentaire
|
|
|
|
def extract_information_bs(content):
|
|
content = unescape(content) # Unescape HTML entities
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
rows = soup.find_all('tr')
|
|
|
|
# Initialize variables to hold the extracted data
|
|
matricule = None
|
|
fonction = None
|
|
structure = None
|
|
date_sortie = None
|
|
heure_sortie = None
|
|
motif = None
|
|
|
|
# Iterate through each row in the table and extract the data
|
|
for index, row in enumerate(rows):
|
|
columns = row.find_all('td')
|
|
|
|
if len(columns) == 2: # Ensure there are exactly 2 columns
|
|
key = columns[0].get_text(strip=True).replace(" :", "").strip()
|
|
value = columns[1].get_text(strip=True)
|
|
|
|
if key.startswith("Matricule"):
|
|
matricule = value
|
|
elif key.startswith("Fonction"):
|
|
fonction = value
|
|
elif key.startswith("Structure"):
|
|
structure = value
|
|
elif key.startswith("Est autorisé (e) de sortir le"):
|
|
date_sortie = value
|
|
elif key.startswith("A"):
|
|
heure_sortie = value
|
|
elif key.startswith("Pour affaire Personnelle"):
|
|
motif = value
|
|
|
|
return matricule, fonction, structure, date_sortie, heure_sortie, motif
|
|
|
|
def extract_information_hs(content):
|
|
content = unescape(content)
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
|
|
# Extract the text and split by line breaks (<br />)
|
|
text_lines = soup.get_text(separator="\n").splitlines()
|
|
|
|
# Initialize variables to hold the extracted data
|
|
matricule = None
|
|
fonction = None
|
|
structure = None
|
|
date_requisition = None
|
|
motif_requisition = None
|
|
heure_debut = None
|
|
heure_fin = None
|
|
lieu_travail = None
|
|
|
|
# Iterate through each line and extract the data
|
|
for line in text_lines:
|
|
line = line.strip()
|
|
if line.startswith("matricule"):
|
|
matricule = line.replace("matricule :", "").strip()
|
|
elif line.startswith("Fonction"):
|
|
fonction = line.replace("Fonction :", "").strip()
|
|
elif line.startswith("Structure"):
|
|
structure = line.replace("Structure :", "").strip()
|
|
elif line.startswith("Date de réquisition :"):
|
|
date_requisition = line.replace("Date de réquisition :", "").strip()
|
|
elif line.startswith("Le motif de la réquisition :"):
|
|
motif_requisition = line.replace("Le motif de la réquisition :", "").strip()
|
|
elif line.startswith("Heure de début :"):
|
|
heure_debut = line.replace("Heure de début :", "").strip()
|
|
elif line.startswith("Heure de fin :"):
|
|
heure_fin = line.replace("Heure de fin :", "").strip()
|
|
elif line.startswith("Lieu de travail :"):
|
|
lieu_travail = line.replace("Lieu de travail :", "").strip()
|
|
|
|
return matricule, fonction, structure, date_requisition, motif_requisition, heure_debut, heure_fin, lieu_travail
|
|
|
|
def extract_information_co(content):
|
|
content = unescape(content) # Unescape HTML entities
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
rows = soup.find_all('tr')
|
|
|
|
matricule = None
|
|
fonction = None
|
|
structure = None
|
|
exercice = None
|
|
date_depart = None
|
|
interim = None
|
|
adresse_conge = None
|
|
|
|
# Iterate through each row in the table and extract the data
|
|
for index, row in enumerate(rows):
|
|
columns = row.find_all('td')
|
|
|
|
if len(columns) == 2: # Ensure there are exactly 2 columns
|
|
key = columns[0].get_text(strip=True).replace(" :", "").strip()
|
|
value = columns[1].get_text(strip=True)
|
|
|
|
if key.startswith("Matricule"):
|
|
matricule = value
|
|
elif key.startswith("Fonction"):
|
|
fonction = value
|
|
elif key.startswith("Structure"):
|
|
structure = value
|
|
elif key.startswith("Exercice"):
|
|
exercice = value
|
|
elif key.startswith("Date de Départ"):
|
|
date_depart = value
|
|
elif key.startswith("Intérimaire"):
|
|
interim = value
|
|
elif key.startswith("Adresse durant le Congé"):
|
|
adresse_conge = value
|
|
|
|
return matricule, fonction, structure, exercice, date_depart, interim, adresse_conge
|
|
|
|
def extract_information_cr(content):
|
|
content = unescape(content) # Unescape HTML entities
|
|
soup = BeautifulSoup(content, "html.parser")
|
|
|
|
# Extract the text and split by line breaks (<br />)
|
|
text_lines = soup.get_text(separator="\n").splitlines()
|
|
|
|
# Initialize variables to hold the extracted data
|
|
matricule = None
|
|
fonction = None
|
|
structure = None
|
|
de = None
|
|
a = None
|
|
commentaire = None
|
|
|
|
# Iterate through each line and extract the data
|
|
for line in text_lines:
|
|
line = line.strip()
|
|
if line.startswith("matricule"):
|
|
matricule = line.replace("matricule :", "").strip()
|
|
elif line.startswith("Fonction"):
|
|
fonction = line.replace("Fonction :", "").strip()
|
|
elif line.startswith("Structure"):
|
|
structure = line.replace("Structure :", "").strip()
|
|
elif line.startswith("De"):
|
|
de = line.replace("De :", "").strip()
|
|
elif line.startswith("A :"):
|
|
a = line.replace("A :", "").strip()
|
|
elif line.startswith("commentaire"):
|
|
commentaire = line.replace("commentaire :", "").strip()
|
|
|
|
return matricule, fonction, structure, de, a, commentaire
|
|
|
|
class GlpiTicketAESerializer(serializers.ModelSerializer):
|
|
# Include fields you want to extract outside of validations
|
|
comment_validation = serializers.SerializerMethodField()
|
|
validation_date = serializers.SerializerMethodField()
|
|
validation_status = serializers.SerializerMethodField()
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
|
|
matricule = serializers.SerializerMethodField()
|
|
date_reprise = serializers.SerializerMethodField()
|
|
commentaire = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = GlpiTickets
|
|
fields = ['id', 'name', 'date_creation', 'matricule', 'date_reprise', 'commentaire', 'validation_status', 'validate_by_user', 'validation_date', 'comment_validation',]
|
|
|
|
def get_comment_validation(self, obj):
|
|
# Assuming you want the latest comment from the validations
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'comment_validation', None) if latest_validation else None
|
|
|
|
def get_validation_date(self, obj):
|
|
# Assuming you want the latest validation date
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'validation_date', None) if latest_validation else None
|
|
|
|
def get_validate_by_user(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation.validate_by_user, 'registration_number', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_validation_status(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'status', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_matricule(self, obj):
|
|
matricule, _, _, _, _ = extract_information_ae(obj.content)
|
|
return matricule
|
|
|
|
def get_fonction(self, obj):
|
|
_, fonction, _, _, _ = extract_information_ae(obj.content)
|
|
return fonction
|
|
|
|
def get_structure(self, obj):
|
|
_, _, structure, _, _ = extract_information_ae(obj.content)
|
|
return structure
|
|
|
|
def get_date_reprise(self, obj):
|
|
_, _, _, date_reprise, _ = extract_information_ae(obj.content)
|
|
return date_reprise
|
|
|
|
def get_commentaire(self, obj):
|
|
_, _, _, _, commentaire = extract_information_ae(obj.content)
|
|
return commentaire
|
|
|
|
class GlpiTicketBSSerializer(serializers.ModelSerializer):
|
|
# Include fields you want to extract outside of validations
|
|
comment_validation = serializers.SerializerMethodField()
|
|
validation_status = serializers.SerializerMethodField()
|
|
validation_date = serializers.SerializerMethodField()
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
|
|
matricule = serializers.SerializerMethodField()
|
|
date_sortie = serializers.SerializerMethodField()
|
|
heure_sortie = serializers.SerializerMethodField()
|
|
motif = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = GlpiTickets
|
|
fields = ['id', 'name', 'date_creation', 'matricule', 'date_sortie', 'heure_sortie', 'motif', 'validation_status', 'validation_date', 'validate_by_user', 'comment_validation']
|
|
|
|
def get_comment_validation(self, obj):
|
|
# Assuming you want the latest comment from the validations
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'comment_validation', None) if latest_validation else None
|
|
|
|
def get_validation_date(self, obj):
|
|
# Assuming you want the latest validation date
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'validation_date', None) if latest_validation else None
|
|
|
|
def get_validate_by_user(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation.validate_by_user, 'registration_number', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_validation_status(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'status', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_matricule(self, obj):
|
|
matricule, _, _, _, _, _ = extract_information_bs(obj.content)
|
|
return matricule
|
|
|
|
def get_fonction(self, obj):
|
|
_, fonction, _, _, _, _ = extract_information_bs(obj.content)
|
|
return fonction
|
|
|
|
def get_structure(self, obj):
|
|
_, _, structure, _, _, _ = extract_information_bs(obj.content)
|
|
return structure
|
|
|
|
def get_date_sortie(self, obj):
|
|
_, _, _, date_sortie, _, _ = extract_information_bs(obj.content)
|
|
return date_sortie
|
|
|
|
def get_heure_sortie(self, obj):
|
|
_, _, _, _, heure_sortie, _ = extract_information_bs(obj.content)
|
|
return heure_sortie
|
|
|
|
def get_motif(self, obj):
|
|
_, _, _, _, _, motif = extract_information_bs(obj.content)
|
|
return motif
|
|
|
|
class GlpiTicketHSSerializer(serializers.ModelSerializer):
|
|
# Include fields you want to extract outside of validations
|
|
comment_validation = serializers.SerializerMethodField()
|
|
validation_date = serializers.SerializerMethodField()
|
|
validation_status = serializers.SerializerMethodField()
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
|
|
matricule = serializers.SerializerMethodField()
|
|
date_requisition = serializers.SerializerMethodField()
|
|
motif_requisition = serializers.SerializerMethodField()
|
|
heure_debut = serializers.SerializerMethodField()
|
|
heure_fin = serializers.SerializerMethodField()
|
|
lieu_travail = serializers.SerializerMethodField()
|
|
|
|
|
|
class Meta:
|
|
model = GlpiTickets
|
|
fields = ['id', 'name', 'date_creation', 'matricule', 'date_requisition', 'motif_requisition', 'heure_debut', 'heure_fin', 'lieu_travail', 'validation_status' , 'validation_date', 'validate_by_user', 'comment_validation',]
|
|
|
|
def get_comment_validation(self, obj):
|
|
# Assuming you want the latest comment from the validations
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'comment_validation', None) if latest_validation else None
|
|
|
|
def get_validation_date(self, obj):
|
|
# Assuming you want the latest validation date
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'validation_date', None) if latest_validation else None
|
|
|
|
def get_validate_by_user(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation.validate_by_user, 'registration_number', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_validation_status(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'status', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_matricule(self, obj):
|
|
matricule, _, _, _, _, _, _, _ = extract_information_hs(obj.content)
|
|
return matricule
|
|
|
|
def get_fonction(self, obj):
|
|
_, fonction, _, _, _, _, _, _ = extract_information_hs(obj.content)
|
|
return fonction
|
|
|
|
def get_structure(self, obj):
|
|
_, _, structure, _, _, _, _, _ = extract_information_hs(obj.content)
|
|
return structure
|
|
|
|
def get_date_requisition(self, obj):
|
|
_, _, _, date_requisition, _, _, _, _ = extract_information_hs(obj.content)
|
|
return date_requisition
|
|
|
|
def get_motif_requisition(self, obj):
|
|
_, _, _, _, motif_requisition, _, _, _ = extract_information_hs(obj.content)
|
|
return motif_requisition
|
|
|
|
def get_heure_debut(self, obj):
|
|
_, _, _, _, _, heure_debut, _, _ = extract_information_hs(obj.content)
|
|
return heure_debut
|
|
|
|
def get_heure_fin(self, obj):
|
|
_, _, _, _, _, _, heure_fin, _ = extract_information_hs(obj.content)
|
|
return heure_fin
|
|
|
|
def get_lieu_travail(self, obj):
|
|
_, _, _, _, _, _, _, lieu_travail = extract_information_hs(obj.content)
|
|
return lieu_travail
|
|
|
|
class GlpiTicketAASerializer(serializers.ModelSerializer):
|
|
# Include fields you want to extract outside of validations
|
|
comment_validation = serializers.SerializerMethodField()
|
|
validation_status = serializers.SerializerMethodField()
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
validation_date = serializers.SerializerMethodField()
|
|
|
|
|
|
matricule = serializers.SerializerMethodField()
|
|
date_absence = serializers.SerializerMethodField()
|
|
commentaire = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = GlpiTickets
|
|
fields = ['id', 'name', 'date_creation', 'matricule', 'date_absence', 'commentaire', 'validation_status', 'validate_by_user', 'validation_date', 'comment_validation',]
|
|
|
|
def get_comment_validation(self, obj):
|
|
# Assuming you want the latest comment from the validations
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'comment_validation', None) if latest_validation else None
|
|
|
|
def get_validation_date(self, obj):
|
|
# Assuming you want the latest validation date
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'validation_date', None) if latest_validation else None
|
|
|
|
def get_validate_by_user(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation.validate_by_user, 'registration_number', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_validation_status(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'status', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_matricule(self, obj):
|
|
matricule, _, _, _, _ = extract_information_aa(obj.content)
|
|
return matricule
|
|
|
|
def get_fonction(self, obj):
|
|
_, fonction, _, _, _ = extract_information_aa(obj.content)
|
|
return fonction
|
|
|
|
def get_structure(self, obj):
|
|
_, _, structure, _, _ = extract_information_aa(obj.content)
|
|
return structure
|
|
|
|
def get_date_absence(self, obj):
|
|
_, _, _, date_absence, _ = extract_information_aa(obj.content)
|
|
return date_absence
|
|
|
|
def get_commentaire(self, obj):
|
|
_, _, _, _, commentaire = extract_information_aa(obj.content)
|
|
return commentaire
|
|
|
|
class GlpiTicketCOSerializer(serializers.ModelSerializer):
|
|
# Include fields you want to extract outside of validations
|
|
comment_validation = serializers.SerializerMethodField()
|
|
validation_date = serializers.SerializerMethodField()
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
|
|
matricule = serializers.SerializerMethodField()
|
|
exercice = serializers.SerializerMethodField()
|
|
date_depart = serializers.SerializerMethodField()
|
|
interim = serializers.SerializerMethodField()
|
|
adresse_conge = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = GlpiTickets
|
|
fields = ['name', 'date_creation', 'matricule', 'exercice', 'date_depart', 'interim', 'adresse_conge', 'validation_date', 'validate_by_user', 'comment_validation',]
|
|
|
|
def get_comment_validation(self, obj):
|
|
# Assuming you want the latest comment from the validations
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return latest_validation.comment_validation if latest_validation else None
|
|
|
|
def get_validation_date(self, obj):
|
|
# Assuming you want the latest validation date
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return latest_validation.validation_date if latest_validation else None
|
|
|
|
def get_validate_by_user(self, obj):
|
|
# Assuming you want the latest validator
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return latest_validation.validate_by_user.registration_number
|
|
|
|
def get_matricule(self, obj):
|
|
matricule, _, _, _, _, _, _ = extract_information_co(obj.content)
|
|
return matricule
|
|
|
|
def get_fonction(self, obj):
|
|
_, fonction, _, _, _, _, _ = extract_information_co(obj.content)
|
|
return fonction
|
|
|
|
def get_structure(self, obj):
|
|
_, _, structure, _, _, _, _ = extract_information_co(obj.content)
|
|
return structure
|
|
|
|
def get_exercice(self, obj):
|
|
_, _, _, exercice, _, _, _ = extract_information_co(obj.content)
|
|
return exercice
|
|
|
|
def get_date_depart(self, obj):
|
|
_, _, _, _, date_depart, _, _ = extract_information_co(obj.content)
|
|
return date_depart
|
|
|
|
def get_interim(self, obj):
|
|
_, _, _, _, _, interim, _ = extract_information_co(obj.content)
|
|
return interim
|
|
|
|
def get_adresse_conge(self, obj):
|
|
_, _, _, _, _, _, adresse_conge = extract_information_co(obj.content)
|
|
return adresse_conge
|
|
|
|
class GlpiTicketCRSerializer(serializers.ModelSerializer):
|
|
# Include fields you want to extract outside of validations
|
|
comment_validation = serializers.SerializerMethodField()
|
|
validation_status = serializers.SerializerMethodField()
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
validation_date = serializers.SerializerMethodField()
|
|
|
|
matricule = serializers.SerializerMethodField()
|
|
de = serializers.SerializerMethodField()
|
|
a = serializers.SerializerMethodField()
|
|
commentaire = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = GlpiTickets
|
|
fields = ['id', 'name', 'date_creation', 'matricule', 'de', 'a', 'commentaire', 'validation_status', 'validation_date', 'validate_by_user', 'comment_validation',]
|
|
|
|
def get_comment_validation(self, obj):
|
|
# Assuming you want the latest comment from the validations
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'comment_validation', None) if latest_validation else None
|
|
|
|
def get_validation_date(self, obj):
|
|
# Assuming you want the latest validation date
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'validation_date', None) if latest_validation else None
|
|
|
|
def get_validate_by_user(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation.validate_by_user, 'registration_number', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_validation_status(self, obj):
|
|
# Assuming you want the latest validator's registration number
|
|
latest_validation = obj.validations.order_by('-validation_date').first()
|
|
return getattr(latest_validation, 'status', None) if latest_validation and latest_validation.validate_by_user else None
|
|
|
|
def get_matricule(self, obj):
|
|
matricule, _, _, _, _, _ = extract_information_cr(obj.content)
|
|
return matricule
|
|
|
|
def get_fonction(self, obj):
|
|
_, fonction, _, _, _, _ = extract_information_cr(obj.content)
|
|
return fonction
|
|
|
|
def get_structure(self, obj):
|
|
_, _, structure, _, _, _ = extract_information_cr(obj.content)
|
|
return structure
|
|
|
|
def get_de(self, obj):
|
|
_, _, _, de, _, _ = extract_information_cr(obj.content)
|
|
return de
|
|
|
|
def get_a(self, obj):
|
|
_, _, _, _, a, _ = extract_information_cr(obj.content)
|
|
return a
|
|
|
|
def get_commentaire(self, obj):
|
|
_, _, _, _, _, commentaire = extract_information_cr(obj.content)
|
|
return commentaire
|
|
|
|
'''
|
|
class GlpiUserSerializer(serializers.ModelSerializer):
|
|
validate_by_user = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = GlpiUsers
|
|
fields = ['realname', 'firstname', 'registration_number', 'validate_by_user']
|
|
|
|
def get_validate_by_user(self, obj):
|
|
return f"{obj.realname} {obj.firstname}"
|
|
|
|
class GlpiTicketValidationSerializer(serializers.ModelSerializer):
|
|
validate_by_user = GlpiUserSerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = GlpiTicketvalidations
|
|
fields = ['validate_by_user', 'validation_date', 'comment_validation']
|
|
|
|
''' |