Si on choisit l'action de vidage, alors on force le vidage même si la meta n'est pas positionnée. Cela permet de réparer une erreur de traitement du à un timeout par exemple.

v0_spip32
Eric Lupinacci 3 years ago
parent ed189de268
commit 5d2f11e23a

@ -144,9 +144,6 @@ function formulaires_peupler_territoires_traiter() {
// à savoir soit un type région ou pays, soit un pays pour une subdivision.
include_spip('inc/territoire');
$action = _request('action_territoire');
if ($action === 'peupler_force') {
$action = 'peupler';
}
$types = _request('types');
$pays = _request('pays');
if ($pays) {
@ -160,8 +157,11 @@ function formulaires_peupler_territoires_traiter() {
// Détermination des options de l'action
$options = array();
$forcer = _request('forcer');
if ($forcer) {
$options['force'] = $forcer;
if (
$forcer
or ($action === 'depeupler')
) {
$options['force'] = true;
}
foreach (array('code', 'info') as $_type_extra) {
if (_request("extra_${_type_extra}")) {

@ -240,11 +240,14 @@ function territoire_peupler($type, $pays, $options = array()) {
*
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infrasubdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays si le type est `subdivision` ou `infrasubdivision` sinon une chaine vide.
* @param array $options Tableau des options de dépeuplement:
* - `force` : si `true` force le vidage même si la meta n'est pas présente (cas d'erreur
* sur timeout par exemple. La valeur par défaut est `false`.
*
* @return array Tableau retour de la fonction permettant de connaitre le résultat du traitement (utile pour l'affichage
* du message dans le formulaire de peuplement).
*/
function territoire_depeupler($type, $pays = '') {
function territoire_depeupler($type, $pays = '', $options = array()) {
// On initialise le retour à une erreur nok
$retour = array(
@ -261,8 +264,11 @@ function territoire_depeupler($type, $pays = '') {
include_spip('inc/territoires_services');
include_spip('inc/territoires_utils');
if (type_pays_est_valide($type, $pays)) {
// Inutile de vider une table vide
if (territoire_est_peuple($type, $pays)) {
// Inutile de vider une table vide sauf si l'option de forçage est activée.
if (
territoire_est_peuple($type, $pays)
or !empty($options['force'])
) {
// Identification de la variable de consigne
$consigne = consigne_identifier($type, $pays);

Loading…
Cancel
Save