@@ -, +, @@ --- C4/Members.pm | 9 +- Koha/Borrower/Modifications.pm | 32 ++++-- .../intranet-tmpl/prog/en/modules/intranet-main.tt | 3 +- .../prog/en/modules/members/members-update.tt | 113 ++++++++++---------- .../opac-tmpl/prog/en/modules/opac-memberentry.tt | 26 ++++- mainpage.pl | 10 ++- members/members-update-do.pl | 2 +- members/members-update.pl | 10 ++- opac/opac-memberentry.pl | 22 ++-- 9 files changed, 138 insertions(+), 89 deletions(-) --- a/C4/Members.pm +++ a/C4/Members.pm @@ -757,10 +757,6 @@ sub AddMember { # generate a proper login if none provided $data{'userid'} = Generate_Userid($data{'borrowernumber'}, $data{'firstname'}, $data{'surname'}) if $data{'userid'} eq ''; - # create a disabled account if no password provided - $data{'password'} = ($data{'password'})? md5_base64($data{'password'}) : '!'; - $data{'borrowernumber'}=InsertInTable("borrowers",\%data); - # add expiration date if it isn't already there unless ( $data{'dateexpiry'} ) { $data{'dateexpiry'} = GetExpiryDate( $data{'categorycode'}, C4::Dates->new()->output("iso") ); @@ -771,6 +767,11 @@ sub AddMember { $data{'dateenrolled'} = C4::Dates->new()->output("iso"); } + # create a disabled account if no password provided + $data{'password'} = ($data{'password'})? md5_base64($data{'password'}) : '!'; + $data{'borrowernumber'}=InsertInTable("borrowers",\%data); + + # mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best. logaction("MEMBERS", "CREATE", $data{'borrowernumber'}, "") if C4::Context->preference("BorrowersLog"); --- a/Koha/Borrower/Modifications.pm +++ a/Koha/Borrower/Modifications.pm @@ -144,17 +144,24 @@ Returns the number of pending modifications for existing borrowers. =cut sub GetPendingModificationsCount { - my ($self) = @_; + my ( $self, $branchcode ) = @_; my $dbh = C4::Context->dbh; my $query = " SELECT COUNT(*) AS count - FROM borrower_modifications - WHERE borrowernumber > 0 + FROM borrower_modifications, borrowers + WHERE borrower_modifications.borrowernumber > 0 + AND borrower_modifications.borrowernumber = borrowers.borrowernumber "; + my @params; + if ($branchcode) { + $query .= " AND borrowers.branchcode = ? "; + push( @params, $branchcode ); + } + my $sth = $dbh->prepare($query); - $sth->execute(); + $sth->execute(@params); my $result = $sth->fetchrow_hashref(); return $result->{'count'}; @@ -169,17 +176,24 @@ Returns an arrayref of hashrefs for all pending modifications for existing borro =cut sub GetPendingModifications { - my ($self) = @_; + my ( $self, $branchcode ) = @_; my $dbh = C4::Context->dbh; my $query = " - SELECT * - FROM borrower_modifications - WHERE borrowernumber > 0 + SELECT borrower_modifications.* + FROM borrower_modifications, borrowers + WHERE borrower_modifications.borrowernumber > 0 + AND borrower_modifications.borrowernumber = borrowers.borrowernumber "; + my @params; + if ($branchcode) { + $query .= " AND borrowers.branchcode = ? "; + push( @params, $branchcode ); + } + my $sth = $dbh->prepare($query); - $sth->execute(); + $sth->execute(@params); my @m; while ( my $row = $sth->fetchrow_hashref() ) { --- a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt @@ -100,6 +100,7 @@
[% IF ( ( CAN_user_tools_moderate_comments && pendingcomments ) || ( CAN_user_tools_moderate_tags && pendingtags ) + || ( CAN_user_borrowers && pending_borrower_modifications ) || ( CAN_user_acquisition && pendingsuggestions ) ) %]
[% IF ( CAN_user_acquisition && pendingsuggestions ) %] @@ -125,7 +126,7 @@ [% END %] - [% IF ( CAN_user_borrowers && pending_borrower_modifications )%] + [% IF ( CAN_user_borrowers && pending_borrower_modifications ) %]
Patrons requesting modifications: [% pending_borrower_modifications %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/members-update.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/members-update.tt @@ -64,72 +64,75 @@
+ [% IF PendingModifications %] +
- - - - - - - - - - - - - - - - +
ActionPatronChanges
ApproveDenyIgnore
+ + + + + + - - [% FOREACH pm IN PendingModifications %] - [% SET borrowernumber = pm.borrowernumber %] - - - + + + + + + + + [% FOREACH pm IN PendingModifications %] + [% SET borrowernumber = pm.borrowernumber %] + + + + - + -
ActionPatronChanges
- - - - - - ApproveDenyIgnore
+ + + + + + - [% borrowers.$borrowernumber.firstname %] [% borrowers.$borrowernumber.surname %] - + [% borrowers.$borrowernumber.firstname %] [% borrowers.$borrowernumber.surname %] + - - - - - - + - - [% END %] - -
FieldFromTo
+ + + + + + - [% FOREACH key IN pm.keys %] - [% IF field_display_names.$key %] - [% IF ( ( pm.$key OR borrowers.$borrowernumber.$key ) && ( pm.$key != borrowers.$borrowernumber.$key ) ) %] - - - - - + [% FOREACH key IN pm.keys %] + [% IF field_display_names.$key %] + [% IF ( ( pm.$key OR borrowers.$borrowernumber.$key ) && ( pm.$key != borrowers.$borrowernumber.$key ) ) %] + + + + + + [% END %] [% END %] [% END %] - [% END %] -
FieldFromTo
[% field_display_names.$key %][% borrowers.$borrowernumber.$key %][% pm.$key %]
[% field_display_names.$key %][% borrowers.$borrowernumber.$key %][% pm.$key %]
-
+
+ + + [% END %] + + -

+

-
+ + [% ELSE %] +

There are no pending patron modifications.

+ [% END %]
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-memberentry.tt +++ a/koha-tmpl/opac-tmpl/prog/en/modules/opac-memberentry.tt @@ -7,7 +7,16 @@ @@ -21,6 +30,9 @@
+ [% UNLESS OPACPatronDetails %] +
To make changes to your record please contact the library.
+ [% END %] [% IF empty_mandatory_fields %]
You have not filled out all required fields. Please fill in all missing fields and resubmit.
@@ -30,7 +42,7 @@
You typed in the wrong characters in the box before submitting. Please try again.
[% END %] -
+ [% UNLESS hidden.defined('branchcode') @@ -134,7 +146,9 @@ - Clear date

+ [% IF OPACPatronDetails %] + Clear date

+ [% END %] [% IF mandatory.defined('dateofbirth') %]Required[% END %] @@ -690,8 +704,10 @@ [% END %] [% IF action == 'edit' %] - - + [% IF OPACPatronDetails %] + + + [% END %] [% ELSE %] --- a/mainpage.pl +++ a/mainpage.pl @@ -32,7 +32,7 @@ use Koha::Borrower::Modifications; my $query = new CGI; -my ( $template, $loggedinuser, $cookie ) = get_template_and_user( +my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( { template_name => "intranet-main.tmpl", query => $query, @@ -50,11 +50,17 @@ $template->param( koha_news_count => $koha_news_count ); +my $branch = + C4::Context->preference("IndependantBranches") + && !$flags->{'superlibrarian'} + ? C4::Context->userenv()->{'branch'} + : undef; + my $pendingcomments = numberofreviews(0); my $pendingtags = get_count_by_tag_status(0); my $pendingsuggestions = CountSuggestion("ASKED"); my $pending_borrower_modifications = - Koha::Borrower::Modifications->GetPendingModificationsCount(); + Koha::Borrower::Modifications->GetPendingModificationsCount( $branch ); $template->param( pendingcomments => $pendingcomments, --- a/members/members-update-do.pl +++ a/members/members-update-do.pl @@ -61,4 +61,4 @@ foreach my $param (@params) { } } -print $query->redirect("/cgi-bin/koha/mainpage.pl"); +print $query->redirect("/cgi-bin/koha/members/members-update.pl"); --- a/members/members-update.pl +++ a/members/members-update.pl @@ -30,7 +30,7 @@ use Koha::Borrower::Modifications; my $query = new CGI; -my ( $template, $loggedinuser, $cookie ) = get_template_and_user( +my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( { template_name => "members/members-update.tmpl", query => $query, @@ -41,8 +41,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); +my $branch = + C4::Context->preference("IndependantBranches") + && !$flags->{'superlibrarian'} + ? C4::Context->userenv()->{'branch'} + : undef; + my $pending_modifications = - Koha::Borrower::Modifications->GetPendingModifications(); + Koha::Borrower::Modifications->GetPendingModifications($branch); my $borrowers; foreach my $pm (@$pending_modifications) { --- a/opac/opac-memberentry.pl +++ a/opac/opac-memberentry.pl @@ -30,11 +30,6 @@ use C4::Branch qw(GetBranchesLoop); my $cgi = new CGI; my $dbh = C4::Context->dbh; -unless ( C4::Context->preference('PatronSelfRegistration') ) { - print $cgi->redirect("/cgi-bin/koha/opac-main.pl"); - exit; -} - my ( $template, $borrowernumber, $cookie ) = get_template_and_user( { template_name => "opac-memberentry.tmpl", @@ -44,11 +39,17 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( } ); +unless ( C4::Context->preference('PatronSelfRegistration') || $borrowernumber ) { + print $cgi->redirect("/cgi-bin/koha/opac-main.pl"); + exit; +} + $template->param( - hidden => GetHiddenFields(), - mandatory => GetMandatoryFields(), - member_titles => GetTitles(), - branches => GetBranchesLoop() + hidden => GetHiddenFields(), + mandatory => GetMandatoryFields(), + member_titles => GetTitles(), + branches => GetBranchesLoop(), + OPACPatronDetails => C4::Context->preference('OPACPatronDetails'), ); my $action = $cgi->param('action') || q{}; @@ -167,7 +168,8 @@ elsif ($borrowernumber) { #Display logged in borrower's data $action = 'edit'; $template->param( - borrower => GetMember( borrowernumber => $borrowernumber ) ); + borrower => GetMember( borrowernumber => $borrowernumber ), + ); } my $captcha = random_string("CCCCC"); --