Adding Log Facility.
authorhdl <hdl>
Fri, 15 Jul 2005 16:10:31 +0000 (16:10 +0000)
committerhdl <hdl>
Fri, 15 Jul 2005 16:10:31 +0000 (16:10 +0000)
Needs Two Update in database...
On more table (action_logs)
And One more syspref Activate_Log, with On|Off values.
Maintainance has been sweeped of previous Log functions
addbiblio.pl contains a sample of code using Log.pm
To be generalized to Authorities, acquisitions, members soon.

C4/Log.pm [new file with mode: 0644]
C4/Maintainance.pm
acqui.simple/addbiblio.pl
updater/updatedatabase

diff --git a/C4/Log.pm b/C4/Log.pm
new file mode 100644 (file)
index 0000000..7727528
--- /dev/null
+++ b/C4/Log.pm
@@ -0,0 +1,99 @@
+package C4::Log; #assumes C4/Log
+
+#package to deal with Logging Actions in DB
+
+
+# Copyright 2000-2002 Katipo Communications
+#
+# 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 2 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., 59 Temple Place,
+# Suite 330, Boston, MA  02111-1307 USA
+
+use strict;
+use C4::Context;
+
+require Exporter;
+
+use vars qw($VERSION @ISA @EXPORT);
+
+# set the version for version checking
+$VERSION = 0.01;
+
+=head1 NAME
+
+C4::Log - Koha Log Facility functions
+
+=head1 SYNOPSIS
+
+  use C4::Log;
+
+=head1 DESCRIPTION
+
+The functions in this module perform various functions in order to log all the operations done on the Database, including deleting and undeleting books, adding/editing members, etc.
+
+=head1 FUNCTIONS
+
+=over 2
+
+=cut
+
+@ISA = qw(Exporter);
+@EXPORT = qw(&logaction &logstatus);
+
+=item logaction
+
+  &logaction($usernumber, $modulename, $actionname, $infos);
+
+Adds a record into action_logs table to report the different changes upon the database
+
+=cut
+#'
+sub logaction{
+  my ($usernumber,$modulename, $actionname, $infos)=@_;
+       my $dbh = C4::Context->dbh;
+       my $sth=$dbh->prepare("Insert into action_logs (timestamp,user,module,action,info) values (now(),?,?,?,?)");
+       $sth->execute($usernumber,$modulename,$actionname,$infos);
+       $sth->finish;
+}
+
+=item logstatus
+
+  &logstatus;
+
+returns True If Activate_Log variable is equal to On
+Activate_Log is a system preference Variable
+=cut
+#'
+sub logstatus{
+  my ($usernumber,$modulename, $actionname, $infos)=@_;
+       my $dbh = C4::Context->dbh;
+       my $sth=$dbh->prepare("select value from systempreferences where variable='Activate_Log'");
+       $sth->execute;
+       my ($var)=$sth->fetchrow;
+       $sth->finish;
+       return ($var eq "On"?"True":"")
+}
+
+END { }       # module clean-up code here (global destructor)
+
+1;
+__END__
+
+=back
+
+=head1 AUTHOR
+
+Koha Developement team <info@koha.org>
+
+=cut
index 107361c..6bcd533 100644 (file)
@@ -215,22 +215,6 @@ sub updatetype{
   $sth->finish;
 }
 
-=item logaction
-
-  &logaction($usernumber, $modulename, $actionname, $infos);
-
-Adds a record into action_logs table to report the different changes upon the database
-
-=cut
-#'
-sub logaction{
-  my ($usernumber,$modulename, $actionname, $infos)=@_;
-  my $dbh = C4::Context->dbh;
-       my $sth=$dbh->prepare("Insert into action_logs (timestamp,user,module,action,info) values (now(),?,?,?,?)");
-       $sth->execute($usernumber,$modulename,$actionname,$infos);
-       $sth->finish;
-}
-
 END { }       # module clean-up code here (global destructor)
 
 1;
index 4120717..7a1f6e8 100755 (executable)
@@ -27,6 +27,7 @@ use C4::Interface::CGI::Output;
 use C4::Biblio;
 use C4::SearchMarc; # also includes Biblio.pm, SearchMarc is used to FindDuplicate
 use C4::Context;
+use C4::Log;
 use C4::Koha; # XXX subfield_is_koha_internal_p
 use HTML::Template;
 use MARC::File::USMARC;
@@ -428,8 +429,10 @@ if ($op eq "addbiblio") {
                if ($is_a_modif) {
                        NEWmodbiblioframework($dbh,$bibid,$frameworkcode);
                        NEWmodbiblio($dbh,$record,$bibid,$frameworkcode);
+                       logaction($loggedinuser,"acqui.simple","modify","biblionumber :$oldbiblionumber\nrecord : ".$record->as_formatted) if (logstatus);
                } else {
                        ($bibid,$oldbibnum,$oldbibitemnum) = NEWnewbiblio($dbh,$record,$frameworkcode);
+                       logaction($loggedinuser,"acqui.simple","add","biblionumber :$oldbibnum\nrecord : ".$record->as_formatted) if (logstatus);
                }
        # now, redirect to additem page
                print $input->redirect("additem.pl?bibid=$bibid&frameworkcode=$frameworkcode");
@@ -482,9 +485,11 @@ if ($op eq "addbiblio") {
 } elsif ($op eq "delete") {
 #------------------------------------------------------------------------------------------------------------------------------
        &NEWdelbiblio($dbh,$bibid);
+       logaction($loggedinuser,"acqui.simple","del","biblionumber :$bibid") if (logstatus);
+       
        print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=/cgi-bin/koha/search.marc/search.pl?type=intranet\"></html>";
        exit;
-#------------------------------------------------------------------------------------------------------------------------------
+#------------------------------------------------------------------------------------------------------------------------------logaction($loggedinuser,"acqui.simple","add","biblionumber :$oldbibnum");
 #------------------------------------------------------------------------------------------------------------------------------
 } else {
 #------------------------------------------------------------------------------------------------------------------------------
index 58dea1c..96e0825 100755 (executable)
@@ -909,6 +909,16 @@ my %tabledata = (
             explanation         => 'show or hide "lost" items in OPAC.',
            type                => 'YesNo',
         },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'Acitvate_Log',
+            value               => 'On',
+           forceupdate         => { 'explanation' => 1,
+                                    'type' => 1},
+            explanation         => 'Turn Log Actions on DB On an Off',
+           type                => 'Choice',
+           options             => 'On|Off'
+        },
     ],
 
 );
@@ -1510,6 +1520,15 @@ $sth->finish;
 exit;
 
 # $Log$
+# Revision 1.108  2005/07/15 16:10:35  hdl
+# Adding Log Facility.
+# Needs Two Update in database...
+# On more table (action_logs)
+# And One more syspref Activate_Log, with On|Off values.
+# Maintainance has been sweeped of previous Log functions
+# addbiblio.pl contains a sample of code using Log.pm
+# To be generalized to Authorities, acquisitions, members soon.
+#
 # Revision 1.107  2005/07/14 09:53:10  hdl
 # Adding a log facility for actions watching.
 # Code to be widely used in order to report data modifications.