federated polls: GNU-Social requires us to preserve the original order of the poll answers for use in making a vote, unlike diaspora (which selects by guid) and activitypub (which selects by non-localisable text).

This commit is contained in:
zotlabs 2018-03-07 15:39:14 -08:00
parent f0f58dade8
commit a454aad124
4 changed files with 32 additions and 2 deletions

26
Zotlabs/Update/_1209.php Normal file
View File

@ -0,0 +1,26 @@
<?php
namespace Zotlabs\Update;
class _1209 {
function run() {
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
$r1 = q("ALTER TABLE poll_elm ADD pelm_order numeric(6) NOT NULL DEFAULT '0' ");
$r2 = q("create index \"pelm_order_idx\" on poll_elm \"pelm_order\"");
$r = ($r1 && $r2);
}
else {
$r = q("ALTER TABLE `poll_elm` ADD `pelm_order` int(11) NOT NULL DEFAULT 0,
ADD INDEX `pelm_order` (`pelm_order`)");
}
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}
}

View File

@ -54,7 +54,7 @@ define ( 'STD_VERSION', '3.3.2' );
define ( 'ZOT_REVISION', '6.0a' );
define ( 'DB_UPDATE_VERSION', 1208 );
define ( 'DB_UPDATE_VERSION', 1209 );
define ( 'PROJECT_BASE', __DIR__ );

View File

@ -988,10 +988,12 @@ CREATE TABLE IF NOT EXISTS `poll_elm` (
`pelm_desc` text NOT NULL,
`pelm_flags` int(11) NOT NULL DEFAULT 0 ,
`pelm_result` float NOT NULL DEFAULT 0 ,
`pelm_order` int(11) NOT NULL DEFAULT 0 ,
PRIMARY KEY (`pelm_id`),
KEY `pelm_guid` (`pelm_guid`),
KEY `pelm_poll` (`pelm_poll`),
KEY `pelm_result` (`pelm_result`)
KEY `pelm_result` (`pelm_result`),
KEY `pelm_order` (`pelm_order`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `profdef` (

View File

@ -963,11 +963,13 @@ CREATE TABLE "poll_elm" (
"pelm_desc" text NOT NULL,
"pelm_flags" bigint NOT NULL DEFAULT '0',
"pelm_result" float NOT NULL DEFAULT '0',
"pelm_order" numeric(6) NOT NULL DEFAULT '0',
PRIMARY KEY ("pelm_id")
);
create index "pelm_guid" on poll_elm ("pelm_guid");
create index "pelm_poll" on poll_elm ("pelm_poll");
create index "pelm_result" on poll_elm ("pelm_result");
create index "pelm_order" on poll_elm ("pelm_order");
CREATE TABLE "profdef" (
"id" serial NOT NULL,