# Application Contact

Formulaires contact, newsletter et conformite RGPD.

## Modeles

| Modele | Description |
|--------|-------------|
| `ContactMessage` | Messages du formulaire de contact |
| `NewsletterSubscriber` | Abonnes newsletter |

## Conformite RGPD

Les modeles `ContactMessage` et `NewsletterSubscriber` incluent des champs RGPD:

| Champ | Description |
|-------|-------------|
| `privacy_consent` | Consentement accepte (boolean) |
| `consent_date` | Date du consentement |

Le formulaire de contact inclut une case a cocher obligatoire pour le consentement.

## Formulaire de Contact

### Captcha de Calcul

Le formulaire de contact (`cms/templates/cms/master/sections/contact_form.html`) inclut un captcha de calcul pour eviter le spam:

- **Type**: Addition ou soustraction aleatoire
- **Nombres**: Entre 1 et 20
- **Soustraction**: Le plus grand nombre est toujours en premier (ex: 15 - 7, jamais 7 - 15)
- **Bouton d'envoi**: Cache par defaut, apparait uniquement si la reponse est correcte
- **Feedback visuel**: Message vert (correct) ou rouge (incorrect)
- **Rafraichissement**: Bouton pour generer un nouveau calcul

### Fonctionnement

1. Un calcul aleatoire est genere au chargement de la page
2. L'utilisateur doit entrer la bonne reponse
3. Le bouton "Envoyer le message" apparait si la reponse est correcte
4. L'utilisateur peut rafraichir le calcul avec le bouton de rechargement

### Personnalisation

Le captcha est entierement cote client (JavaScript). Pour modifier:

```javascript
// Dans contact_form.html
const num1 = Math.floor(Math.random() * 20) + 1; // Modifier la plage (1-20)
const num2 = Math.floor(Math.random() * 20) + 1;
const isAddition = Math.random() > 0.5; // 50% addition, 50% soustraction
```

### Cles de traduction utilisees

| Cle | Valeur par defaut |
|-----|-------------------|
| `verification_securite` | Verification de securite |
| `nouveau_calcul` | Nouveau calcul |
| `reponse_incorrecte` | Reponse incorrecte |
| `reponse_correcte` | Reponse correcte |
| `resolvez_calcul` | Resolvez le calcul ci-dessus pour envoyer votre message |
| `envoyer_message` | Envoyer le message |

## Sections CMS

| Fichier | Description |
|---------|-------------|
| `contact_form.html` | Formulaire de contact avec captcha |
| `cta_newsletter.html` | CTA newsletter |

## Fixtures

```bash
python manage.py dumpdata contact --natural-foreign --natural-primary --indent 2 -o fixtures/11_contact.json
python manage.py loaddata fixtures/11_contact.json
```
