From 5862e647d3653254acc869b0cd7db63c4e60a430 Mon Sep 17 00:00:00 2001 From: Olivier Perez Date: Wed, 4 May 2016 01:36:42 +0200 Subject: [PATCH 1/3] Fix edition limits for expired polls --- tpl/part/poll_info.tpl | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tpl/part/poll_info.tpl b/tpl/part/poll_info.tpl index 61f3957..3c8f9c6 100644 --- a/tpl/part/poll_info.tpl +++ b/tpl/part/poll_info.tpl @@ -102,8 +102,8 @@
-

{$poll->end_date|date_format:$date_format['txt_date']|html}{if !$expired} {/if}

- {if !$expired} +

{$poll->end_date|date_format:$date_format['txt_date']|html}

+ - {/if} +
{/if} @@ -199,8 +199,7 @@ {$rule_icon = ''} {$rule_txt = __('PollInfo', 'Votes and comments are locked')} {/if} -

{$rule_icon} {$rule_txt|html}{if !$expired} {/if}

- {if !$expired} +

{$rule_icon} {$rule_txt|html}

- {/if} From d3db76ccd79f92cd0bf2ca22814af2479757da03 Mon Sep 17 00:00:00 2001 From: Olivier Perez Date: Wed, 4 May 2016 01:51:49 +0200 Subject: [PATCH 2/3] Allow admin to delete an expired poll --- tpl/part/poll_info.tpl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tpl/part/poll_info.tpl b/tpl/part/poll_info.tpl index 3c8f9c6..c568721 100644 --- a/tpl/part/poll_info.tpl +++ b/tpl/part/poll_info.tpl @@ -22,7 +22,8 @@
{__('PollInfo', 'Export to CSV')} - {if $admin && !$expired} + {if $admin} + {if !$expired} @@ -32,6 +33,12 @@
  • + {else} + + {/if} {/if}
    From fa5014de325bf5cbc821a078129923d299529fc4 Mon Sep 17 00:00:00 2001 From: Olivier Perez Date: Thu, 30 Jun 2016 20:48:30 +0200 Subject: [PATCH 3/3] Fixed expiry date edition --- adminstuds.php | 3 +-- app/classes/Framadate/Services/AdminPollService.php | 3 ++- app/classes/Framadate/Services/InputService.php | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/adminstuds.php b/adminstuds.php index 5750828..cc6f675 100644 --- a/adminstuds.php +++ b/adminstuds.php @@ -122,8 +122,7 @@ if (isset($_POST['update_poll_info'])) { break; } } elseif ($field == 'expiration_date') { - $expiration_date = filter_input(INPUT_POST, 'expiration_date', FILTER_VALIDATE_REGEXP, - ['options' => ['regexp' => '#^[0-9]{4}-[0-9]{2}-[0-9]{2}$#']]); + $expiration_date = $inputService->filterDate($_POST['expiration_date']); if ($expiration_date) { $poll->end_date = $expiration_date; $updated = true; diff --git a/app/classes/Framadate/Services/AdminPollService.php b/app/classes/Framadate/Services/AdminPollService.php index 369d13d..2e3f3af 100644 --- a/app/classes/Framadate/Services/AdminPollService.php +++ b/app/classes/Framadate/Services/AdminPollService.php @@ -4,6 +4,7 @@ namespace Framadate\Services; use Framadate\Exception\MomentAlreadyExistsException; use Framadate\FramaDB; use Framadate\Repositories\RepositoryFactory; +use Framadate\Utils; /** * Class AdminPollService @@ -33,7 +34,7 @@ class AdminPollService { function updatePoll($poll) { global $config; - if ($poll->end_date > $poll->creation_date && $poll->end_date <= strtotime($poll->creation_date) + (86400 * $config['default_poll_duration'])) { + if ($poll->end_date > $poll->creation_date) { return $this->pollRepository->update($poll); } else { return false; diff --git a/app/classes/Framadate/Services/InputService.php b/app/classes/Framadate/Services/InputService.php index 5db7f7e..ebf3c5f 100644 --- a/app/classes/Framadate/Services/InputService.php +++ b/app/classes/Framadate/Services/InputService.php @@ -17,6 +17,7 @@ * Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft) */ namespace Framadate\Services; +use DateTime; /** * This class helps to clean all inputs from the users or external services. @@ -90,6 +91,11 @@ class InputService { return $this->returnIfNotBlank($comment); } + public function filterDate($date) { + $dDate = DateTime::createFromFormat(__('Date', 'datetime_parseformat'), $date)->setTime(0, 0, 0); + return $dDate->format('Y-m-d H:i:s'); + } + /** * Return the value if it's not blank. * @@ -107,4 +113,4 @@ class InputService { return null; } -} \ No newline at end of file +}