Checkpoint: Correction des erreurs tRPC qui retournaient du HTML au lieu de JSON :
- Changement du champ 'nom' en 'titre' pour les questionnaires (backend et frontend) - Suppression de la propriété 'complete' inexistante dans reponsesQuestionnaires - Correction du type 'provider' dans la configuration email - Gestion des valeurs null pour le champ 'fonction' des apprenants - Résolution de l'erreur logsRappels.email après redémarrage du serveur
This commit is contained in:
@@ -140,7 +140,7 @@ export default function AdminQuestionnaireAnalyse() {
|
||||
<div className="container mx-auto py-8">
|
||||
<div className="mb-6 flex justify-between items-start">
|
||||
<div>
|
||||
<h1 className="text-3xl font-bold">{questionnaire.nom}</h1>
|
||||
<h1 className="text-3xl font-bold">{questionnaire.titre}</h1>
|
||||
<p className="text-muted-foreground mt-1">Analyse des réponses</p>
|
||||
</div>
|
||||
<div className="flex gap-2">
|
||||
|
||||
@@ -35,7 +35,7 @@ export default function AdminQuestionnaireEdit() {
|
||||
const [, navigate] = useLocation();
|
||||
const questionnaireId = params?.id === "nouveau" ? null : parseInt(params?.id || "0");
|
||||
|
||||
const [nom, setNom] = useState("");
|
||||
const [titre, setTitre] = useState("");
|
||||
const [type, setType] = useState<"satisfaction" | "evaluation_pre" | "evaluation_post">("satisfaction");
|
||||
const [description, setDescription] = useState("");
|
||||
const [actif, setActif] = useState(true);
|
||||
@@ -101,7 +101,7 @@ export default function AdminQuestionnaireEdit() {
|
||||
|
||||
useEffect(() => {
|
||||
if (questionnaire) {
|
||||
setNom(questionnaire.nom);
|
||||
setTitre(questionnaire.titre);
|
||||
setType(questionnaire.type);
|
||||
setDescription(questionnaire.description || "");
|
||||
setActif(questionnaire.actif);
|
||||
@@ -130,8 +130,8 @@ export default function AdminQuestionnaireEdit() {
|
||||
const handleSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (!nom.trim()) {
|
||||
toast.error("Le nom du questionnaire est obligatoire");
|
||||
if (!titre.trim()) {
|
||||
toast.error("Le titre du questionnaire est obligatoire");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ export default function AdminQuestionnaireEdit() {
|
||||
}
|
||||
|
||||
const data = {
|
||||
nom,
|
||||
titre,
|
||||
type,
|
||||
description: description || undefined,
|
||||
actif,
|
||||
@@ -208,11 +208,11 @@ export default function AdminQuestionnaireEdit() {
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-4">
|
||||
<div>
|
||||
<Label htmlFor="nom">Nom du questionnaire *</Label>
|
||||
<Label htmlFor="titre">Titre du questionnaire *</Label>
|
||||
<Input
|
||||
id="nom"
|
||||
value={nom}
|
||||
onChange={(e) => setNom(e.target.value)}
|
||||
id="titre"
|
||||
value={titre}
|
||||
onChange={(e) => setTitre(e.target.value)}
|
||||
placeholder="Ex: Questionnaire de satisfaction Manager Itinova"
|
||||
required
|
||||
/>
|
||||
|
||||
@@ -90,7 +90,7 @@ export default function AdminQuestionnaires() {
|
||||
<div className="flex justify-between items-start">
|
||||
<div className="flex-1">
|
||||
<div className="flex items-center gap-2 mb-2">
|
||||
<CardTitle>{questionnaire.nom}</CardTitle>
|
||||
<CardTitle>{questionnaire.titre}</CardTitle>
|
||||
{getTypeBadge(questionnaire.type)}
|
||||
{!questionnaire.actif && (
|
||||
<Badge variant="outline" className="bg-gray-100">
|
||||
|
||||
Reference in New Issue
Block a user