Skip to content
Snippets Groups Projects
Commit 13d4ea4c authored by Marcos García de La Fuente's avatar Marcos García de La Fuente
Browse files

Added a new feature to disable spying other users’ vote

parent 2b019812
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); -- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
ALTER TABLE llx_bookmark ADD COLUMN entity integer DEFAULT 1 NOT NULL; ALTER TABLE llx_bookmark ADD COLUMN entity integer DEFAULT 1 NOT NULL;
ALTER TABLE `llx_opensurvey_sondage` ADD `allow_comments` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT 1 AFTER `canedit` ; ALTER TABLE `llx_opensurvey_sondage` ADD COLUMN `allow_comments` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT 1 AFTER `canedit` ;
ALTER TABLE `llx_opensurvey_sondage` DROP `survey_link_visible` ; ALTER TABLE `llx_opensurvey_sondage` DROP COLUMN `survey_link_visible` ;
ALTER TABLE `llx_opensurvey_sondage` DROP INDEX `idx_id_sondage_admin` ; ALTER TABLE `llx_opensurvey_sondage` DROP INDEX `idx_id_sondage_admin` ;
ALTER TABLE `llx_opensurvey_sondage` DROP `id_sondage_admin` ; ALTER TABLE `llx_opensurvey_sondage` DROP COLUMN `id_sondage_admin` ;
\ No newline at end of file ALTER TABLE `llx_opensurvey_sondage` ADD COLUMN `allow_spy` TINYINT( 1 ) UNSIGNED NOT NULL AFTER `allow_comments` ;
\ No newline at end of file
...@@ -26,6 +26,7 @@ CREATE TABLE llx_opensurvey_sondage ( ...@@ -26,6 +26,7 @@ CREATE TABLE llx_opensurvey_sondage (
mailsonde varchar(2) DEFAULT '0', mailsonde varchar(2) DEFAULT '0',
canedit integer DEFAULT 0, canedit integer DEFAULT 0,
allow_comments TINYINT(1) unsigned NOT NULL DEFAULT 1, allow_comments TINYINT(1) unsigned NOT NULL DEFAULT 1,
allow_spy TINYINT(1) unsigned NOT NULL DEFAULT 1,
origin VARCHAR(64), origin VARCHAR(64),
tms TIMESTAMP, tms TIMESTAMP,
sujet TEXT sujet TEXT
......
...@@ -27,7 +27,7 @@ SelectedDays=Selected days ...@@ -27,7 +27,7 @@ SelectedDays=Selected days
TheBestChoice=The best choice currently is TheBestChoice=The best choice currently is
TheBestChoices=The best choices currently are TheBestChoices=The best choices currently are
with=with with=with
OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you (without paying attention to the choices of the other voters) and validate with the plus button at the end of the line. OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.
InitiatorOfPoll=Initiator of the poll InitiatorOfPoll=Initiator of the poll
CommentsOfVoters=Comments of voters CommentsOfVoters=Comments of voters
ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes) ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes)
...@@ -66,7 +66,8 @@ AddEndHour=Add end hour ...@@ -66,7 +66,8 @@ AddEndHour=Add end hour
votes=vote(s) votes=vote(s)
NoCommentYet=No comments have been posted for this poll yet NoCommentYet=No comments have been posted for this poll yet
CanEditVotes=Can change vote of others CanEditVotes=Can change vote of others
CanComment=Users can comment in the poll CanComment=Voters can comment in the poll
CanSeeOthersVote=Voters can see other people's vote
SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes.
BackToCurrentMonth=Back to current month BackToCurrentMonth=Back to current month
PublicLinkToCreateSurvey=Public link to allow everybody to create a survey PublicLinkToCreateSurvey=Public link to allow everybody to create a survey
......
...@@ -88,6 +88,7 @@ if ($action == 'update') ...@@ -88,6 +88,7 @@ if ($action == 'update')
$object->date_fin = $expiredate; $object->date_fin = $expiredate;
$object->canedit = GETPOST('canedit')=='on'?1:0; $object->canedit = GETPOST('canedit')=='on'?1:0;
$object->allow_comments = GETPOST('cancomment') == 'on' ? true : false; $object->allow_comments = GETPOST('cancomment') == 'on' ? true : false;
$object->allow_spy = GETPOST('canseeothersvote') == 'on' ? true : false;
$res=$object->update($user); $res=$object->update($user);
if ($res < 0) if ($res < 0)
...@@ -176,7 +177,7 @@ $linkback = '<a href="'.dol_buildpath('/opensurvey/list.php',1).'">'.$langs->tra ...@@ -176,7 +177,7 @@ $linkback = '<a href="'.dol_buildpath('/opensurvey/list.php',1).'">'.$langs->tra
// Ref // Ref
print '<tr><td width="18%">'.$langs->trans('Ref').'</td>'; print '<tr><td width="18%">'.$langs->trans('Ref').'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($object, 'sondage', $linkback, 1, 'id_sondage', 'id_sondage'); print $form->showrefnav($object, 'id', $linkback, 1, 'id_sondage', 'id_sondage');
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
...@@ -239,6 +240,15 @@ if ($action == 'edit') ...@@ -239,6 +240,15 @@ if ($action == 'edit')
else print yn($object->allow_comments); else print yn($object->allow_comments);
print '</td></tr>'; print '</td></tr>';
// Users can see others vote
print '<tr><td>'.$langs->trans('CanSeeOthersVote').'</td><td colspan="2">';
if ($action == 'edit')
{
print '<input type="checkbox" name="canseeothersvote" size="40"'.($object->allow_spy?' checked="true"':'').'">';
}
else print yn($object->allow_spy);
print '</td></tr>';
// Expire date // Expire date
print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">'; print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">';
if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire'); if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire');
......
...@@ -58,6 +58,12 @@ class Opensurveysondage extends CommonObject ...@@ -58,6 +58,12 @@ class Opensurveysondage extends CommonObject
*/ */
public $allow_comments; public $allow_comments;
/**
* Allow users see others vote
* @var bool
*/
public $allow_spy;
/** /**
* Constructor * Constructor
* *
...@@ -189,6 +195,7 @@ class Opensurveysondage extends CommonObject ...@@ -189,6 +195,7 @@ class Opensurveysondage extends CommonObject
$sql.= " t.mailsonde,"; $sql.= " t.mailsonde,";
$sql.= " t.canedit,"; $sql.= " t.canedit,";
$sql.= " t.allow_comments,"; $sql.= " t.allow_comments,";
$sql.= " t.allow_spy,";
$sql.= " t.sujet,"; $sql.= " t.sujet,";
$sql.= " t.tms"; $sql.= " t.tms";
$sql.= " FROM ".MAIN_DB_PREFIX."opensurvey_sondage as t"; $sql.= " FROM ".MAIN_DB_PREFIX."opensurvey_sondage as t";
...@@ -212,6 +219,7 @@ class Opensurveysondage extends CommonObject ...@@ -212,6 +219,7 @@ class Opensurveysondage extends CommonObject
$this->mailsonde = $obj->mailsonde; $this->mailsonde = $obj->mailsonde;
$this->canedit = $obj->canedit; $this->canedit = $obj->canedit;
$this->allow_comments = $obj->allow_comments; $this->allow_comments = $obj->allow_comments;
$this->allow_spy = $obj->allow_spy;
$this->sujet = $obj->sujet; $this->sujet = $obj->sujet;
$this->date_m = $this->db->jdate($obj->tls); $this->date_m = $this->db->jdate($obj->tls);
...@@ -261,6 +269,7 @@ class Opensurveysondage extends CommonObject ...@@ -261,6 +269,7 @@ class Opensurveysondage extends CommonObject
if (isset($this->mailsonde)) $this->mailsonde=trim($this->mailsonde); if (isset($this->mailsonde)) $this->mailsonde=trim($this->mailsonde);
$this->canedit = $this->canedit ? 1 : 0; $this->canedit = $this->canedit ? 1 : 0;
$this->allow_comments = $this->allow_comments ? 1 : 0; $this->allow_comments = $this->allow_comments ? 1 : 0;
$this->allow_spy = $this->allow_spy ? 1 : 0;
// Check parameters // Check parameters
// Put here code to add a control on parameters values // Put here code to add a control on parameters values
...@@ -277,7 +286,8 @@ class Opensurveysondage extends CommonObject ...@@ -277,7 +286,8 @@ class Opensurveysondage extends CommonObject
$sql.= " format=".(isset($this->format)?"'".$this->db->escape($this->format)."'":"null").","; $sql.= " format=".(isset($this->format)?"'".$this->db->escape($this->format)."'":"null").",";
$sql.= " mailsonde=".(isset($this->mailsonde)?$this->db->escape($this->mailsonde):"null").","; $sql.= " mailsonde=".(isset($this->mailsonde)?$this->db->escape($this->mailsonde):"null").",";
$sql.= " canedit=".$this->db->escape($this->canedit).","; $sql.= " canedit=".$this->db->escape($this->canedit).",";
$sql.= " allow_comments=".$this->db->escape($this->allow_comments); $sql.= " allow_comments=".$this->db->escape($this->allow_comments).",";
$sql.= " allow_spy=".$this->db->escape($this->allow_spy);
$sql.= " WHERE id_sondage='".$this->db->escape($this->id_sondage)."'"; $sql.= " WHERE id_sondage='".$this->db->escape($this->id_sondage)."'";
......
...@@ -229,7 +229,7 @@ function dol_survey_random($car) ...@@ -229,7 +229,7 @@ function dol_survey_random($car)
*/ */
function ajouter_sondage($origin) function ajouter_sondage($origin)
{ {
global $conf, $db; global $db;
$sondage=dol_survey_random(16); $sondage=dol_survey_random(16);
...@@ -255,13 +255,14 @@ function ajouter_sondage($origin) ...@@ -255,13 +255,14 @@ function ajouter_sondage($origin)
} }
$canedit=empty($_SESSION['formatcanedit'])?'0':'1'; $canedit=empty($_SESSION['formatcanedit'])?'0':'1';
$allow_comments = empty($_SESSION['allow_comments']) ? 0 : 1; $allow_comments = empty($_SESSION['allow_comments']) ? 0 : 1;
$allow_spy = empty($_SESSION['allow_spy']) ? 0 : 1;
// Insert survey // Insert survey
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_sondage'; $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_sondage';
$sql.= '(id_sondage, commentaires, mail_admin, nom_admin, titre, date_fin, format, mailsonde, canedit, allow_comments, origin, sujet)'; $sql.= '(id_sondage, commentaires, mail_admin, nom_admin, titre, date_fin, format, mailsonde, canedit, allow_comments, allow_spy, origin, sujet)';
$sql.= " VALUES ('".$db->escape($sondage)."', '".$db->escape($_SESSION['commentaires'])."', '".$db->escape($_SESSION['adresse'])."', '".$db->escape($_SESSION['nom'])."',"; $sql.= " VALUES ('".$db->escape($sondage)."', '".$db->escape($_SESSION['commentaires'])."', '".$db->escape($_SESSION['adresse'])."', '".$db->escape($_SESSION['nom'])."',";
$sql.= " '".$db->escape($_SESSION['titre'])."', '".$db->idate($date_fin)."', '".$_SESSION['formatsondage']."', '".$db->escape($_SESSION['mailsonde'])."',"; $sql.= " '".$db->escape($_SESSION['titre'])."', '".$db->idate($date_fin)."', '".$_SESSION['formatsondage']."', '".$db->escape($_SESSION['mailsonde'])."',";
$sql.= " '".$canedit."', '".$allow_comments."', '".$db->escape($origin)."',"; $sql.= " '".$canedit."', '".$allow_comments."', '".$allow_spy."', '".$db->escape($origin)."',";
$sql.= " '".$db->escape($_SESSION['toutchoix'])."'"; $sql.= " '".$db->escape($_SESSION['toutchoix'])."'";
$sql.= ")"; $sql.= ")";
dol_syslog($sql); dol_syslog($sql);
...@@ -289,6 +290,7 @@ function ajouter_sondage($origin) ...@@ -289,6 +290,7 @@ function ajouter_sondage($origin)
unset($_SESSION["canedit"]); unset($_SESSION["canedit"]);
unset($_SESSION["mailsonde"]); unset($_SESSION["mailsonde"]);
unset($_SESSION['allow_comments']); unset($_SESSION['allow_comments']);
unset($_SESSION['allow_spy']);
header("Location: ".$urlback); header("Location: ".$urlback);
exit(); exit();
......
...@@ -81,6 +81,12 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre") || GET ...@@ -81,6 +81,12 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre") || GET
$_SESSION['allow_comments'] = false; $_SESSION['allow_comments'] = false;
} }
if (GETPOST('allow_spy') == 'on') {
$_SESSION['allow_spy'] = true;
} else {
$_SESSION['allow_spy'] = false;
}
if (! isValidEmail($adresse)) $erreur_adresse = true; if (! isValidEmail($adresse)) $erreur_adresse = true;
//var_dump($titre.' - '.$nom.' - '.$adresse.' - '.!$erreur_adresse.' - '.! $erreur_injection_titre.' - '.! $erreur_injection_commentaires.' - '.! $erreur_injection_nom.' - '.$creation_sondage_date.' - '.$creation_sondage_autre); exit; //var_dump($titre.' - '.$nom.' - '.$adresse.' - '.!$erreur_adresse.' - '.! $erreur_injection_titre.' - '.! $erreur_injection_commentaires.' - '.! $erreur_injection_nom.' - '.$creation_sondage_date.' - '.$creation_sondage_autre); exit;
...@@ -182,6 +188,10 @@ if ($_SESSION['allow_comments']) $allow_comments = "checked"; ...@@ -182,6 +188,10 @@ if ($_SESSION['allow_comments']) $allow_comments = "checked";
print '<input type="checkbox" name="allow_comments" '.$allow_comments.'> '.$langs->trans('CanComment').'<br />'."\n"; print '<input type="checkbox" name="allow_comments" '.$allow_comments.'> '.$langs->trans('CanComment').'<br />'."\n";
if ($_SESSION['allow_spy']) $allow_spy = "checked";
print '<input type="checkbox" name="allow_spy" '.$allow_spy.'> '.$langs->trans('CanSeeOthersVote').'<br />'."\n";
if (GETPOST('choix_sondage')) if (GETPOST('choix_sondage'))
{ {
if (GETPOST('choix_sondage') == 'date') print '<input type="hidden" name="creation_sondage_date" value="date">'; if (GETPOST('choix_sondage') == 'date') print '<input type="hidden" name="creation_sondage_date" value="date">';
......
...@@ -365,6 +365,7 @@ else ...@@ -365,6 +365,7 @@ else
// Loop on each answer // Loop on each answer
if ($object->allow_spy) {
$sumfor = array(); $sumfor = array();
$sumagainst = array(); $sumagainst = array();
$compteur = 0; $compteur = 0;
...@@ -525,6 +526,7 @@ while ($compteur < $num) ...@@ -525,6 +526,7 @@ while ($compteur < $num)
$compteur++; $compteur++;
print '</tr>'."\n"; print '</tr>'."\n";
} }
}
// Add line to add new record // Add line to add new record
if ($ligneamodifier < 0 && (! isset($_SESSION['nom']))) if ($ligneamodifier < 0 && (! isset($_SESSION['nom'])))
...@@ -589,6 +591,7 @@ for ($i=0; $i < $nbcolonnes; $i++) ...@@ -589,6 +591,7 @@ for ($i=0; $i < $nbcolonnes; $i++)
} }
} }
if ($object->allow_spy) {
// Show line total // Show line total
print '<tr>'."\n"; print '<tr>'."\n";
print '<td align="center">'. $langs->trans("Total") .'</td>'."\n"; print '<td align="center">'. $langs->trans("Total") .'</td>'."\n";
...@@ -623,6 +626,7 @@ if ($nbofcheckbox >= 2) ...@@ -623,6 +626,7 @@ if ($nbofcheckbox >= 2)
} }
print '</tr>'."\n"; print '</tr>'."\n";
} }
}
print '</table>'."\n"; print '</table>'."\n";
print '</div>'."\n"; print '</div>'."\n";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment