From f6373a0d96fa62eefb1c5ced928b3a8dbb19a43f Mon Sep 17 00:00:00 2001 From: b_b Date: Wed, 30 Jun 2021 14:10:42 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20d'un=20formulaire=20d'import=20de=20sig?= =?UTF-8?q?natures=20=C3=A0=20partir=20d'un=20fichier=20CSV?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit permet d'ajouter les signatures récupérées sur papier lors d'événements publics --- formulaires/importer_signatures.html | 19 +++++++++ formulaires/importer_signatures.php | 63 ++++++++++++++++++++++++++++ lang/cambio_fr.php | 7 +++- prive/configurer/petitionner.html | 8 +++- 4 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 formulaires/importer_signatures.html create mode 100644 formulaires/importer_signatures.php diff --git a/formulaires/importer_signatures.html b/formulaires/importer_signatures.html new file mode 100644 index 0000000..dac32cc --- /dev/null +++ b/formulaires/importer_signatures.html @@ -0,0 +1,19 @@ +
+

<:cambio:import_titre:>

+[

(#ENV*{message_ok})

] +[

(#ENV*{message_erreur})

] +[
(#EDITABLE) + #ACTION_FORMULAIRE{#ENV{action}} +
+ #SET{name,file_import}#SET{obli,obligatoire}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
+ [ + (#GET{erreurs}) + ] +
+
+

+ +

+
] +
diff --git a/formulaires/importer_signatures.php b/formulaires/importer_signatures.php new file mode 100644 index 0000000..70db063 --- /dev/null +++ b/formulaires/importer_signatures.php @@ -0,0 +1,63 @@ + ''); + } else { + return false; + } +} + +function formulaires_importer_signatures_verifier_dist($id_petition) { + $erreurs = array(); + + if (!isset($_FILES) or !isset($_FILES['file_import'])) { + $erreurs['file_import'] = _T('medias:erreur_indiquez_un_fichier'); + } + + return $erreurs; +} + +function formulaires_importer_signatures_traiter_dist($id_petition) { + + $importer_csv = charger_fonction('importer_csv', 'inc'); + + if (isset($_FILES) and isset($_FILES['file_import']) and !$_FILES['file_import']['error']) { + $fichier = $_FILES['file_import']['tmp_name']; + $csv = $importer_csv($fichier, true, ",", '"', null); + $petition = sql_fetsel('*', 'spip_petitions', 'id_petition=' . intval($id_petition)); + $total = 0; + include_spip('action/editer_signature'); + if (is_array($csv) and count($csv) >= 1) { + foreach ($csv as $item) { + $doublon = false; + if ($petition['email_unique'] == "oui") { + $doublon = sql_countsel('spip_signatures', "id_petition=" . intval($id_petition) . " AND ad_email=" . sql_quote($item['email']) . " AND statut='publie'"); + } + if (!$doublon) { + if ($id_signature = signature_inserer($id_petition)) { + signature_modifier( + $id_signature, + array( + 'statut' => 'publie', + 'nom_email' => $item['nom'], + 'ad_email' => $item['email'], + 'nom_site' => $item['code_postal'] + ) + ); + ++$total; + } + } + } + } + } + + return array( + 'message_ok' => _T('cambio:import_message_ok', array('nb' => $total)), + 'editable' => true + ); +} diff --git a/lang/cambio_fr.php b/lang/cambio_fr.php index d339dc9..ff01f1b 100755 --- a/lang/cambio_fr.php +++ b/lang/cambio_fr.php @@ -7,5 +7,10 @@ if (!defined('_ECRIRE_INC_VERSION')) { $GLOBALS[$GLOBALS['idx_lang']] = array( 'export_prop' => 'Exporter les signatures en attente', 'export_publie' => 'Exporter les signatures confirmées', - 'export_titre' => 'Exporter les signatures' + 'export_titre' => 'Exporter les signatures', + + 'import_bouton' => 'Importer', + 'import_label_csv' => 'Fichier CSV', + 'import_message_ok' => '@nb@ signatures importées', + 'import_titre' => 'Importer des signatures', ); diff --git a/prive/configurer/petitionner.html b/prive/configurer/petitionner.html index 7dafdff..a794acf 100644 --- a/prive/configurer/petitionner.html +++ b/prive/configurer/petitionner.html @@ -8,4 +8,10 @@ [(#URL_PAGE{exporter_signatures,id_article=#ID_ARTICLE}|icone_horizontale{<:cambio:export_publie:>,petition-24,export})] [(#URL_PAGE{exporter_signatures,id_article=#ID_ARTICLE}|parametre_url{statut,prop}|icone_horizontale{<:cambio:export_prop:>,petition-24,export})] #BOITE_FERMER] - \ No newline at end of file + + + +[(#AUTORISER{configurer}|oui) +[
(#FORMULAIRE_IMPORTER_SIGNATURES{#ID_PETITION})
] +] + \ No newline at end of file