Ajout d'un champ 'pays' dans la table spip_souscriptions.
authorOlivier Tétard <olivier.tetard@miskin.fr>
Thu, 21 Mar 2013 08:45:33 +0000 (09:45 +0100)
committerOlivier Tétard <olivier.tetard@miskin.fr>
Thu, 21 Mar 2013 08:45:33 +0000 (09:45 +0100)
Si ce champs vaut « France », alors le code postal est vérifié selon
les critères pour la France / Corse. Autrement, ce champs n'est pas
vérifié.

action/editer_souscription.php
action/exporter_souscriptions.php
base/souscription.php
formulaires/souscription.html
formulaires/souscription.php
lang/souscription_fr.php
paquet.xml
prive/objets/contenu/souscription.html
souscription_administrations.php

index 5569492..0a61ddd 100644 (file)
@@ -69,6 +69,7 @@ function souscription_modifier($id_souscription, $set=false) {
                                 'adresse',
                                 'code_postal',
                                 'ville',
+                                'pays',
                                 'id_souscription_campagne',
                                 'type_souscription'),
                           // black list
index e68eac7..cba5a3b 100644 (file)
@@ -33,7 +33,7 @@ function action_exporter_souscriptions_dist($arg=null) {
   /* Préparation de la requête */
   $select = "id_souscription, courriel, type_souscription,"
     ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
-    ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
+    ."nom, prenom, code_postal, ville, pays, recu_fiscal, envoyer_info, date_souscription,"
     ."spip_souscription_campagnes.id_souscription_campagne, titre";
   $from = "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)";
 
@@ -71,6 +71,7 @@ function action_exporter_souscriptions_dist($arg=null) {
                   "Prénom",
                   "Code Postal",
                   "Ville",
+                  "Pays",
                   "Souhaite reçu fiscal",
                   "Souhaite être informé",
                   "Date don",
index 886663a..85069dd 100644 (file)
@@ -53,6 +53,7 @@ function souscription_declarer_tables_objets_sql($tables) {
                           "code_postal"         => "text NOT NULL DEFAULT ''",
                           "adresse"             => "text NOT NULL DEFAULT ''",
                           "ville"               => "text NOT NULL DEFAULT ''",
+                          "pays"                => "text NOT NULL DEFAULT ''",
                           "recu_fiscal"         => "varchar(3) NOT NULL DEFAULT ''",
                           "type_souscription"   => "varchar(255) NOT NULL DEFAULT ''",
                           "informer_comite_local" => "varchar(3) NOT NULL DEFAULT ''",
@@ -65,8 +66,8 @@ function souscription_declarer_tables_objets_sql($tables) {
                          "KEY id_souscription_campagne" => "id_souscription_campagne"),
           'titre' => "nom AS titre, '' AS lang",
           'date' => "date_souscription",
-          'champs_editables'  => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
-          'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
+          'champs_editables'  => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'pays', 'recu_fiscal', 'envoyer_info'),
+          'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'pays', 'recu_fiscal', 'envoyer_info'),
           'rechercher_champs' => array(),
           'join' => array("id_transaction" => "id_transaction"),
           /* 'join' => array("id_souscription_campagne" => "id_souscription_campagne"), */
index 3f92dfb..6a2a927 100644 (file)
@@ -29,6 +29,7 @@
          [(#SAISIE{textarea, adresse, label=<:souscription:label_adresse:>, rows=3})]
          [(#SAISIE{input, code_postal, label=<:souscription:label_code_postal:>})]
          [(#SAISIE{input, ville, label=<:souscription:label_ville:>})]                    
+         [(#SAISIE{input, pays, label=<:souscription:label_pays:>})]
        </ul>
       </fieldset>
       <p class="boutons"><input type="submit" class="submit" value="<:souscription:confirmer:>" /></p>
index 7335428..69d28c5 100644 (file)
@@ -88,6 +88,7 @@ function formulaires_souscription_charger_dist($id_souscription_campagne) {
                'adresse' => '',
                'code_postal' => '',
                'ville' => '',
+               'pays' => '',
                'id_souscription_campagne' => $id_souscription_campagne,
                'type_souscription' => $type,
                );
@@ -147,7 +148,7 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne) {
 
 
   if(_request('recu_fiscal') || $type == "adhesion") {
-    foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville') as $obligatoire) {
+    foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville', 'pays') as $obligatoire) {
       if(!_request($obligatoire)) {
         if($type == "adhesion") {
           $erreurs[$obligatoire] = "Ce champ est obligatoire pour les adhésions";
@@ -162,8 +163,11 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne) {
   if ($e = _request('courriel') AND !email_valide($e))
     $erreurs['courriel'] = _T('form_prop_indiquer_email');
 
-  if ($e = _request('code_postal') AND !preg_match("/^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$/", $e)) {
-    $erreurs['code_postal'] = "Code postal invalide";
+  /* Le code postal n'est vérifié que si on est dans le cas de la France */
+  if($e = _request('pays') AND strtolower(trim($e)) == "france") {
+    if ($e = _request('code_postal') AND !preg_match("/^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$/", $e)) {
+      $erreurs['code_postal'] = "Code postal invalide";
+    }
   }
 
   if ($e = _request('montant')) {
index 792bdd8..8e40e8d 100644 (file)
@@ -51,6 +51,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'label_prenom' => 'Prénom',
        'label_recu_fiscal' => 'Envoyer un reçu fiscal',
        'label_ville' => 'Ville',
+       'label_pays' => 'Pays',
         'label_campagne' => 'Campagne',
         'label_titre_campagne' => 'Titre de la campagne',
         'label_exporter_payes' => 'Exporter les souscriptions payés',
index c213119..9e8e255 100644 (file)
@@ -6,7 +6,7 @@
     compatibilite="[3.0.5;3.0.*]"
     logo=""
     documentation=""
-    schema="0.1"
+    schema="0.2"
     >
 
   <nom>Souscription</nom>
index f8f8f72..1c722c7 100644 (file)
        <span dir="#LANG_DIR" class="#EDIT{ville} ville">(#VILLE)</span>
 </div>]
 
+[<div class="champ contenu_pays[ (#PAYS*|strlen|?{'',vide})]">
+       <label><:souscription:label_pays:> : </label>
+       <span dir="#LANG_DIR" class="#EDIT{pays} pays">(#PAYS)</span>
+</div>]
+
 [<div class="champ contenu_recu_fiscal">
        <label><:souscription:label_recu_fiscal:> : </label>
        <span dir="#LANG_DIR" class="#EDIT{recu_fiscal} recu_fiscal">(#RECU_FISCAL|?{"oui","non"})</span>
index 2e18330..4645590 100644 (file)
@@ -30,6 +30,8 @@ function souscription_upgrade($nom_meta_base_version, $version_cible) {
                                      )));
   $maj['0.1'] = array(array('sql_alter', "TABLE spip_souscriptions ADD informer_comite_local varchar(3) NOT NULL DEFAULT ''"));
 
+  $maj['0.2'] = array(array('sql_alter', "TABLE spip_souscriptions ADD pays text NOT NULL DEFAULT ''"));
+
   include_spip('base/upgrade');
   maj_plugin($nom_meta_base_version, $version_cible, $maj);
 }