backend:
  name: gitlab
  repo: noureddinetalbi/gardiensdesiles
  branch: main
  auth_type: pkce
  app_id: 321fd5f24b7764f47fea392f8a15ff75a3305eddf941b790a1487e57e273fb5f
local_backend:
  url: http://127.0.0.1:8081/api/v1
locale: fr
site_url: https://gardiensdesiles.org
display_url: https://gardiensdesiles.org
logo_url: /images/logo.webp
media_folder: images/uploads
public_folder: /images/uploads
slug:
  encoding: ascii
  clean_accents: true
  sanitize_replacement: '-'
collections:
  - name: accueil
    label: Accueil
    description: Textes et photographies de la page d’accueil.
    files:
      - name: accueil
        label: Page d’accueil
        file: content/accueil.json
        format: json
        fields:
          - {label: Surtitre, name: eyebrow, widget: string}
          - {label: Titre principal, name: title, widget: text, hint: 'Les retours à la ligne sont conservés.'}
          - {label: Fin du titre en italique, name: titleAccent, widget: string, required: false}
          - {label: Introduction, name: introduction, widget: text}
          - {label: Photo principale, name: image, widget: image}
          - {label: Description de la photo pour l’accessibilité, name: imageAlt, widget: string}
          - label: Chiffres du territoire
            name: statistics
            widget: list
            min: 3
            max: 3
            summary: '{{fields.value}} {{fields.unit}} — {{fields.label}}'
            hint: 'Ces chiffres décrivent le périmètre du projet, pas un bilan d’impact. Vérifier la source avant modification.'
            fields:
              - {label: Valeur, name: value, widget: string}
              - {label: Unité, name: unit, widget: string, required: false}
              - {label: Libellé, name: label, widget: text}
          - {label: Lien après les chiffres, name: statisticsNote, widget: text, hint: 'La deuxième ligne est mise en gras.'}
          - {label: Titre de présentation, name: missionTitle, widget: text}
          - {label: Fin du titre de présentation en italique, name: missionAccent, widget: string, required: false}
          - {label: Phrase d’accroche, name: missionLead, widget: text}
          - {label: Texte de présentation, name: missionText, widget: text}
          - label: Actions
            name: actions
            widget: list
            min: 1
            max: 3
            summary: '{{fields.label}} — {{fields.title}}'
            fields:
              - {label: Étiquette sur la photo, name: label, widget: string}
              - {label: Titre, name: title, widget: string}
              - {label: Description, name: text, widget: text}
              - {label: Texte du lien, name: linkText, widget: string}
              - label: Lien vers la mission
                name: anchor
                widget: select
                options: [{label: Restauration, value: restaurer}, {label: Suivis, value: comprendre}, {label: Formation, value: transmettre}]
              - {label: Photo, name: image, widget: image}
              - {label: Description accessible de la photo, name: imageAlt, widget: string}
          - {label: Titre CONNECT’Îles, name: projectTitle, widget: text}
          - {label: Fin du titre CONNECT’Îles en italique, name: projectAccent, widget: string, required: false}
          - {label: Texte CONNECT’Îles, name: projectText, widget: text}
          - {label: Points clés CONNECT’Îles, name: projectPoints, widget: list, field: {label: Point, name: point, widget: string}}
          - {label: Photo CONNECT’Îles, name: projectImage, widget: image}
          - {label: Description accessible de la photo CONNECT’Îles, name: projectImageAlt, widget: string}
          - {label: Citation, name: quote, widget: text}
          - {label: Auteur de la citation, name: quoteAuthor, widget: string}
          - {label: Fonction de l’auteur, name: quoteRole, widget: string}
          - {label: Source de la citation, name: quoteSource, widget: string}
          - {label: Lien vers la source, name: quoteSourceUrl, widget: string, required: false, pattern: ['^https://', 'Utiliser une adresse HTTPS.']}
  - name: partenaires
    label: Partenaires et logos
    description: Ajouter un partenaire, son rôle, sa catégorie, son logo et un lien officiel.
    files:
      - name: partenaires
        label: Page partenaires
        file: content/partenaires.json
        format: json
        fields:
          - {label: Titre de la page, name: title, widget: string}
          - {label: Introduction, name: introduction, widget: text}
          - {label: Note sur les collaborations, name: note, widget: text}
          - label: Catégories
            name: categories
            widget: list
            summary: '{{fields.title}}'
            fields:
              - {label: Identifiant, name: id, widget: string, pattern: ['^[a-z0-9-]+$', 'Minuscules sans accents ni espaces.'], hint: 'Ne pas changer si des partenaires utilisent déjà cette catégorie.'}
              - {label: Nom, name: title, widget: string}
              - {label: Présentation, name: description, widget: text}
          - label: Partenaires
            name: partners
            widget: list
            summary: '{{fields.name}}'
            fields:
              - {label: Nom, name: name, widget: string}
              - label: Catégorie
                name: category
                widget: relation
                collection: partenaires
                file: partenaires
                search_fields: [categories.*.title]
                value_field: categories.*.id
                display_fields: [categories.*.title]
              - {label: Logo officiel, name: logo, widget: image, required: false, hint: 'Sans logo, le nom est affiché. Ne pas recréer un logo.'}
              - {label: Site officiel ou fiche de référence, name: url, widget: string, pattern: ['^https://', 'Utiliser une adresse HTTPS.']}
              - {label: Autre site web indiqué, name: website, widget: string, required: false, pattern: ['^https://', 'Utiliser une adresse HTTPS.']}
              - {label: Rôle ou contribution, name: description, widget: text}
              - {label: Source documentant la collaboration, name: source, widget: string, required: false, pattern: ['^https://', 'Utiliser une adresse HTTPS.']}
              - {label: Visible sur le site, name: visible, widget: boolean, default: true}
  - name: actualites
    label: Journal et revue de presse
    label_singular: Article
    folder: content/actualites
    create: true
    extension: json
    format: json
    slug: '{{slug}}'
    identifier_field: title
    summary: '{{title}} — {{category}}'
    preview_path: 'actualites/{{slug}}'
    sortable_fields: [date, title, category]
    fields:
      - {label: Titre, name: title, widget: string}
      - {label: Date, name: date, widget: datetime, date_format: YYYY-MM-DD, time_format: false, format: YYYY-MM-DD, required: false, hint: 'Pour un article de presse, renseigner la date de publication de la source.'}
      - {label: Rubrique, name: category, widget: select, options: [Presse, Terrain, Projet, Vie associative]}
      - {label: Publier cet article, name: published, widget: boolean, default: false, hint: 'Désactiver pour garder un brouillon hors du site.'}
      - {label: À la une de la revue de presse, name: featured, widget: boolean, default: false, hint: 'Seuls les articles de la rubrique Presse utilisent ce réglage.'}
      - {label: Photo, name: image, widget: image}
      - {label: Description accessible de la photo, name: imageAlt, widget: string}
      - {label: Légende et crédit de la photo, name: imageCaption, widget: string}
      - {label: Résumé, name: excerpt, widget: text}
      - {label: Nom du média ou de la source, name: sourceName, widget: string, required: false}
      - {label: Lien vers la publication originale, name: sourceUrl, widget: string, required: false, pattern: ['^https://', 'Utiliser une adresse HTTPS.']}
      - {label: Texte de l’article, name: body, widget: markdown, buttons: [bold, italic, link, heading-two, heading-three, quote, bulleted-list, numbered-list], editor_components: [], hint: 'Écrire une synthèse originale et citer le média ; ne pas copier le reportage.'}
  - name: engagements
    label: Bénévolat et soutien
    files:
      - name: engagements
        label: Appels à participation
        file: content/engagements.json
        format: json
        fields:
          - {label: Titre bénévolat, name: volunteerTitle, widget: string}
          - {label: Fin du titre bénévolat en italique, name: volunteerAccent, widget: string, required: false}
          - {label: Présentation du bénévolat, name: volunteerText, widget: text}
          - {label: Note sous le bouton, name: volunteerNote, widget: string}
          - {label: Photo des bénévoles, name: volunteerImage, widget: image}
          - {label: Description accessible de la photo, name: volunteerImageAlt, widget: string}
          - {label: Titre soutien, name: supportTitle, widget: string}
          - {label: Fin du titre soutien en italique, name: supportAccent, widget: string, required: false}
          - {label: Carte « Don » de l’accueil, name: donationText, widget: text}
          - {label: Carte « Mécénat » de l’accueil, name: sponsorshipText, widget: text}
          - {label: Présentation du soutien (page Soutenir), name: supportText, widget: text}
          - label: Besoins des projets
            name: needs
            widget: list
            summary: '{{fields.title}}'
            fields:
              - {label: Titre, name: title, widget: string}
              - {label: Description, name: text, widget: text}
  - name: informations
    label: Coordonnées et liens
    files:
      - name: site
        label: Informations de l’association
        file: content/site.json
        format: json
        fields:
          - {label: Nom, name: name, widget: string}
          - {label: Signature sous le logo, name: tagline, widget: string}
          - {label: Description courte, name: description, widget: string}
          - {label: Localisation, name: location, widget: string}
          - {label: Facebook officiel, name: facebook, widget: string, pattern: ['^https://', 'Utiliser une adresse HTTPS.']}
          - {label: Email de contact, name: email, widget: string, required: false}
          - {label: Téléphone, name: phone, widget: string, required: false}
          - {label: Texte de contact, name: contactText, widget: text}
          - {label: Lien de paiement officiel des dons, name: donationUrl, widget: string, required: false, pattern: ['^https://', 'Utiliser une adresse HTTPS.'], hint: 'Laisser vide tant qu’aucun dispositif de collecte n’est validé.'}
          - {label: Informations sur les modalités de don, name: donationNote, widget: text}
          - {label: Présentation du pied de page, name: footerText, widget: text}
