From 0f39634734a89aa65f7cf651359c6288702a3eb9 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Wed, 18 Apr 2007 20:38:17 +0000 Subject: [PATCH] Many fixes in survey ergonomics modules/survey/survey.inc.php | 37 +++------ templates/survey/edit_question.tpl | 19 ++++ templates/survey/edit_radio.tpl | 12 ++ templates/survey/edit_root.tpl | 30 ++++++- templates/survey/edit_survey.tpl | 8 + templates/survey/index.tpl | 19 ++-- templates/survey/show_root.tpl | 152 +++++++++++++++++++++---------------- 7 files changed, 176 insertions(+), 101 deletions(-) git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1716 839d8a87-29fc-0310-9880-83ba4fa771e5 --- modules/survey/survey.inc.php | 37 ++++----- templates/survey/edit_question.tpl | 19 +++++ templates/survey/edit_radio.tpl | 12 ++- templates/survey/edit_root.tpl | 30 +++++++- templates/survey/edit_survey.tpl | 8 +- templates/survey/index.tpl | 19 +++-- templates/survey/show_root.tpl | 152 ++++++++++++++++++++++--------------- 7 files changed, 176 insertions(+), 101 deletions(-) diff --git a/modules/survey/survey.inc.php b/modules/survey/survey.inc.php index 168a226..08123d6 100644 --- a/modules/survey/survey.inc.php +++ b/modules/survey/survey.inc.php @@ -37,11 +37,11 @@ class Survey return ($long)? self::$longModes : self::$shortModes; } - private static $types = array('text' => 'texte court', - 'textarea' => 'texte long', - 'num' => 'numérique', - 'radio' => 'radio', - 'checkbox' => 'checkbox'); + private static $types = array('text' => 'Texte court', + 'textarea' => 'Texte long', + 'num' => 'Numérique', + 'radio' => 'Choix multiples (une réponse)', + 'checkbox' => 'Choix multiples (plusieurs réponses)'); public static function getTypes() { @@ -76,11 +76,7 @@ class Survey { $this->title = $args['title']; $this->description = $args['description']; - if (preg_match('#^\d{2}/\d{2}/\d{4}$#', $args['end'])) { - $this->end = preg_replace('#^(\d{2})/(\d{2})/(\d{4})$#', '\3-\2-\1', $args['end']); - } else { - $this->end = (preg_match('#^\d{4}-\d{2}-\d{2}$#', $args['end']))? $args['end'] : '#'; - } + $this->end = $args['end']; $this->mode = (isset($args['mode']))? $args['mode'] : self::MODE_ALL; if ($this->mode == self::MODE_ALL) { $args['promos'] = ''; @@ -303,7 +299,6 @@ class Survey // {{{ function checkSyntax() : checks syntax of the questions (currently the root only) before storing the survey in database private static $errorMessages = array( - "dateformat" => "la date de fin de sondage est mal formattée : elle doit respecter la syntaxe dd/mm/aaaa", "datepassed" => "la date de fin de sondage est déjà dépassée : vous devez préciser une date future", "promoformat" => "les restrictions à certaines promotions sont mal formattées" ); @@ -311,14 +306,10 @@ class Survey public function checkSyntax() { $rArr = array(); - if (!preg_match('#^\d{4}-\d{2}-\d{2}$#', $this->end)) { - $rArr[] = array('question' => 'root', 'error' => self::$errorMessages["dateformat"]); - } else { - // checks that the end date given is not already passed - // (unless the survey has already been validated : an admin can have a validated survey expired) - if (!$this->valid && $this->isEnded()) { - $rArr[] = array('question' => 'root', 'error' => self::$errorMessages["datepassed"]); - } + // checks that the end date given is not already passed + // (unless the survey has already been validated : an admin can have a validated survey expired) + if (!$this->valid && $this->isEnded()) { + $rArr[] = array('question' => 'root', 'error' => self::$errorMessages["datepassed"]); } if ($this->promos != '' && !preg_match('#^(\d{4}-?|(\d{4})?-\d{4})(,(\d{4}-?|(\d{4})?-\d{4}))*$#', $this->promos)) { $rArr[] = array('question' => 'root', 'error' => self::$errorMessages["promoformat"]); @@ -610,14 +601,18 @@ abstract class SurveyList extends SurveyQuestion public function update($args) { parent::update($args); - $this->choices = explode('|', $args['options']); + $this->choices = array(); + foreach ($args['options'] as $val) { + if (trim($val)) { + $this->choices[] = $val; + } + } } public function toArray() { $rArr = parent::toArray(); $rArr['choices'] = $this->choices; - $rArr['options'] = implode('|', $this->choices); return $rArr; } diff --git a/templates/survey/edit_question.tpl b/templates/survey/edit_question.tpl index 4ff1aea..dfe81e1 100644 --- a/templates/survey/edit_question.tpl +++ b/templates/survey/edit_question.tpl @@ -28,5 +28,24 @@ Commentaire + {javascript name=jquery} + {* vim:set et sw=2 sts=2 ts=8 enc=utf-8: *} diff --git a/templates/survey/edit_radio.tpl b/templates/survey/edit_radio.tpl index f2bf7f1..d748420 100644 --- a/templates/survey/edit_radio.tpl +++ b/templates/survey/edit_radio.tpl @@ -23,7 +23,17 @@ {include file='survey/edit_question.tpl'} Choix - + + {foreach from=$survey_current.choices key=value item=choice} +
+ + {icon name=delete title="Supprimer"} +
+ {/foreach} +
+ {icon name=add} +
+ {* vim:set et sw=2 sts=2 ts=8 enc=utf-8: *} diff --git a/templates/survey/edit_root.tpl b/templates/survey/edit_root.tpl index d6bb124..9a507b0 100644 --- a/templates/survey/edit_root.tpl +++ b/templates/survey/edit_root.tpl @@ -30,15 +30,37 @@ Date de fin - + + {valid_date name="survey_question[end]" value=$survey_current.end to=90} + + {javascript name=jquery} + Type de sondage - {html_radios name="survey_question[mode]" options=$survey_modes selected=$survey_current.mode separator='
'} + - - Promotions (si restreint aux polytechniciens) + + Promotions diff --git a/templates/survey/edit_survey.tpl b/templates/survey/edit_survey.tpl index d22c1ef..0c434b6 100644 --- a/templates/survey/edit_survey.tpl +++ b/templates/survey/edit_survey.tpl @@ -27,9 +27,11 @@ {include file="survey/edit_$survey_type.tpl"}
- - - +
+ + + +
{* vim:set et sw=2 sts=2 ts=8 enc=utf-8: *} diff --git a/templates/survey/index.tpl b/templates/survey/index.tpl index 9c65e5b..6d59f4f 100644 --- a/templates/survey/index.tpl +++ b/templates/survey/index.tpl @@ -28,8 +28,15 @@ Sondages en cours + + + {if $survey_current->total() eq 0} + Aucun sondage en cours + {/if} + {icon name=page_edit} Proposer un sondage + {iterate item=s from=$survey_current} - {if $smarty.session.auth || $s.mode == Survey::MODE_ALL} + {if $smarty.session.auth || $s.mode == Survey::MODE_ALL} • @@ -38,14 +45,8 @@ - {assign var="has_cs" value="true"} - {/if} - {/iterate} - {if !$has_cs} - - Aucun sondage en cours - {/if} + {/iterate}
@@ -76,6 +77,4 @@ {/if} -Proposer un sondage - {* vim:set et sw=2 sts=2 ts=8 enc=utf-8: *} diff --git a/templates/survey/show_root.tpl b/templates/survey/show_root.tpl index 8945444..3e465be 100644 --- a/templates/survey/show_root.tpl +++ b/templates/survey/show_root.tpl @@ -21,72 +21,100 @@ {**************************************************************************}

Sondage : {$survey.title}

-
-{if $survey.description != ''} - {$survey.description} -{/if} -
Fin du sondage : -{if $survey.end eq "#"} - erreur -{else} - {$survey.end|date_format:"%x"} -{/if} -
Type de sondage : -{$survey_modes[$survey.mode]} -{if $survey.mode != Survey::MODE_ALL} -
Réservé aux promotions : - {if $survey.promos eq "#"} - erreur - {elseif $survey.promos eq ""} - aucune restriction - {else} - {$survey.promos} - {/if} -{/if} -{if $survey_warning neq ''} -
{$survey_warning} -{/if} -{if $survey_resultmode} -
{$survey.votes} personnes ont répondu à ce sondage. -
Récupérer l'ensemble des résultats au format csv -{/if} -
-{if $survey_editmode} - {assign var="survey_rooteditmode" value=true} - {if $survey.valid} - {assign var="survey_editmode" value=false} - {/if} -{/if} -{if $survey_rooteditmode}Modifier la racine{/if} -{if $survey_editmode} | Ajouter une question au début{/if} -{if is_array($survey.questions)} + + + + + {if $survey_editmode} + {assign var="survey_rooteditmode" value=true} + {if $survey.valid} + {assign var="survey_editmode" value=false} + {/if} + {/if} + {if $survey_editmode} + + {/if} + + {if is_array($survey.questions)} {foreach from=$survey.questions item=squestion} - {include file='survey/show_question.tpl' squestion=$squestion} + + {if $survey_editmode} -
- Modifier cette question | - Supprimer cette question | - Ajouter une question après + {/if} -
+ {/foreach} -{/if} -{if $survey_rooteditmode} -
-{if $survey_updatemode}Enregistrer les modifications{else}Proposer ce sondage{/if} | -Annuler {if $survey_updatemode}les modifications{else}totalement la création de ce sondage{/if} -{elseif $survey_adminmode} -
-{if !$survey.valid}Valider ce sondage | {/if} -Modifier ce sondage | -Supprimer ce sondage | -Retour -{elseif $survey_votemode} - - -{else} -Retour -{/if} + {/if} +
+ + + + + + + + + + + + + {if $survey.mode != Survey::MODE_ALL} + + + + + {/if} + {if $survey_warning} + + + + {/if} +
{$survey.description}
Fin du sondage :{$survey.end|date_format:"%x"}
Type de sondage :{$survey_modes[$survey.mode]}
Promotions : + {if $survey.promos eq "#"} + erreur + {elseif $survey.promos eq ""} + aucune restriction + {else} + {$survey.promos} + {/if} +
{$survey_warning}
+ {if $survey_resultmode} +

{$survey.votes} personnes ont répondu à ce sondage.
+ Récupérer l'ensemble des résultats au format csv +

+ {/if} +
+ {if $survey_rooteditmode}{icon name=page_edit} Modifier la description
{/if} + {icon name=add} Ajouter une question au début +
+ {include file='survey/show_question.tpl' squestion=$squestion} + + {icon name=page_edit} Modifier cette question
+ {icon name=delete} Supprimer cette question
+ {icon name=add} Ajouter une question après +
+

+ {if $survey_rooteditmode} + + {icon name=tick} + {if $survey_updatemode}Enregistrer les modifications{else}Proposer ce sondage{/if} + | + + {icon name=cross} Annuler + {if $survey_updatemode}les modifications{else}totalement la création de ce sondage{/if} + + {elseif $survey_adminmode} + {if !$survey.valid}Valider ce sondage | {/if} + {icon name=tick} Modifier ce sondage | + {icon name=cross} Supprimer ce sondage | + Retour + {elseif $survey_votemode} + + + {else} + Retour + {/if} +

{* vim:set et sw=2 sts=2 ts=8 enc=utf-8: *} -- 2.1.4