From 012f5d9da8dd269229210c75cd97cd6e473eb236 Mon Sep 17 00:00:00 2001 From: Shish Date: Thu, 30 Jan 2020 14:50:30 +0000 Subject: [PATCH] sqlite support for Approvals --- ext/approval/info.php | 1 - ext/approval/main.php | 35 ++++++++++++++++------------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/ext/approval/info.php b/ext/approval/info.php index 22f47f7c..03ad7631 100644 --- a/ext/approval/info.php +++ b/ext/approval/info.php @@ -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]; } diff --git a/ext/approval/main.php b/ext/approval/main.php index 417a279b..f2a97bcf 100644 --- a/ext/approval/main.php +++ b/ext/approval/main.php @@ -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); } }