]> _ Git - ccv-wordpress.git/commitdiff
wait #7102 @3:00
authorsoufiane <soufiane@cubedesigners.com>
Tue, 15 Oct 2024 14:26:49 +0000 (16:26 +0200)
committersoufiane <soufiane@cubedesigners.com>
Tue, 15 Oct 2024 14:26:49 +0000 (16:26 +0200)
wp-content/mu-plugins/cube/src/Forms/Base.php
wp-content/mu-plugins/cube/src/Forms/Consultation.php
wp-content/themes/CCV/resources/assets/scripts/consultation.js
wp-content/themes/CCV/resources/views/forms/common/email.blade.php

index 164c02895ba4186fb357d971491d4ec7811e2558..c9ad77d915d0b3ff48795bbc21a9a408a777cafc 100644 (file)
@@ -247,11 +247,8 @@ class Base
         $headers[]    = sprintf('Content-Type: %s; charset=%s', $content_type, $charset);
         $headers[]    = sprintf('From: %s', $from);
         $first_data_names = [
-            'date-first-symptoms',
-            'imagery-condition',
-            'chirurgical-solutions'
+            'doctor',
         ];
-
         // Gather filled fields into label/value pairs
         foreach ($first_data_names as $first_data_name) {
             if($this->fields[$first_data_name]) {
@@ -261,7 +258,11 @@ class Base
         foreach ($this->fields as $field_name => $field) {
             if(!in_array($field_name,$first_data_names)) {
                 if ($value = $this->get_data($field_name)) {
-                    $data[$field->get_title()] = $value;
+                    $title = $field->get_title();
+                    if(in_array($field_name, ['strength-loss-date','tingling-numbness-date'])) {
+                        $title = $field_name;
+                    }
+                    $data[$title] = $value;
                 }
             }
         }
index 5c18ce69e45a680009e017512ff3e2c91906745a..472262b1e15b82f94e698abd199cf6a36eb74cb9 100644 (file)
@@ -36,24 +36,31 @@ class Consultation extends Base {
                $this->add_fields([
 
                        //=== PERSONAL INFORMATION
+            // Special field: if a surgeon is selected, their e-mail address will be override the default delivery address
+            Select::field('surgeon', __('Chirurgien spécifique', 'ccv'))
+                ->required(false)
+                ->options([
+                    'Dr Guilhaume GENESTE' => 'dr.geneste@ccv-montpellier.fr',
+                    'Dr Grégory EDGARD-ROSA' => 'dr.edgard-rosa@ccv-montpellier.fr',
+                    'Dr Martin GRAU ORTIZ' => 'dr.grauortiz@ccv-montpellier.fr',
+                    'Dr Caroline HIRSH' => 'dr.hirsch@ccv-montpellier.fr',
+                ]),
                        Text::field('last-name', __('Nom', 'ccv')),
                        Text::field('first-name', __('Prénom', 'ccv')),
-                       Text::field('profession', __('Profession', 'ccv')),
-                       Text::field('postcode', __('Code postal', 'ccv')),
-                       Text::field('city', __('Ville', 'ccv')),
-                       Text::field('country', __('Pays', 'ccv')),
-                       Text::field('phone', __('Tel', 'ccv')),
-                       Email::field('email', __('Email', 'ccv')),
-                       Radio::field('sex', __('Sexe :', 'ccv'))
-                               ->options([
-                                       _x('M', 'Sexe (M)', 'ccv'),
-                                       _x('F', 'Sexe (F)', 'ccv'),
-                               ]),
-                       Text::field('age', __('Âge :', 'ccv')),
+            Radio::field('sex', __('Sexe :', 'ccv'))
+                ->options([
+                    _x('M', 'Sexe (M)', 'ccv'),
+                    _x('F', 'Sexe (F)', 'ccv'),
+                ]),
             Date::field('birthdate', __('Date de naissance', 'ccv')),
-                       Textarea::field('message', __('Avez vous un message (ou une demande) spécifique à nous formuler ?', 'ccv'))->required(false),
             Text::field('size', __('Taille :', 'ccv')),
             Text::field('weight', __('Poids :', 'ccv')),
+                       Text::field('profession', __('Profession', 'ccv')),
+                       Text::field('postcode', __('Code postal', 'ccv')),
+                       Text::field('city', __('Ville', 'ccv')),
+            Text::field('country', __('Pays', 'ccv')),
+            Text::field('phone', __('Tel', 'ccv')),
+            Email::field('email', __('Email', 'ccv')),
 
             // Social cover
             Radio::field('social-cover', __('Couverture sociale :', 'ccv'))
@@ -63,6 +70,7 @@ class Consultation extends Base {
                     __('Régime de la CMU/ASC/PUMa/CSS', 'ccv'),
                     __('Accident du travail', 'ccv'),
                 ]),
+            Date::field('work-accident', __('Si accident du travail à quelle date ?', 'ccv'))->required(false),
 
             // Chirurgical solutions
             Radio::field('chirurgical-solutions', __('Êtes-vous à la recherche de solutions chirurgicales pour votre problème de dos ?', 'ccv'))
@@ -70,80 +78,59 @@ class Consultation extends Base {
                     __('Oui, s\'il existe des solutions satisfaisantes', 'ccv'),
                     __('Non, pas encore à ce stade', 'ccv'),
                 ]),
+            //== SYMPTOMS
+            Radio::field('main-problem', __('Problème principal', 'ccv'))
+                ->options([
+                    __('Cervicales', 'ccv'),
+                    __('Lombaires', 'ccv'),
+                    __('Scoliose', 'ccv'),
+                ]),
+            Date::field('date-first-symptoms', __('Date des premiers symptômes :', 'ccv')),
+            Date::field('date-pain-since', __('Douleurs permanentes depuis (le cas échéant) :', 'ccv'))->required(false),
+            Binary::field('pain-arms-legs', __('Avez-vous des douleurs dans les bras ou les jambes (sciatiques, cruralgies, névralgies) ?', 'ccv')),
+            Checkbox::field('pain-arms-legs-detail', __('Si oui, cochez les membres concernés :', 'ccv'))
+                ->required(false)
+                ->options([
+                    __('Haut du bras droit', 'ccv'),
+                    __('Haut du bras gauche', 'ccv'),
+                    __('Avant-bras droit', 'ccv'),
+                    __('Avant-bras gauche', 'ccv'),
+                    __('Haut de la jambe droite', 'ccv'),
+                    __('Haut de la jambe gauche', 'ccv'),
+                    __('Bas de la jambe droite', 'ccv'),
+                    __('Bas de la jambe gauche', 'ccv'),
+                ]),
 
-            // Special field: if a surgeon is selected, their e-mail address will be override the default delivery address
-                       Select::field('surgeon', __('Chirurgien spécifique', 'ccv'))
-                               ->required(false)
-                               ->options([
-                                       'Dr Guilhaume GENESTE' => 'dr.geneste@ccv-montpellier.fr',
-                                       'Dr Grégory EDGARD-ROSA' => 'dr.edgard-rosa@ccv-montpellier.fr',
-                                       'Dr Martin GRAU ORTIZ' => 'dr.grauortiz@ccv-montpellier.fr',
-                                       'Dr Caroline HIRSH' => 'dr.hirsch@ccv-montpellier.fr',
-                               ]),
-
-            Date::field('work-accident', __('Si accident du travail à quelle date ?', 'ccv'))->required(false),
+            Radio::field('main-pain', __('La douleur principale est-elle ?', 'ccv'))
+                ->options([
+                    __('Dans la colonne', 'ccv'),
+                    __('Dans les membres', 'ccv'),
+                    __('Les deux', 'ccv'),
+                ]),
 
-                       //=== IMAGERY
-                       // This is a special case and will be output manually so only using this for the e-mail label
-                       Radio::field('imagery-type', __('Imagerie', 'ccv'))->required(false),
-                       Textarea::field('imagery-online', __('Images en ligne', 'ccv'))->required(false), // Again, a manually handled field
-                       Checkbox::field('imagery-posted', __('Images envoyées par courrier', 'ccv'))->required(false),
+            Binary::field('tingling-numbness', __('Avez-vous des fourmillements ou une sensation d’engourdissement dans un des membres ? ', 'ccv')),
+            Date::field('tingling-numbness-date', __('Si oui depuis quand ?', 'ccv'))->required(false),
+            Binary::field('strength-loss', __('Avez-vous une perte de force importante dans un des membres ?', 'ccv')),
+            Date::field('strength-loss-date', __('Si oui depuis quand ?', 'ccv'))->required(false),
+            Textarea::field('symptoms', __('Dites-nous en quelques mots ce qui vous invalide le plus dans vos symptômes :', 'ccv')),
+            Textarea::field('surgeries', __('Indiquez ici vos précédentes chirurgies de la colonne et leurs dates (le cas échéant)', 'ccv'))->required(false),
 
                        // Unique session identifier for uploads that go directly to CCV's NAS (upload.ccv-montpellier.fr)
                        // Made up of timestamp YYMMDDHHMM + nonce
                        Hidden::field('imagery-phone-token', __('ID sur le NAS', 'ccv'))->value(date('ymdHi') . '_' . wp_create_nonce('NAS-upload')),
 
-                       //== SYMPTOMS
-                       Radio::field('main-problem', __('Problème principal', 'ccv'))
-                               ->options([
-                                       __('Cervicales', 'ccv'),
-                                       __('Lombaires', 'ccv'),
-                                       __('Scoliose', 'ccv'),
-                               ]),
-
-                       Date::field('date-first-symptoms', __('Date des premiers symptômes :', 'ccv')),
-
-                       Date::field('date-pain-since', __('Douleurs permanentes depuis (le cas échéant) :', 'ccv'))->required(false),
-
-                       Binary::field('pain-arms-legs', __('Avez-vous des douleurs dans les bras ou les jambes (sciatiques, cruralgies, névralgies) ?', 'ccv')),
-
-                       Checkbox::field('pain-arms-legs-detail', __('Si oui, cochez les membres concernés :', 'ccv'))
-                               ->required(false)
-                               ->options([
-                                       __('Haut du bras droit', 'ccv'),
-                                       __('Haut du bras gauche', 'ccv'),
-                                       __('Avant-bras droit', 'ccv'),
-                                       __('Avant-bras gauche', 'ccv'),
-                                       __('Haut de la jambe droite', 'ccv'),
-                                       __('Haut de la jambe gauche', 'ccv'),
-                                       __('Bas de la jambe droite', 'ccv'),
-                                       __('Bas de la jambe gauche', 'ccv'),
-                               ]),
-
-                       Radio::field('main-pain', __('La douleur principale est-elle ?', 'ccv'))
-                               ->options([
-                                       __('Dans la colonne', 'ccv'),
-                                       __('Dans les membres', 'ccv'),
-                                       __('Les deux', 'ccv'),
-                               ]),
-
-                       Binary::field('tingling-numbness', __('Avez-vous des fourmillements ou une sensation d’engourdissement dans un des membres ? ', 'ccv')),
-                       Date::field('tingling-numbness-date', __('Si oui depuis quand ?', 'ccv'))->required(false),
-
-                       Binary::field('strength-loss', __('Avez-vous une perte de force importante dans un des membres ?', 'ccv')),
-                       Date::field('strength-loss-date', __('Si oui depuis quand ?', 'ccv'))->required(false),
-
-            Textarea::field('symptoms', __('Dites-nous en quelques mots ce qui vous invalide le plus dans vos symptômes :', 'ccv')),
-
                        //=== TREATMENTS
-                       Textarea::field('medication', __('Indiquez ici les médicaments que vous avez pris pour vos douleurs (le cas échéant)', 'ccv'))->required(false),
             Binary::field('kine-osteo', __('Kinésithérapie ou ostéopathie', 'ccv')),
-                       Binary::field('corset', __('Corset ou ceinture lombaire', 'ccv')),
-                       Binary::field('hospitalisation', __('Séjour en hospitalisation', 'ccv')),
-                       Binary::field('infiltration', __('Infiltration ou thermocoagulation', 'ccv')),
-                       Binary::field('rheumatological', __('Suivi rhumatologique ou médecine spécialisée', 'ccv')),
-            Textarea::field('surgeries', __('Indiquez ici vos précédentes chirurgies de la colonne et leurs dates (le cas échéant)', 'ccv'))->required(false),
-
+            Binary::field('infiltration', __('Infiltration ou thermocoagulation', 'ccv')),
+            Binary::field('rheumatological', __('Suivi rhumatologique ou médecine spécialisée', 'ccv')),
+            Binary::field('corset', __('Corset ou ceinture lombaire', 'ccv')),
+            Binary::field('hospitalisation', __('Séjour en hospitalisation', 'ccv')),
+            Textarea::field('medication', __('Indiquez ici les médicaments que vous avez pris pour vos douleurs (le cas échéant)', 'ccv'))->required(false),
+            //=== IMAGERY
+            // This is a special case and will be output manually so only using this for the e-mail label
+            Textarea::field('imagery-online', __('Images en ligne', 'ccv'))->required(false), // Again, a manually handled field
+            Checkbox::field('imagery-posted', __('Images envoyées par courrier', 'ccv'))->required(false),
+            Radio::field('imagery-type', __('Imagerie', 'ccv'))->required(false),
             Radio::field('imagery-condition', __('IRM de moins de 6 mois', 'ccv'))
                 ->options([
                 __('J\'ai bien noté que mon dossier ne pourra être étudié si je ne fournis pas une IRM de moins de 6 mois', 'ccv'),
@@ -161,6 +148,10 @@ class Consultation extends Base {
             Text::field('link-4', __('Lien internet 4', 'ccv'))->required(false),
             Text::field('id-4', __('Identifiant 4', 'ccv'))->required(false),
             Password::field('pwd-4', __('Mot de passe 4', 'ccv'))->required(false),
+
+            Textarea::field('message', __('Avez vous un message (ou une demande) spécifique à nous formuler ?', 'ccv'))->required(false),
+
+            //Text::field('age', __('Âge :', 'ccv')),
                ]);
        }
 
index 159ef5813f3d2c00b76d59e52ff15c4d2caadbea..8390202c106047171c350884b9a5651c69cdb68e 100644 (file)
@@ -1,10 +1,9 @@
 //=== Consultation Form
 (function($) {
-
   // Check the parent radio button when clicking on any element with this data attribute
   $(document).on('click', '[data-update-imagery-type]', function(event) {
     let radio = $(this).closest('.imagery-type-wrapper').find('input[name="imagery-type"]');
-    radio.prop('checked', true);
+    //radio.prop('checked', true);
     clearPostCheckbox(); // We can clear it here because this event is only triggered by the other options
     event.preventDefault();
   });
index c56c129ad5536be88672d1ae241d0a4121bbac0d..feafaad1b3ed9b2f2200041ac185e65ba0aae979 100644 (file)
@@ -1,44 +1,54 @@
 {{-- EMAIL TEMPLATE --}}
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html lang="{{ $current_language }}" xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>CCV Formulaire</title>
-    <style type="text/css">
-      body {
-        font-family: Arial, sans-serif;
-      }
-      table {
-        border-style: solid;
-        border-color: #aaa;
-        border-width: 1px 1px 0 1px;
-      }
-      td {
-        padding: 12px 18px 12px 12px;
-        border-bottom: 1px solid #aaa;
-      }
-    </style>
-  </head>
-  <body>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>CCV Formulaire</title>
+  <style type="text/css">
+    body {
+      font-family: Arial, sans-serif;
+    }
+    table {
+      border-style: solid;
+      border-color: #aaa;
+      border-width: 1px 1px 0 1px;
+    }
+    td {
+      padding: 12px 18px 12px 12px;
+      border-bottom: 1px solid #aaa;
+    }
+  </style>
+</head>
+<body>
 
-    <h1 style="font-size: 24px; margin-bottom: 1.5em;">{{ $subject }}</h1>
+<h1 style="font-size: 24px; margin-bottom: 1.5em;">{{ $subject }}</h1>
 
-    <table cellpadding="0" cellspacing="0" border="0">
-      @foreach($data as $label => $value)
-        <tr @if($loop->even) bgcolor="#eeeeee" @endif>
-          <td valign="top" align="right"><strong>{{ rtrim($label, ':') }}</strong></td>
-          <td>
-            @if (is_array($value))
-              <ul style="margin: 0; padding-left: 1em;">
-                <li>{!! implode('</li><li>', $value) !!}</li>
-              </ul>
-            @else
-              {!! nl2br($value) !!}
-            @endif
-          </td>
-        </tr>
-      @endforeach
-    </table>
-  </body>
+<table cellpadding="0" cellspacing="0" border="0">
+  @php($bg = "#fff")
+  @foreach($data as $label => $value)
+    @if($label === __('Nom') || $label === __('Indiquez ici vos précédentes chirurgies de la colonne et leurs dates (le cas échéant)') || $label === __('Kinésithérapie ou ostéopathie') || $label === __('Avez vous un message (ou une demande) spécifique à nous formuler ?'))
+      @php($bg = "#eee")
+    @elseif($label === __('Êtes-vous à la recherche de solutions chirurgicales pour votre problème de dos ?') || $label === __('Imagerie'))
+      @php($bg = "#fff")
+    @endif
+
+    @if(in_array($label, ['strength-loss-date','tingling-numbness-date']))
+      @php($label = __('Si oui depuis quand ?'))
+    @endif
+    <tr bgcolor="{{$bg}}">
+      <td valign="top" align="right"><strong>{{ rtrim($label, ':') }}</strong></td>
+      <td>
+        @if (is_array($value))
+          <ul style="margin: 0; padding-left: 1em;">
+            <li>{!! implode('</li><li>', $value) !!}</li>
+          </ul>
+        @else
+          {!! nl2br($value) !!}
+        @endif
+      </td>
+    </tr>
+  @endforeach
+</table>
+</body>
 </html>