[Koha-patches] [PATCH] [SIGNED-OFF] Bug 5811: Add sysprefs to control overriding fines

Chris Cormack chrisc at catalyst.net.nz
Sat Mar 5 05:29:36 CET 2011


Yeah doesn't look like a 3.2er to me, db changes to add a new feature.

Jared Camins-Esakov <jcamins at cpbibliography.com> wrote:

>I'm not sure this should go in 3.2.x, but, if you think it should, I'll
>resubmit one that applies.
>
>On Fri, Mar 4, 2011 at 7:09 PM, Chris Nighswonger <
>cnighswonger at foundations.edu> wrote:
>
>> This patch does not apply cleanly to 3.2.x. Please fixup and resubmit with
>> [3.2.x] in the subject line.
>>
>> Kind Regards,
>> Chris
>>
>> # On branch 3.2.x
>> # Your branch is ahead of 'origin/3.2.x' by 3 commits.
>> #
>> # Changes to be committed:
>> #   (use "git reset HEAD <file>..." to unstage)
>> #
>> #       modified:   C4/Circulation.pm
>> #       modified:   C4/Members.pm
>> #       modified:
>> koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
>> #
>> # Unmerged paths:
>> #   (use "git reset HEAD <file>..." to unstage)
>> #   (use "git add/rm <file>..." as appropriate to mark resolution)
>> #
>> #       both modified:
>> installer/data/mysql/de-DE/mandatory/sysprefs.sql
>> #       both modified:      installer/data/mysql/en/mandatory/sysprefs.sql
>> #       both modified:
>> installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
>> #       both modified:
>> installer/data/mysql/it-IT/necessari/sysprefs.sql
>> #       both modified:
>> installer/data/mysql/pl-PL/mandatory/sysprefs.sql
>> #       both modified:
>> installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
>> #       both modified:
>> installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
>> #       both modified:      installer/data/mysql/updatedatabase.pl
>> #
>>
>>
>>
>>
>> On Sun, Feb 20, 2011 at 9:55 PM, Nicole C. Engard <
>> nengard at bywatersolutions.com> wrote:
>>
>>> From: Jared Camins-Esakov <jcamins at bywatersolutions.com>
>>>
>>> This patch adds two sysprefs to allow libraries more fine-grained control
>>> over
>>> when fines can and can't be overridden. The two sysprefs are:
>>> * AllFinesNeedOverride - when this syspref is set to "Require" (default)
>>> any
>>>    fine will require a staffmember to override the fine in order to check
>>> out a
>>>    book.  When set to "Don't require," fines below noissuescharge will not
>>> need
>>>    any override.
>>> * AllowFineOverride - when this syspref is set to "Allow," staff will be
>>> able to
>>>    override fines that are above noissuescharge. When set to "Don't allow"
>>>    (default), staff will not be able to check out items to patrons with
>>> fines
>>>    greater than noissuescharge.
>>>
>>> Signed-off-by: Nicole C. Engard <nengard at bywatersolutions.com>
>>> ---
>>>  C4/Circulation.pm                                  |   17
>>> ++++++++++++-----
>>>  C4/Members.pm                                      |    2 +-
>>>  installer/data/mysql/de-DE/mandatory/sysprefs.sql  |    2 ++
>>>  installer/data/mysql/en/mandatory/sysprefs.sql     |    2 ++
>>>  .../1-Obligatoire/unimarc_standard_systemprefs.sql |    4 +++-
>>>  installer/data/mysql/it-IT/necessari/sysprefs.sql  |    4 +++-
>>>  installer/data/mysql/pl-PL/mandatory/sysprefs.sql  |    4 +++-
>>>  ...m_preferences_full_optimal_for_install_only.sql |    4 +++-
>>>  ...m_preferences_full_optimal_for_install_only.sql |    4 +++-
>>>  installer/data/mysql/updatedatabase.pl             |    8 ++++++++
>>>  .../en/modules/admin/preferences/circulation.pref  |   12 ++++++++++++
>>>  11 files changed, 52 insertions(+), 11 deletions(-)
>>>
>>> diff --git a/C4/Circulation.pm b/C4/Circulation.pm
>>> index f7846ac..2b4e86c 100644
>>> --- a/C4/Circulation.pm
>>> +++ b/C4/Circulation.pm
>>> @@ -730,17 +730,24 @@ sub CanBookBeIssued {
>>>     # DEBTS
>>>     my ($amount) =
>>>       C4::Members::GetMemberAccountRecords( $borrower->{'borrowernumber'},
>>> '' && $duedate->output('iso') );
>>> +    my $amountlimit = C4::Context->preference("noissuescharge");
>>> +    my $allowfineoverride = C4::Context->preference("AllowFineOverride");
>>> +    my $allfinesneedoverride =
>>> C4::Context->preference("AllFinesNeedOverride");
>>>     if ( C4::Context->preference("IssuingInProcess") ) {
>>> -        my $amountlimit = C4::Context->preference("noissuescharge");
>>> -        if ( $amount > $amountlimit && !$inprocess ) {
>>> +        if ( $amount > $amountlimit && !$inprocess &&
>>> !$allowfineoverride) {
>>>             $issuingimpossible{DEBT} = sprintf( "%.2f", $amount );
>>> -        }
>>> -        elsif ( $amount > 0 && $amount <= $amountlimit && !$inprocess ) {
>>> +        } elsif ( $amount > $amountlimit && !$inprocess &&
>>> $allowfineoverride) {
>>> +            $needsconfirmation{DEBT} = sprintf( "%.2f", $amount );
>>> +        } elsif ( $allfinesneedoverride && $amount > 0 && $amount <=
>>> $amountlimit && !$inprocess ) {
>>>             $needsconfirmation{DEBT} = sprintf( "%.2f", $amount );
>>>         }
>>>     }
>>>     else {
>>> -        if ( $amount > 0 ) {
>>> +        if ( $amount > $amountlimit && $allowfineoverride ) {
>>> +            $needsconfirmation{DEBT} = sprintf( "%.2f", $amount );
>>> +        } elsif ( $amount > $amountlimit && !$allowfineoverride) {
>>> +            $issuingimpossible{DEBT} = sprintf( "%.2f", $amount );
>>> +        } elsif ( $amount > 0 && $allfinesneedoverride ) {
>>>             $needsconfirmation{DEBT} = sprintf( "%.2f", $amount );
>>>         }
>>>     }
>>> diff --git a/C4/Members.pm b/C4/Members.pm
>>> index fafc99b..a292054 100644
>>> --- a/C4/Members.pm
>>> +++ b/C4/Members.pm
>>> @@ -444,7 +444,7 @@ sub patronflags {
>>>         my $noissuescharge = C4::Context->preference("noissuescharge") ||
>>> 5;
>>>         $flaginfo{'message'} = sprintf "Patron owes \$%.02f", $amount;
>>>         $flaginfo{'amount'}  = sprintf "%.02f", $amount;
>>> -        if ( $amount > $noissuescharge ) {
>>> +        if ( $amount > $noissuescharge &&
>>> !C4::Context->preference("AllowFineOverride") ) {
>>>             $flaginfo{'noissues'} = 1;
>>>         }
>>>         $flags{'CHARGES'} = \%flaginfo;
>>> diff --git a/installer/data/mysql/de-DE/mandatory/sysprefs.sql
>>> b/installer/data/mysql/de-DE/mandatory/sysprefs.sql
>>> index 02511d8..221017a 100644
>>> --- a/installer/data/mysql/de-DE/mandatory/sysprefs.sql
>>> +++ b/installer/data/mysql/de-DE/mandatory/sysprefs.sql
>>> @@ -285,3 +285,5 @@ INSERT INTO systempreferences
>>> (variable,value,explanation,options,type) VALUES('
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql
>>> b/installer/data/mysql/en/mandatory/sysprefs.sql
>>> index 0b75e98..363774d 100644
>>> --- a/installer/data/mysql/en/mandatory/sysprefs.sql
>>> +++ b/installer/data/mysql/en/mandatory/sysprefs.sql
>>> @@ -285,3 +285,5 @@ INSERT INTO `systempreferences`
>>> (variable,value,explanation,options,type) VALUES
>>>  INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>>  INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git
>>> a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
>>> b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
>>> index 757f255..9386fee 100644
>>> ---
>>> a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
>>> +++
>>> b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
>>> @@ -286,4 +286,6 @@ INSERT INTO systempreferences
>>> (variable,value,explanation,options,type) VALUES('
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES('OpacPublic',1,'Turn on/off public OPAC',NULL,'YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>> -INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> \ No newline at end of file
>>> +INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git a/installer/data/mysql/it-IT/necessari/sysprefs.sql
>>> b/installer/data/mysql/it-IT/necessari/sysprefs.sql
>>> index 79c469c..49da6ce 100644
>>> --- a/installer/data/mysql/it-IT/necessari/sysprefs.sql
>>> +++ b/installer/data/mysql/it-IT/necessari/sysprefs.sql
>>> @@ -271,4 +271,6 @@ INSERT INTO systempreferences
>>> (variable,value,explanation,options,type) VALUES('
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES('OpacPublic',1,'Turn on/off public OPAC',NULL,'YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>> -INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> \ No newline at end of file
>>> +INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
>>> b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
>>> index 8689c4c..5715de1 100644
>>> --- a/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
>>> +++ b/installer/data/mysql/pl-PL/mandatory/sysprefs.sql
>>> @@ -283,4 +283,6 @@ INSERT INTO systempreferences
>>> (variable,value,explanation,options,type) VALUES('
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES('OpacPublic',1,'Turn on/off public OPAC',NULL,'YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>> -INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> \ No newline at end of file
>>> +INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git
>>> a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> index c862e60..2b38cfa 100644
>>> ---
>>> a/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> +++
>>> b/installer/data/mysql/ru-RU/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> @@ -338,4 +338,6 @@ INSERT INTO systempreferences
>>> (variable,value,explanation,options,type) VALUES('
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES('OpacPublic',1,'Turn on/off public OPAC',NULL,'YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>> -INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> \ No newline at end of file
>>> +INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git
>>> a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> index 82e285b..874a6e4 100644
>>> ---
>>> a/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> +++
>>> b/installer/data/mysql/uk-UA/mandatory/system_preferences_full_optimal_for_install_only.sql
>>> @@ -363,4 +363,6 @@ INSERT INTO systempreferences
>>> (variable,value,explanation,options,type) VALUES('
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES('OpacPublic',1,'Turn on/off public OPAC',NULL,'YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesLocation','1','Use the item location when finding
>>> items for the shelf browser.','1','YesNo');
>>>  INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesHomeBranch','1','Use the item home branch when
>>> finding items for the shelf browser.','1','YesNo');
>>> -INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> \ No newline at end of file
>>> +INSERT INTO systempreferences (variable,value,explanation,options,type)
>>> VALUES ('ShelfBrowserUsesCcode','1','Use the item collection code when
>>> finding items for the shelf browser.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo');
>>> +INSERT INTO `systempreferences` (variable,value,explanation,options,type)
>>> VALUES ('AllFinesNeedOverride','1','If on, staff will be asked to override
>>> every fine, even if it is below noissuescharge.','0','YesNo');
>>> diff --git a/installer/data/mysql/updatedatabase.plb/installer/data/mysql/
>>> updatedatabase.pl
>>> index 31aa998..c297810 100755
>>> --- a/installer/data/mysql/updatedatabase.pl
>>> +++ b/installer/data/mysql/updatedatabase.pl
>>> @@ -4014,6 +4014,14 @@ if (C4::Context->preference("Version") <
>>> TransformToNum($DBversion)) {
>>>     SetVersion ($DBversion);
>>>  }
>>>
>>> +$DBversion = '3.03.00.XXX';
>>> +if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
>>> +    $dbh->do("INSERT INTO `systempreferences`
>>> (variable,value,explanation,options,type) VALUES
>>> ('AllowFineOverride','0','If on, staff will be able to issue books to
>>> patrons with fines greater than noissuescharge.','0','YesNo')");
>>> +    $dbh->do("INSERT INTO `systempreferences`
>>> (variable,value,explanation,options,type) VALUES
>>> ('AllFinesNeedOverride','1','If on, staff will be asked to override every
>>> fine, even if it is below noissuescharge.','0','YesNo')");
>>> +    print "Upgrade to $DBversion done (Bug 5811: Add sysprefs controlling
>>> overriding fines)\n";
>>> +    SetVersion($DBversion);
>>> +};
>>> +
>>>  =head1 FUNCTIONS
>>>
>>>  =head2 DropAllForeignKeys($table)
>>> diff --git
>>> a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
>>> b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
>>> index 3742b23..87769b6 100644
>>> ---
>>> a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
>>> +++
>>> b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
>>> @@ -86,6 +86,18 @@ Circulation:
>>>                   no: "Don't allow"
>>>             - staff to manually override the renewal limit and renew a
>>> checkout when it would go over the renewal limit.
>>>         -
>>> +            - pref: AllFinesNeedOverride
>>> +              choices:
>>> +                  yes: Require
>>> +                  no: "Don't require"
>>> +            - staff to manually override all fines, even fines less than
>>> noissuescharge.
>>> +        -
>>> +            - pref: AllowFineOverride
>>> +              choices:
>>> +                  yes: Allow
>>> +                  no: "Don't allow"
>>> +            - staff to manually override and check out items to patrons
>>> who have more than noissuescharge in fines.
>>> +        -
>>>             - pref: InProcessingToShelvingCart
>>>               choices:
>>>                   yes: Move
>>> --
>>> 1.7.2.3
>>>
>>> _______________________________________________
>>> Koha-patches mailing list
>>> Koha-patches at lists.koha-community.org
>>> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
>>> website : http://www.koha-community.org/
>>> git : http://git.koha-community.org/
>>> bugs : http://bugs.koha-community.org/
>>>
>>
>>
>> _______________________________________________
>> Koha-patches mailing list
>> Koha-patches at lists.koha-community.org
>> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
>> website : http://www.koha-community.org/
>> git : http://git.koha-community.org/
>> bugs : http://bugs.koha-community.org/
>>
>
>
>
>-- 
>Jared Camins-Esakov
>Freelance bibliographer, C & P Bibliography Services, LLC
>(phone) +1 (917) 727-3445
>(e-mail) jcamins at cpbibliography.com
>(web) http://www.cpbibliography.com/
>
>_______________________________________________
>Koha-patches mailing list
>Koha-patches at lists.koha-community.org
>http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
>website : http://www.koha-community.org/
>git : http://git.koha-community.org/
>bugs : http://bugs.koha-community.org/


More information about the Koha-patches mailing list