sqlite support for Approvals

This commit is contained in:
Shish 2020-01-30 14:50:30 +00:00
parent 5aa86963dd
commit 012f5d9da8
2 changed files with 16 additions and 20 deletions

View file

@ -9,5 +9,4 @@ class ApprovalInfo extends ExtensionInfo
public $authors = ["Matthew Barbour"=>"matthew@darkholme.net"];
public $license = self::LICENSE_WTFPL;
public $description = "Adds an approval step to the upload/import process.";
public $db_support = [DatabaseDriver::MYSQL, DatabaseDriver::PGSQL];
}

View file

@ -18,6 +18,8 @@ class Approval extends Extension
$config->set_default_bool(ApprovalConfig::IMAGES, false);
$config->set_default_bool(ApprovalConfig::COMMENTS, false);
Image::$bool_props[] = "approved";
}
public function onPageRequest(PageRequestEvent $event)
@ -77,17 +79,16 @@ class Approval extends Extension
case "approve_all":
$database->set_timeout(300000); // These updates can take a little bit
$database->execute(
$database->scoreql_to_sql(
"UPDATE images SET approved = SCORE_BOOL_Y, approved_by_id = :approved_by_id WHERE approved = SCORE_BOOL_N"
),
["approved_by_id"=>$user->id]
"UPDATE images SET approved = :true, approved_by_id = :approved_by_id WHERE approved = :false",
["approved_by_id"=>$user->id, "true"=>true, "false"=>false]
);
break;
case "disapprove_all":
$database->set_timeout(300000); // These updates can take a little bit
$database->execute($database->scoreql_to_sql(
"UPDATE images SET approved = SCORE_BOOL_N, approved_by_id = NULL WHERE approved = SCORE_BOOL_Y"
));
$database->execute(
"UPDATE images SET approved = :false, approved_by_id = NULL WHERE approved = :true",
["true"=>true, "false"=>false]
);
break;
default:
@ -171,10 +172,8 @@ class Approval extends Extension
global $database, $user;
$database->execute(
$database->scoreql_to_sql(
"UPDATE images SET approved = SCORE_BOOL_Y, approved_by_id = :approved_by_id WHERE id = :id AND approved = SCORE_BOOL_N"
),
["approved_by_id"=>$user->id, "id"=>$image_id]
"UPDATE images SET approved = :true, approved_by_id = :approved_by_id WHERE id = :id AND approved = :false",
["approved_by_id"=>$user->id, "id"=>$image_id, "true"=>true, "false"=>false]
);
}
@ -183,10 +182,8 @@ class Approval extends Extension
global $database;
$database->execute(
$database->scoreql_to_sql(
"UPDATE images SET approved = SCORE_BOOL_N, approved_by_id = NULL WHERE id = :id AND approved = SCORE_BOOL_Y"
),
["id"=>$image_id]
"UPDATE images SET approved = :false, approved_by_id = NULL WHERE id = :id AND approved = :true",
["id"=>$image_id, "true"=>true, "false"=>false]
);
}
@ -244,14 +241,14 @@ class Approval extends Extension
global $database;
if ($this->get_version(ApprovalConfig::VERSION) < 1) {
$database->Execute($database->scoreql_to_sql(
$database->execute($database->scoreql_to_sql(
"ALTER TABLE images ADD COLUMN approved SCORE_BOOL NOT NULL DEFAULT SCORE_BOOL_N"
));
$database->Execute($database->scoreql_to_sql(
$database->execute(
"ALTER TABLE images ADD COLUMN approved_by_id INTEGER NULL"
));
);
$database->Execute("CREATE INDEX images_approved_idx ON images(approved)");
$database->execute("CREATE INDEX images_approved_idx ON images(approved)");
$this->set_version(ApprovalConfig::VERSION, 1);
}
}