# Guide Utilisateur - Green Tech Mobility

## Table des matières

1. [Accès à l'administration](#accès-à-ladministration)
2. [Gestion des Pages CMS](#gestion-des-pages-cms)
3. [Gestion des Menus](#gestion-des-menus)
4. [Gestion des Paramètres](#gestion-des-paramètres)
5. [Gestion des Universités](#gestion-des-universités)
6. [Gestion du Programme](#gestion-du-programme)
7. [Gestion de l'Équipe](#gestion-de-léquipe)
8. [Gestion de la Recherche](#gestion-de-la-recherche)
9. [Gestion des Actualités et Événements](#gestion-des-actualités-et-événements)
10. [Gestion des Contacts](#gestion-des-contacts)
11. [Configuration du Site](#configuration-du-site)

---

## Accès à l'administration

### Connexion

1. Accédez à l'URL : `https://votre-site.com/admin/`
2. Entrez vos identifiants (nom d'utilisateur et mot de passe)
3. Cliquez sur "Se connecter"

### Navigation

L'interface d'administration est organisée par sections :
- **CMS** : Pages, Sections, Menus, Paramètres
- **Core** : Configuration du site, Carousel, Partenaires, Statistiques
- **Universities** : Universités partenaires
- **Program** : Programme, Cours, Admissions
- **Team** : Professeurs, Doctorants, Étudiants
- **Research** : Domaines de recherche, Projets, Publications
- **News** : Actualités, Événements
- **Contact** : Messages, Newsletter

---

## Gestion des Pages CMS

### Créer une nouvelle page

1. Allez dans **CMS > Pages**
2. Cliquez sur **"Ajouter Page"**
3. Remplissez les champs :
   - **Nom** : Nom interne de la page
   - **Titre** : Titre affiché sur la page
   - **Description** : Description pour le SEO
   - **Template** : Choisissez le template à utiliser
   - **Est la page d'accueil** : Cochez si c'est la homepage
   - **Active** : Cochez pour publier la page

4. Cliquez sur **"Enregistrer"**

### Ajouter des sections à une page

1. Ouvrez la page à modifier
2. Dans la section **"Sections de la page"**, cliquez sur **"Ajouter une section"**
3. Sélectionnez la section à ajouter
4. Définissez l'ordre d'affichage
5. Cliquez sur **"Enregistrer"**

### Personnaliser les champs d'une section

Certaines sections ont des champs personnalisables par page :

1. Ouvrez la page
2. Dans les sections, cliquez sur **"Champs (X/Y)"**
3. Modifiez les valeurs selon vos besoins :
   - Textes de boutons
   - Images de fond
   - Nombre de colonnes
   - Options d'affichage
4. Cliquez sur **"Enregistrer"**

### Modifier une page existante

1. Allez dans **CMS > Pages**
2. Cliquez sur le nom de la page
3. Modifiez les champs souhaités
4. Cliquez sur **"Enregistrer"**

### Supprimer une page

1. Allez dans **CMS > Pages**
2. Cochez la case devant la page à supprimer
3. Dans le menu déroulant **"Action"**, sélectionnez **"Supprimer les pages sélectionnées"**
4. Cliquez sur **"Exécuter"**
5. Confirmez la suppression

> **Attention** : La suppression d'une page est irréversible. Préférez désactiver une page plutôt que la supprimer.

---

## Gestion des Sections

### Créer une section

1. Allez dans **CMS > Sections**
2. Cliquez sur **"Ajouter Section"**
3. Remplissez :
   - **Nom** : Nom de la section
   - **Fichier** : Nom du fichier HTML (sans extension)
   - **Template** : Template associé
   - **Titre/Description** : Contenu par défaut
4. Cliquez sur **"Enregistrer"**

### Définir des champs personnalisés

1. Ouvrez la section
2. Dans **"Champs personnalisés"**, cliquez sur **"Ajouter un champ"**
3. Configurez le champ :
   - **Nom** : Identifiant technique (ex: `button_text`)
   - **Label** : Libellé affiché (ex: "Texte du bouton")
   - **Type** : text, textarea, boolean, integer, decimal, url, email, image, select
   - **Obligatoire** : Cochez si le champ est requis
   - **Valeur par défaut** : Valeur initiale
   - **Choix** : Pour le type `select`, un choix par ligne au format `valeur|libellé`
4. Cliquez sur **"Enregistrer"**

---

## Gestion des Menus

### Créer un menu

1. Allez dans **CMS > Menus**
2. Cliquez sur **"Ajouter Menu"**
3. Remplissez :
   - **Nom** : Nom du menu (ex: "Navigation principale")
   - **Emplacement** : header, footer, sidebar, ou topbar
   - **Actif** : Cochez pour activer
4. Cliquez sur **"Enregistrer"**

### Ajouter des éléments de menu

1. Ouvrez le menu
2. Dans **"Éléments de menu"**, cliquez sur **"Ajouter un élément"**
3. Configurez l'élément :
   - **Titre** : Texte affiché
   - **Type d'URL** :
     - **Interne** : URL Django nommée (ex: `home`, `contact`)
     - **Externe** : URL complète (ex: `https://example.com`)
     - **Page CMS** : Sélectionnez une page CMS
   - **Parent** : Pour créer un sous-menu, sélectionnez l'élément parent
   - **Icône** : Icône à afficher
   - **Ouvrir dans un nouvel onglet** : Cochez si nécessaire
   - **Ordre** : Position dans le menu
4. Cliquez sur **"Enregistrer"**

### Réorganiser les éléments

1. Allez dans **CMS > Menus**
2. Ouvrez le menu
3. Cliquez sur **"Réorganiser les éléments"**
4. Glissez-déposez les éléments dans l'ordre souhaité
5. Les sous-menus peuvent être réorganisés au sein de leur parent
6. Cliquez sur **"Enregistrer l'ordre"**

### Supprimer un élément de menu

1. Ouvrez le menu
2. Cliquez sur la croix rouge à côté de l'élément
3. Cliquez sur **"Enregistrer"**

---

## Gestion des Paramètres

### Types de paramètres

Avant de créer un paramètre, vérifiez que le type existe :

1. Allez dans **CMS > Types de paramètres**
2. Les types disponibles incluent :
   - **text** : Texte simple
   - **textarea** : Texte long
   - **number** : Nombre entier
   - **phone** : Numéro de téléphone
   - **email** : Adresse email
   - **url** : Lien URL
   - **currency** : Montant en devise
   - **color** : Code couleur hexadécimal
   - **boolean** : Oui/Non
   - **image** : Image uploadée

### Créer un paramètre

1. Allez dans **CMS > Paramètres**
2. Cliquez sur **"Ajouter Paramètre"**
3. Remplissez :
   - **Type** : Sélectionnez le type de paramètre
   - **Catégorie** : general, contact, social, seo, appearance, other
   - **Nom** : Nom descriptif
   - **Slug** : Identifiant unique (auto-généré)
   - **Valeur** : La valeur du paramètre
   - **Image** : Pour les paramètres de type image
   - **Description** : Note interne
4. Cliquez sur **"Enregistrer"**

### Paramètres courants

| Slug | Description | Exemple |
|------|-------------|---------|
| `site_name` | Nom du site | "Green Tech Mobility" |
| `site_email` | Email de contact | "contact@gtm.eu" |
| `site_phone` | Téléphone | "+33 1 23 45 67 89" |
| `site_address` | Adresse | "123 Rue Example, Paris" |
| `logo` | Logo du site | Image uploadée |
| `favicon` | Favicon | Image uploadée |
| `footer_text` | Texte du pied de page | "© 2025 Green Tech Mobility" |

### Modifier un paramètre

1. Allez dans **CMS > Paramètres**
2. Cliquez sur le paramètre à modifier
3. Modifiez la valeur
4. Cliquez sur **"Enregistrer"**

---

## Gestion des Universités

### Ajouter une université partenaire

1. Allez dans **Universités > Universités**
2. Cliquez sur **"Ajouter Université"**
3. Remplissez les informations :

**Informations générales :**
- **Nom** : Nom complet de l'université
- **Abréviation** : Sigle (ex: "UPMC", "TUM")
- **Pays/Ville** : Localisation
- **Description** : Présentation de l'université
- **Site web/Email/Téléphone** : Coordonnées

**Géolocalisation (pour la carte) :**
- **Latitude/Longitude** : Coordonnées GPS
- **Adresse** : Adresse complète

**Informations académiques :**
- **Année de fondation** : Année
- **Classement** : Position dans les classements
- **Est coordinateur** : Cochez si c'est l'université coordinatrice

**Apparence :**
- **Logo** : Logo de l'université
- **Couleur** : Couleur associée (hex)
- **Ordre** : Position d'affichage

4. Cliquez sur **"Enregistrer"**

### Ajouter des départements

1. Ouvrez l'université
2. Dans **"Départements"**, cliquez sur **"Ajouter"**
3. Remplissez : Nom, Description, Spécialisation, Site web
4. Cliquez sur **"Enregistrer"**

### Ajouter des statistiques

1. Ouvrez l'université
2. Dans **"Statistiques"**, cliquez sur **"Ajouter"**
3. Sélectionnez le type (professeurs, étudiants, etc.)
4. Entrez la valeur et l'année
5. Cliquez sur **"Enregistrer"**

### Gérer les partenaires industriels

1. Allez dans **Universités > Partenaires industriels**
2. Cliquez sur **"Ajouter Partenaire industriel"**
3. Remplissez : Nom, Logo, Site web, Description
4. Sélectionnez les universités associées
5. Cliquez sur **"Enregistrer"**

---

## Gestion du Programme

### Modifier les informations du programme

1. Allez dans **Programme > Programmes**
2. Ouvrez le programme principal
3. Modifiez les champs :
   - Nom, Description, Tagline
   - Durée, Crédits ECTS
   - Langue d'enseignement
   - Diplôme délivré
   - Objectifs, Perspectives de carrière
4. Cliquez sur **"Enregistrer"**

### Gérer les semestres

1. Allez dans **Programme > Semestres**
2. Pour ajouter un semestre :
   - Cliquez sur **"Ajouter Semestre"**
   - Sélectionnez le programme
   - Indiquez le numéro (1, 2, 3, 4)
   - Remplissez le titre et la description
   - Sélectionnez l'université d'accueil
3. Cliquez sur **"Enregistrer"**

### Gérer les cours

1. Allez dans **Programme > Cours**
2. Pour ajouter un cours :
   - Cliquez sur **"Ajouter Cours"**
   - Sélectionnez le semestre
   - Remplissez : Code, Titre, Description
   - Indiquez les crédits ECTS
   - Cochez si obligatoire
   - Définissez l'ordre d'affichage
3. Cliquez sur **"Enregistrer"**

### Gérer les spécialisations

1. Allez dans **Programme > Spécialisations**
2. Cliquez sur **"Ajouter Spécialisation"**
3. Remplissez : Nom, Description, Icône, Couleur
4. Cliquez sur **"Enregistrer"**

### Gérer les appels à candidatures

1. Allez dans **Programme > Appels à candidatures**
2. Pour créer un nouvel appel :
   - Cliquez sur **"Ajouter Appel à candidature"**
   - Remplissez l'année académique (ex: "2025-2026")
   - Définissez les dates : ouverture, clôture, résultats
   - Indiquez le nombre de places et bourses
   - Ajoutez l'URL et l'email de candidature
   - Listez les documents requis
3. Cliquez sur **"Enregistrer"**

**Astuce** : Utilisez le bouton **"Dupliquer"** pour créer un appel basé sur l'année précédente.

### Gérer les bourses

1. Allez dans **Programme > Bourses**
2. Pour ajouter une bourse :
   - Cliquez sur **"Ajouter Bourse"**
   - Remplissez : Nom, Description, Montant
   - Sélectionnez le type de couverture
   - Indiquez le financeur et les conditions
3. Cliquez sur **"Enregistrer"**

### Gérer la FAQ

1. Allez dans **Programme > FAQ**
2. Pour ajouter une question :
   - Cliquez sur **"Ajouter Question FAQ"**
   - Remplissez la question et la réponse
   - Sélectionnez la catégorie
   - Définissez l'ordre d'affichage
3. Cliquez sur **"Enregistrer"**

---

## Gestion de l'Équipe

### Ajouter un membre de l'équipe

1. Allez dans **Team > Personnes**
2. Cliquez sur **"Ajouter Personne"**
3. Remplissez les informations de base :
   - Prénom, Nom
   - Email, Téléphone
   - Photo
   - Biographie
   - Type : Professeur, Doctorant, ou Master
   - Université d'affiliation
   - Pays d'origine
   - Intérêts de recherche
   - Liens : Site web, LinkedIn, GitHub, Google Scholar, ORCID
4. Cliquez sur **"Enregistrer"**

### Compléter le profil d'un professeur

1. Ouvrez la fiche de la personne
2. Dans **"Profil Professeur"**, cliquez sur **"Ajouter"**
3. Remplissez :
   - Titre (Prof., Dr., etc.)
   - Poste, Département, Spécialisation
   - Bureau, Téléphone bureau
   - Heures de permanence
   - Qualifications académiques
   - Années d'expérience
4. Cliquez sur **"Enregistrer"**

### Compléter le profil d'un doctorant

1. Ouvrez la fiche de la personne
2. Dans **"Profil Doctorant"**, cliquez sur **"Ajouter"**
3. Remplissez :
   - Titre et description de la thèse
   - Directeur et co-directeur de thèse
   - Date de début, date prévue de fin
   - Source de financement
4. Cliquez sur **"Enregistrer"**

### Compléter le profil d'un étudiant master

1. Ouvrez la fiche de la personne
2. Dans **"Profil Étudiant Master"**, cliquez sur **"Ajouter"**
3. Remplissez :
   - Année de cohorte
   - Spécialisation
   - Semestre actuel
   - Universités des semestres 1 et 2
   - Titre et description du mémoire
   - Tuteur
   - A une bourse (oui/non)
   - Est alumnus (oui/non)
4. Cliquez sur **"Enregistrer"**

---

## Gestion de la Recherche

### Créer un domaine de recherche

1. Allez dans **Research > Domaines de recherche**
2. Cliquez sur **"Ajouter Domaine"**
3. Remplissez :
   - Nom, Description
   - Icône, Couleur
   - Image (optionnel)
4. Cliquez sur **"Enregistrer"**

### Créer un projet de recherche

1. Allez dans **Research > Projets de recherche**
2. Cliquez sur **"Ajouter Projet"**
3. Remplissez :
   - Titre, Description
   - Domaine de recherche
   - Niveau (Master, Doctorat, Postdoc)
   - Statut (Actif, Terminé, Proposé)
   - Université responsable
   - Membres de l'équipe
   - Dates de début/fin
   - Financement : montant et source
   - URL externe
4. Cliquez sur **"Enregistrer"**

### Ajouter une publication

1. Allez dans **Research > Publications**
2. Cliquez sur **"Ajouter Publication"**
3. Remplissez :
   - Titre, Résumé
   - Type (Journal, Conférence, etc.)
   - Revue/Conférence
   - Date de publication
   - Auteurs (membres de l'équipe)
   - Auteurs externes (texte libre)
   - Projets associés
   - DOI
   - Liens vers PDF et page externe
   - Est peer-reviewed
4. Cliquez sur **"Enregistrer"**

---

## Gestion des Actualités et Événements

### Créer une catégorie d'actualités

1. Allez dans **News > Catégories**
2. Cliquez sur **"Ajouter Catégorie"**
3. Remplissez : Nom, Description, Icône, Couleur
4. Cliquez sur **"Enregistrer"**

### Publier une actualité

1. Allez dans **News > Articles**
2. Cliquez sur **"Ajouter Article"**
3. Remplissez :
   - **Titre** : Titre de l'article
   - **Contenu** : Utilisez l'éditeur riche pour le texte
   - **Catégorie** : Sélectionnez la catégorie
   - **Image** : Image de couverture
   - **Légende image** : Texte sous l'image
   - **Auteur** : Sélectionnez l'auteur
   - **Projets liés** : Associez des projets de recherche
   - **Personnes mentionnées** : Associez des membres de l'équipe
   - **Date de publication** : Date et heure de publication
   - **Est mise en avant** : Cochez pour afficher en vedette
   - **Est publiée** : Cochez pour publier
4. Cliquez sur **"Enregistrer"**

### Créer un type d'événement

1. Allez dans **News > Types d'événements**
2. Cliquez sur **"Ajouter Type"**
3. Remplissez : Nom, Description, Icône, Couleur
4. Cliquez sur **"Enregistrer"**

### Créer un événement

1. Allez dans **News > Événements**
2. Cliquez sur **"Ajouter Événement"**
3. Remplissez :
   - **Titre** : Nom de l'événement
   - **Type** : Sélectionnez le type
   - **Description** : Détails de l'événement
   - **Date de début** : Date et heure
   - **Date de fin** : Si différente du début
   - **Lieu** : Adresse ou salle
   - **En ligne** : Cochez si webinaire
   - **URL de connexion** : Lien Zoom/Teams
   - **Université organisatrice** : Sélectionnez l'université
   - **URL d'inscription** : Lien vers le formulaire
   - **Date limite d'inscription** : Si applicable
   - **Email de contact** : Pour les questions
   - **Image** : Affiche ou image de l'événement
   - **Est mise en avant** : Cochez pour afficher en vedette
4. Cliquez sur **"Enregistrer"**

---

## Gestion des Contacts

### Configurer les informations de contact

1. Allez dans **Contact > Informations de contact**
2. Cliquez sur **"Ajouter"**
3. Remplissez par département :
   - **Nom du département** : Ex: "Admissions", "Partenariats"
   - **Type** : general, admissions, scholarships, partnerships, research
   - **Email principal et secondaire**
   - **Téléphone, Fax**
   - **Adresse complète**
   - **Horaires d'ouverture**
4. Cliquez sur **"Enregistrer"**

### Gérer les messages de contact

1. Allez dans **Contact > Messages**
2. Vous voyez la liste des messages reçus
3. Cliquez sur un message pour le lire
4. Modifiez le statut :
   - **Nouveau** : Non traité
   - **Lu** : Consulté
   - **Répondu** : Réponse envoyée
   - **Fermé** : Traité et archivé
5. Attribuez le message à un membre de l'équipe
6. Ajoutez une réponse dans **"Texte de réponse"**
7. Cliquez sur **"Enregistrer"**

### Gérer les contacts universitaires

1. Allez dans **Contact > Contacts universitaires**
2. Cliquez sur **"Ajouter"**
3. Remplissez :
   - Université
   - Nom du contact
   - Titre/Fonction
   - Email, Téléphone
   - Département, Bureau
   - Contact principal (oui/non)
4. Cliquez sur **"Enregistrer"**

### Gérer la newsletter

1. Allez dans **Contact > Abonnés newsletter**
2. Vous voyez la liste des abonnés
3. Pour chaque abonné, vous pouvez :
   - Voir l'email et le nom
   - Vérifier le statut (actif, vérifié)
   - Désactiver un abonné

---

## Configuration du Site

### Modifier la configuration générale

1. Allez dans **Core > Configuration du site**
2. Modifiez :
   - Nom du site, Slogan
   - Téléphone, Email, Adresse
   - Liens réseaux sociaux
   - Meta description et keywords (SEO)
3. Cliquez sur **"Enregistrer"**

### Gérer le carousel (slider)

1. Allez dans **Core > Slides du carousel**
2. Pour ajouter une slide :
   - Cliquez sur **"Ajouter Slide"**
   - Remplissez : Titre, Sous-titre, Description
   - Uploadez l'image de fond
   - Ajoutez des boutons d'action
   - Définissez l'ordre et le statut
3. Cliquez sur **"Enregistrer"**

### Gérer les partenaires principaux

1. Allez dans **Core > Partenaires**
2. Pour le partenaire affiché dans le topbar :
   - Ouvrez le partenaire
   - Cochez **"Partenaire principal"**
   - Uploadez le logo
3. Cliquez sur **"Enregistrer"**

### Gérer les statistiques du programme

1. Allez dans **Core > Statistiques du programme**
2. Pour modifier une statistique :
   - Cliquez sur la statistique
   - Modifiez : Label, Valeur, Icône, Description
3. Cliquez sur **"Enregistrer"**

### Configurer la carte des universités

1. Allez dans **Core > Paramètres de la carte**
2. Modifiez :
   - Titre et sous-titre de la section
   - Style de carte (défaut, clair, sombre, satellite)
   - Zoom et centre par défaut
   - Couleur des marqueurs
   - Hauteur de la carte
   - Pages où afficher la carte
3. Cliquez sur **"Enregistrer"**

---

## Traductions

### Traduire un contenu

Pour les modèles avec le mixin `TranslatableMixin` :

1. Ouvrez l'élément à traduire
2. Cliquez sur l'onglet **"Traductions"** (si disponible)
3. Pour chaque langue (EN, DE, ES, IT) :
   - Remplissez les champs traduits
   - Les champs non remplis utiliseront la version française
4. Cliquez sur **"Enregistrer"**

### Langues disponibles

| Code | Langue |
|------|--------|
| FR | Français (par défaut) |
| EN | Anglais |
| DE | Allemand |
| ES | Espagnol |
| IT | Italien |

---

## Bonnes pratiques

### Organisation des contenus

- **Nommez clairement** : Utilisez des noms explicites pour les pages, sections et menus
- **Utilisez les slugs** : Les slugs sont générés automatiquement mais peuvent être personnalisés
- **Ordonnez logiquement** : Utilisez le champ "ordre" pour organiser les éléments

### Images

- **Formats recommandés** : JPG pour les photos, PNG pour les logos, SVG pour les icônes
- **Dimensions** :
  - Carousel : 1920x800 pixels
  - Articles : 1200x630 pixels
  - Logos : 200x200 pixels minimum
  - Photos de profil : 400x400 pixels
- **Taille** : Optimisez les images avant upload (max 2 Mo recommandé)

### Sauvegarde

- **Avant modifications majeures** : Exportez les données via les fixtures
- **Médias** : Sauvegardez régulièrement le dossier `media/`

### Désactivation vs Suppression

- **Préférez désactiver** : Décochez "Actif" plutôt que supprimer
- **Supprimez avec précaution** : La suppression est irréversible
- **Vérifiez les dépendances** : Certains éléments sont liés (ex: un professeur peut être auteur de publications)

---

## Dépannage

### Le menu ne s'affiche pas correctement

1. Vérifiez que le menu est **actif**
2. Vérifiez que les éléments de menu sont **actifs**
3. Vérifiez le **slug** du menu (doit correspondre au code)
4. Videz le cache : `python manage.py clear_cache`

### Les traductions ne s'affichent pas

1. Vérifiez que la langue est **active** dans **Traduction > Langues**
2. Vérifiez que les traductions sont bien enregistrées
3. Utilisez la commande : `python manage.py generate_translations`

### Les images ne s'affichent pas

1. Vérifiez que le fichier existe dans `media/`
2. Vérifiez les permissions du dossier
3. Exécutez : `python manage.py collectstatic`

### Une page renvoie une erreur 404

1. Vérifiez que la page est **active**
2. Vérifiez le **slug** de la page
3. Vérifiez que le template existe

---

## Raccourcis clavier dans l'éditeur

| Raccourci | Action |
|-----------|--------|
| Ctrl + B | Gras |
| Ctrl + I | Italique |
| Ctrl + U | Souligné |
| Ctrl + K | Insérer un lien |
| Ctrl + Z | Annuler |
| Ctrl + Y | Rétablir |
| Ctrl + S | Enregistrer (dans l'admin) |

---

## Support

Pour toute question ou problème technique, contactez l'équipe de développement.
