Overview
Comment:suppression de rappel automatique
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1bb95bcff2c7811d482577359662dad424b38c39
User & Date: bohwaz on 2014-03-14 15:47:39
Other Links: manifest | tags
Context
2014-03-14
18:10
Méthodes listes et comptage des rappels envoyés check-in: 3fcdfaaeb4 user: bohwaz tags: trunk
15:47
suppression de rappel automatique check-in: 1bb95bcff2 user: bohwaz tags: trunk
14:37
Modification de rappel automatique check-in: 03eb33c212 user: bohwaz tags: trunk
Changes

Modified src/include/class.rappels.php from [01eb6766b1] to [ca754749c8].

    74     74   
    75     75   		return $db->simpleUpdate('rappels', $data, 'id = ' . (int)$id);
    76     76   	}
    77     77   
    78     78   	/**
    79     79   	 * Supprimer un rappel automatique
    80     80   	 * @param  integer $id Numéro du rappel
           81  +	 * @param  boolean $delete_history Effacer aussi l'historique des rappels envoyés
    81     82   	 * @return boolean     TRUE en cas de succès
    82     83   	 */
    83         -	public function delete($id)
           84  +	public function delete($id, $delete_history = false)
    84     85   	{
    85     86   		$db = DB::getInstance();
    86     87   
    87     88   		$db->exec('BEGIN;');
           89  +
           90  +		if ($delete_history)
           91  +		{
           92  +			$db->simpleExec('DELETE FROM rappels_envoyes WHERE id_rappel = ?;', (int) $id);
           93  +		}
           94  +		else
           95  +		{
           96  +			$db->simpleExec('UPDATE rappels_envoyes SET id_rappel = NULL WHERE id_rappel = ?;', (int) $id);
           97  +		}
           98  +
    88     99   		$db->simpleExec('DELETE FROM rappels WHERE id = ?;', (int) $id);
    89         -		$db->simpleExec('DELETE FROM rappels_envoyes WHERE id_rappel = ?;', (int) $id);
    90    100   		$db->exec('END;');
    91    101   
    92    102   		return true;
    93    103   	}
    94    104   
    95    105   	/**
    96    106   	 * Renvoie les données sur un rappel

Added src/templates/admin/membres/cotisations/gestion/rappel_supprimer.tpl version [decb9f66e0].

            1  +{include file="admin/_head.tpl" title="Supprimer un rappel automatique" current="membres/cotisations"}
            2  +
            3  +<ul class="actions">
            4  +    <li><a href="{$admin_url}membres/cotisations/">Cotisations</a></li>
            5  +    <li><a href="{$admin_url}membres/cotisations/ajout.php">Saisie d'une cotisation</a></li>
            6  +    <li><a href="{$admin_url}membres/cotisations/rappels.php">État des rappels</a></li>
            7  +    <li class="current"><a href="{$admin_url}membres/cotisations/gestion/rappels.php">Gestion des rappels automatiques</a></li>
            8  +</ul>
            9  +
           10  +{if $error}
           11  +    <p class="error">
           12  +        {$error|escape}
           13  +    </p>
           14  +{/if}
           15  +
           16  +<form method="post" action="{$self_url|escape}">
           17  +
           18  +    <fieldset>
           19  +        <legend>Supprimer ce rappel automatique ?</legend>
           20  +        <h3 class="warning">
           21  +            Êtes-vous sûr de vouloir supprimer le rappel «&nbsp;{$rappel.sujet|escape}&nbsp;» ?
           22  +        </h3>
           23  +        <dl>
           24  +            <dt><label for="f_delete_history">Effacer aussi l'historique des e-mails envoyés par le biais de ce rappel&nbsp;?</label></dt>
           25  +            <dd>
           26  +                <label>
           27  +                    <input type="radio" name="delete_history" value="0" checked="checked" />
           28  +                    Non, conserver l'historique
           29  +                </label> (toutefois il ne sera plus associé à ce rappel)
           30  +            </dd>
           31  +            <dd>
           32  +                <label>
           33  +                    <input type="radio" name="delete_history" value="1" />
           34  +                    Oui, effacer l'historique des e-mails envoyés
           35  +                </label>
           36  +            </dd>
           37  +        </dl>
           38  +    </fieldset>
           39  +
           40  +    <p class="submit">
           41  +        {csrf_field key="delete_rappel_"|cat:$rappel.id}
           42  +        <input type="submit" name="delete" value="Supprimer &rarr;" />
           43  +    </p>
           44  +
           45  +</form>
           46  +
           47  +{include file="admin/_foot.tpl"}

Added src/www/admin/membres/cotisations/gestion/rappel_supprimer.php version [f4a5906826].

            1  +<?php
            2  +namespace Garradin;
            3  +
            4  +require_once __DIR__ . '/../../../_inc.php';
            5  +
            6  +if ($user['droits']['membres'] < Membres::DROIT_ADMIN)
            7  +{
            8  +    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
            9  +}
           10  +
           11  +if (!utils::get('id') || !is_numeric(utils::get('id')))
           12  +{
           13  +    throw new UserException("Argument du numéro de rappel manquant.");
           14  +}
           15  +
           16  +$rappels = new Rappels;
           17  +
           18  +$rappel = $rappels->get(utils::get('id'));
           19  +
           20  +if (!$rappel)
           21  +{
           22  +    throw new UserException("Ce rappel n'existe pas.");
           23  +}
           24  +
           25  +$error = false;
           26  +
           27  +if (!empty($_POST['delete']))
           28  +{
           29  +    if (!utils::CSRF_check('delete_rappel_' . $rappel['id']))
           30  +    {
           31  +        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
           32  +    }
           33  +    else
           34  +    {
           35  +        try {
           36  +            $rappels->delete($rappel['id'], (bool) utils::post('delete_history'));
           37  +            utils::redirect('/admin/membres/cotisations/gestion/rappels.php');
           38  +        }
           39  +        catch (UserException $e)
           40  +        {
           41  +            $error = $e->getMessage();
           42  +        }
           43  +    }
           44  +}
           45  +
           46  +$tpl->assign('error', $error);
           47  +
           48  +$tpl->assign('rappel', $rappel);
           49  +
           50  +$tpl->display('admin/membres/cotisations/gestion/rappel_supprimer.tpl');
           51  +
           52  +?>