Skip to content
  • Fridolin SOMERS's avatar
    Bug 20953: Prevent several discharge requests on OPAC · d421cfae
    Fridolin SOMERS authored and Wm. Nick Clemens's avatar Wm. Nick Clemens committed
    
    
    On OPAC, a user can requested a discharge even if one is already pending.
    This generates several pending discharges in staff interface that can not be deleted.
    
    This is because request operation leads to page 'opac-discharge.pl?op=request' and user can refresh this page performing a new request.
    
    Perl code must check that operation is allowed.
    
    Patch reoganised the code so that the following FIXME is obsolete :
      'FIXME looks like $available is not needed'
    Patch also replaces 'op' arg test to also check undef : input->param("op") // ''
    
    Test plan :
    1) Set system preference 'useDischarge' to 'Allow'
    2) Choose a patron without checkouts nor fines nor restrictions
    3) Log at OPAC and go to patron page /cgi-bin/koha/opac-user.pl
    4) Click on 'ask for a discharge' tab
       => You see /cgi-bin/koha/opac-discharge.pl
          with text 'What is a discharge? ...'
    5) Click on 'Ask for a discharge' link
       => You see /cgi-bin/koha/opac-discharge.pl?op=request
          with text 'Your discharge request has been sent ...'
    6) In a new browser tab/page, go to intranet on /cgi-bin/koha/members/discharges.pl
       => You see one discharge requets for the patron
    7) Come back to OPAC and refresh page
       => You see /cgi-bin/koha/opac-discharge.pl
       with text 'Your discharge will be available on this page within a few days.'
    8) Come back to intranet and refresh /cgi-bin/koha/opac-discharge.pl
       => There is still one requets for the patron
    9) Come back to OPAC and enter URL /cgi-bin/koha/opac-discharge.pl?op=get
       => You see /cgi-bin/koha/opac-discharge.pl
          with text 'Your discharge will be available on this page within a few days.'
    10) Come back to intranet and refresh /cgi-bin/koha/opac-discharge.pl
       => There is still one requets for the patron
    11) Click on 'allow' on patron discharge request
    12) Come back to OPAC and refresh /cgi-bin/koha/opac-discharge.pl
        => You see link 'Get your discharge'
    13) enter URL /cgi-bin/koha/opac-discharge.pl?op=request
        => You see same page and no new discharge requets is created
    14) Come back to intranet on patron details page
    15) Remove the discharge restriction
    16) Come back to OPAC and refresh /cgi-bin/koha/opac-discharge.pl
        => You see text 'What is a discharge?...'
    17) enter URL /cgi-bin/koha/opac-discharge.pl?op=get
        => You see same page and no new discharge requets is created
    
    Signed-off-by: default avatarCharles Farmer <charles.farmer@inLibro.com>
    
    Signed-off-by: default avatarKatrin Fischer <katrin.fischer.83@web.de>
    
    Signed-off-by: default avatarNick Clemens <nick@bywatersolutions.com>
    d421cfae