From 1ed59cbe5565ca493702691d3a8811f4ebc4da17 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Fri, 13 Jul 2018 08:55:32 -0400 Subject: [PATCH] Bug 21073: Add new table, schema and classes Signed-off-by: Agustin Moyano Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kyle M Hall Signed-off-by: Martin Renvoize --- Koha/Plugins/Method.pm | 44 ++++++++++++ Koha/Plugins/Methods.pm | 50 ++++++++++++++ Koha/Schema/Result/PluginMethod.pm | 67 +++++++++++++++++++ .../mysql/atomicupdate/plugin_methods.perl | 18 +++++ installer/data/mysql/kohastructure.sql | 10 +++ 5 files changed, 189 insertions(+) create mode 100644 Koha/Plugins/Method.pm create mode 100644 Koha/Plugins/Methods.pm create mode 100644 Koha/Schema/Result/PluginMethod.pm create mode 100644 installer/data/mysql/atomicupdate/plugin_methods.perl diff --git a/Koha/Plugins/Method.pm b/Koha/Plugins/Method.pm new file mode 100644 index 0000000000..83c2d70dfe --- /dev/null +++ b/Koha/Plugins/Method.pm @@ -0,0 +1,44 @@ +package Koha::Plugins::Method; + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 3 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; + +use Carp; + +use Koha::Database; + +use base qw(Koha::Object); + +=head1 NAME + +Koha::Plugin::Method - Koha Plugin Method Object class + +=head1 API + +=head2 Class Methods + +=cut + +=head3 type + +=cut + +sub _type { + return 'PluginMethod'; +} + +1; diff --git a/Koha/Plugins/Methods.pm b/Koha/Plugins/Methods.pm new file mode 100644 index 0000000000..af56308ba6 --- /dev/null +++ b/Koha/Plugins/Methods.pm @@ -0,0 +1,50 @@ +package Koha::Plugins::Methods; + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 3 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; + +use Carp; + +use Koha::Database; + +use Koha::City; + +use base qw(Koha::Objects); + +=head1 NAME + +Koha::Plugin::Methods - Koha City Object set class + +=head1 API + +=head2 Class Methods + +=cut + +=head3 type + +=cut + +sub _type { + return 'PluginMethod'; +} + +sub object_class { + return 'Koha::Plugin::Method'; +} + +1; diff --git a/Koha/Schema/Result/PluginMethod.pm b/Koha/Schema/Result/PluginMethod.pm new file mode 100644 index 0000000000..a36cfb0ba0 --- /dev/null +++ b/Koha/Schema/Result/PluginMethod.pm @@ -0,0 +1,67 @@ +use utf8; +package Koha::Schema::Result::PluginMethod; + +# Created by DBIx::Class::Schema::Loader +# DO NOT MODIFY THE FIRST PART OF THIS FILE + +=head1 NAME + +Koha::Schema::Result::PluginMethod + +=cut + +use strict; +use warnings; + +use base 'DBIx::Class::Core'; + +=head1 TABLE: C + +=cut + +__PACKAGE__->table("plugin_methods"); + +=head1 ACCESSORS + +=head2 plugin_class + + data_type: 'varchar' + is_nullable: 0 + size: 255 + +=head2 plugin_method + + data_type: 'varchar' + is_nullable: 0 + size: 255 + +=cut + +__PACKAGE__->add_columns( + "plugin_class", + { data_type => "varchar", is_nullable => 0, size => 255 }, + "plugin_method", + { data_type => "varchar", is_nullable => 0, size => 255 }, +); + +=head1 PRIMARY KEY + +=over 4 + +=item * L + +=item * L + +=back + +=cut + +__PACKAGE__->set_primary_key("plugin_class", "plugin_method"); + + +# Created by DBIx::Class::Schema::Loader v0.07046 @ 2018-07-13 12:37:57 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:koGk3Dh0wkslqYPUqUcK0w + + +# You can replace this text with custom code or comments, and it will be preserved on regeneration +1; diff --git a/installer/data/mysql/atomicupdate/plugin_methods.perl b/installer/data/mysql/atomicupdate/plugin_methods.perl new file mode 100644 index 0000000000..03f80a9d11 --- /dev/null +++ b/installer/data/mysql/atomicupdate/plugin_methods.perl @@ -0,0 +1,18 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + + $dbh->do(q{ + CREATE TABLE IF NOT EXISTS plugin_methods ( + plugin_class varchar(255) NOT NULL, + plugin_method varchar(255) NOT NULL, + PRIMARY KEY ( `plugin_class` (191), `plugin_method` (191) ) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + }); + + require Koha::Plugins; + Koha::Plugins->new()->InstallPlugins; + + # Always end with this (adjust the bug info) + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug XXXXX - description)\n"; +} diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index e3d0930369..2aa2412379 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3535,6 +3535,16 @@ CREATE TABLE patron_consent ( FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +-- +-- Table structure for table 'plugin_data' +-- + +CREATE TABLE IF NOT EXISTS plugin_methods ( + plugin_class varchar(255) NOT NULL, + plugin_method varchar(255) NOT NULL, + PRIMARY KEY ( `plugin_class` (191), `plugin_method` (191) ) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + -- -- Table structure for table `patron_lists` -- -- 2.39.5