# Documentation du projet
## Plugin - CASS
Ce plugin a été développé dans le cadre d'un projet de formation HES-SO Valais/Wallis en Informatique de Gestion - Filière Digital Team Academy pour le Club Alpin Suisse de Sion. 

## Fonctionnalités
Ce plugin rajoute un module de gestion de course dans WordPress dont les fonctionnalités principales sont : 
- La gestion des courses et de ses participants
- La gestion des niveaux, des saisons, du matériel de course, des groupes
- Le processus et suivi d'inscription
- Gestion des mails automatisées
- ...

## Procédure d'installation du plugin
### Pré-requis
Le plugin a été développé et testé sur **WordPress 6.4.1** sur **PHP 7.4.33**. Le plugin également fonctionnel sur **PHP 8.X**.  

### Dépendances
Les plugins suivants doivent être installés préallablement : 

- **Advanced Custom Fields** de **WP Engine**
- **User Role Editor** de **Vladimir Garagulya**

*Il n'y pas de spécificité de versions requises*

## Roles
Les différents rôles suivants sont créés à l'installation du plugin. L'utilisation du plugin **User Role Editor** permet la configuration des permissions des utilisateurs pour ces différents rôles. 

**CASS - Membres** 
Aucunes permissions spécifiques, ce rôle est utiliser pour catégorisier les membres dans WordPress. 
- Ils peuvent afficher et modifier leur profil.
- Aucun accès au plugin CASS.
 
**CASS - Chef de course** 
Permissions du chef de course du plugin CASS.
- Ils peuvent afficher et modifier leur profil.
- Ils peuvent afficher et modifier les profils des autres utilisateurs.
- Ils ont accès au plugin CASS avec les permissions du même compte. 

**CASS - Admin**
Permissions d'administration du plugin CASS.
- Ils peuvent afficher et modifier leur profil.
- Ils peuvent afficher et modifier les profils des autres utilisateurs.
- Ils ont accès au plugin CASS avec les permissions du même compte.
    - Ils peuvent importer des courses
    - Ils peuvent voir les statistiques du plugin. 

*Le plugin est conçu pour monter progressivement les permissions, soit : 
- Un chef de course est également un membre
- Un admin est un également un chef de course et un membre. 

*Un CASS - admin n'est pas forcément un administrateur WordPress alors qu'un administrateur WordPress est forcément un CASS - Admin.*

## Shortcodes
Le plugin autorise l'utilisation frontend des shortcodes suivants : 

### cass_calendar_global
Ce shortcode permet l'ajout du calendrier global permettant la vision et l'inscription aux courses.

**[cass_calendar_global initialview="dayGridMonth" viewchangevisible="true" idgroup=2 viewgroupvisible="false"]**

Il propose les paramètres suivants : 

#### Paramère : initialview
Définit le type d'affiche du calendrier
>*"dayGridMonth","dayGridWeek", "timeGridDay", "listWeek",... * 

>*Se référer au site de fullcalendar.js pour concevoir toutes les options.*

#### Paramètre : viewchangevisible
Définit la possibilité d'afficher le changement de vue du calendrier.
>*"true" = affiché, "false" =  masqué*

#### Paramètre : idgroup
Définit le groupe de filtrage initial.
>*cass_group.IDGroup : [1,2,3,n]*
>*Si le paramètre vaut 0 ou n'est pas spécifié, tous les groupes sont affichés par défaut.*

#### Paramètre : viewgroupvisible
Définit si le filtrage par groupe est visible.
>*"true" = affiché, "false" =  masqué*

### cass_member_register
Ce shortcode permet l'inscription des membres.

### cass_member_courses_list_subscribed
Ce shortcode permet la vision des courses du membres inscrit. 

### cass_member_course_info
Ce shortcode permet la vision détaillée des informations de la course avec option d'inscription. Ce shortcode doit être placé sur une page avec le lien /infocourse. 

#### Captcha
Ce shortcode utilise un compte lié google pour l'utilisation du captcha Google, Recaptcha. 

Clé secrèrte : 6LdHGBApAAAAACFW4530C1yhqA-ZZnb5uHkuNiJw
Clé du site : 6LdHGBApAAAAAEkA_y9kSP1u28r2nriDVAXs8Nzo
 
 *Actuellement, le compte guillaumedavid620@gmail.com est utilisé.*


