Bug 7295: (follow-up) several fixes
authorJulian Maurice <julian.maurice@biblibre.com>
Tue, 17 Jul 2012 08:51:36 +0000 (10:51 +0200)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 31 Oct 2013 16:37:08 +0000 (16:37 +0000)
- List of libraries in basket.pl is now sorted by branch name, not code
- When IndependantBranches is ON, user has only the possibility to set
  basket branch to its own branch, or to no branch at all.
- When basket do not belong to any branch, selected branch by default is
  connection branch (was 'no branch')
- added id attributes to both added li elements
- change description of 'order_manage_all' permission to make it
  clearer.
- remove Test::MockModule dependency

Signed-off-by: Sonia Bouis <sonia.bouis@univ-lyon3.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
13 files changed:
acqui/basket.pl
installer/data/mysql/de-DE/mandatory/userpermissions.sql
installer/data/mysql/en/mandatory/userpermissions.sql
installer/data/mysql/es-ES/mandatory/userpermissions.sql
installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql
installer/data/mysql/it-IT/necessari/userpermissions.sql
installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql
installer/data/mysql/pl-PL/mandatory/userpermissions.sql
installer/data/mysql/ru-RU/mandatory/permissions_and_user_flags.sql
installer/data/mysql/uk-UA/mandatory/permissions_and_user_flags.sql
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
t/Acquisition/CanUserManageBasket.t

index 05f419e..e8b4199 100755 (executable)
@@ -217,6 +217,7 @@ if ( $op eq 'delete_confirm' ) {
     print $query->redirect("/cgi-bin/koha/acqui/basket.pl?basketno=$basketno");
     exit;
 } else {
+    my @branches_loop;
     # get librarian branch...
     if ( C4::Context->preference("IndependentBranches") ) {
         my $userenv = C4::Context->userenv;
@@ -230,16 +231,32 @@ if ( $op eq 'delete_confirm' ) {
                 exit 1;
             }
         }
-    }
-    # get branches
-    my $branches = C4::Branch::GetBranches;
-    my @branches_loop;
-    foreach my $branch (sort keys %$branches) {
-        push @branches_loop, {
-            branchcode => $branch,
-            branchname => $branches->{$branch}->{branchname},
-            selected => (defined $basket->{branch} and $branch eq $basket->{branch}) ? 1 : 0
-        };
+        if (!defined $basket->{branch} or $basket->{branch} eq $userenv->{branch}) {
+            push @branches_loop, {
+                branchcode => $userenv->{branch},
+                branchname => $userenv->{branchname},
+                selected => 1,
+            };
+        }
+    } else {
+        # get branches
+        my $branches = C4::Branch::GetBranches;
+        my @branchcodes = sort {
+            $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname}
+        } keys %$branches;
+        foreach my $branch (@branchcodes) {
+            my $selected = 0;
+            if (defined $basket->{branch}) {
+                $selected = 1 if $branch eq $basket->{branch};
+            } else {
+                $selected = 1 if $branch eq C4::Context->userenv->{branch};
+            }
+            push @branches_loop, {
+                branchcode => $branch,
+                branchname => $branches->{$branch}->{branchname},
+                selected => $selected
+            };
+        }
     }
 
 #if the basket is closed,and the user has the permission to edit basketgroups, display a list of basketgroups
@@ -351,6 +368,7 @@ if ( $op eq 'delete_confirm' ) {
     $template->param(
         basketno             => $basketno,
         basketname           => $basket->{'basketname'},
+        basketbranchname     => C4::Branch::GetBranchName($basket->{branch}),
         basketnote           => $basket->{note},
         basketbooksellernote => $basket->{booksellernote},
         basketcontractno     => $basket->{contractnumber},
index 857b1a7..ab02a93 100644 (file)
@@ -16,7 +16,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Konten verändern (keine Neuen anlegen, aber Bestehende ändern)'),
    (11, 'planning_manage', 'Etatplanung verwalten'),
    (11, 'order_manage', 'Bestellungen verwalten'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Bestellgruppen vewalten'),
    (11, 'order_receive', 'Lieferungen verwalten'),
    (11, 'budget_add_del', 'Konten hinzufügen/ändern, aber bestehende nicht ändern'),
index 9b59c25..50387c5 100644 (file)
@@ -16,7 +16,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
    (11, 'planning_manage', 'Manage budget plannings'),
    (11, 'order_manage', 'Manage orders & basket'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Manage orders & basketgroups'),
    (11, 'order_receive', 'Manage orders & basket'),
    (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
index 9b59c25..50387c5 100644 (file)
@@ -16,7 +16,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
    (11, 'planning_manage', 'Manage budget plannings'),
    (11, 'order_manage', 'Manage orders & basket'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Manage orders & basketgroups'),
    (11, 'order_receive', 'Manage orders & basket'),
    (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
index e385d4e..1d77b85 100644 (file)
@@ -33,7 +33,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modifier les budgets (impossible de créer les lignes, mais possible de modifier celles qui existent'),
    (11, 'planning_manage', 'Gérer de la planification des budgets'),
    (11, 'order_manage', 'Gérer les commandes et les paniers'),
-   (11, 'order_manage_all', 'Gérer toutes les commandes et panier'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Gérer les commandes et les bons de commande'),
    (11, 'order_receive', 'Gérer les réceptions'),
    (11, 'budget_add_del', 'Ajouter et supprimer les budgets (mais pas modifier)'),
index 292c6b4..ac90a7d 100644 (file)
@@ -18,7 +18,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modifica budget (non li crea ma modifica gli esistenti)'),
    (11, 'planning_manage', 'Intervieni sulla pianificazione dei budgets'),
    (11, 'order_manage', 'Gestisci ordini e raccoglitori'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Gestisci ordini e raccoglitori raggruppati'),
    (11, 'order_receive', 'Gestisci arrivi'),
    (11, 'budget_add_del', 'Aggiungi e cancella budgets (senza modificarli)'),
index 3217c30..4371bfb 100644 (file)
@@ -36,7 +36,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Endre budsjetter (kan ikke legge til kontolinjer, men endre eksisterende)'),
    (11, 'planning_manage', 'Administrere budsjettplaner'),
    (11, 'order_manage', 'Administrere bestillinger og kurver'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Administrere bestillinger og kurv-grupper'),
    (11, 'order_receive', 'Administrere bestillinger og kurver'),
    (11, 'budget_add_del', 'Legge til og slette budsjetter (men ikke endre budsjetter)'),
index fa356b8..496e69b 100644 (file)
@@ -16,7 +16,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
    (11, 'planning_manage', 'Manage budget plannings'),
    (11, 'order_manage', 'Manage orders & basket'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Manage orders & basketgroups'),
    (11, 'order_receive', 'Manage orders & basket'),
    (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
index 553d958..f7cb905 100644 (file)
@@ -42,7 +42,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
    (11, 'planning_manage', 'Manage budget plannings'),
    (11, 'order_manage', 'Manage orders & basket'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Manage orders & basketgroups'),
    (11, 'order_receive', 'Manage orders & basket'),
    (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
index 1063c03..347296c 100644 (file)
@@ -42,7 +42,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
    (11, 'planning_manage', 'Manage budget plannings'),
    (11, 'order_manage', 'Manage orders & basket'),
-   (11, 'order_manage_all', 'Manage all orders & baskets'),
+   (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them'),
    (11, 'group_manage', 'Manage orders & basketgroups'),
    (11, 'order_receive', 'Manage orders & basket'),
    (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
index 283c716..4310259 100755 (executable)
@@ -7678,7 +7678,7 @@ if ( CheckVersion($DBversion) ) {
     ");
     $dbh->do("
         INSERT INTO permissions (module_bit, code, description)
-        VALUES (11, 'order_manage_all', 'Manage all orders & baskets')
+        VALUES (11, 'order_manage_all', 'Manage all orders and baskets, regardless of restrictions on them')
     ");
 
     print "Upgrade to $DBversion done (Add branch and users list to baskets. "
index 0c4453a..8e9322a 100644 (file)
                 [% IF ( deliveryplace ) %]<li><span class="label">Delivery place:</span> [% deliveryplace %]</li>[% END %]
                 [% IF ( billingplace ) %]<li><span class="label">Billing place:</span> [% billingplace %]</li>[% END %]
                 [% IF ( authorisedbyname ) %]<li><span class="label">Created by:</span>  [% authorisedbyname %]</li>[% END %]
-                <li>
+                <li id="managedby">
                     <form action="" method="post">
                         <span class="label">Managed by:</span>
                         <div style="float:left">
                         </div>
                     </form>
                 </li>
-                <li>
-                    <form action="" method="post">
-                        <span class="label">Branch:</span>
-                        <select id="branch" name="branch">
-                            <option value="">No branch</option>
-                            [% FOREACH branch IN branches_loop %]
-                                [% IF (branch.selected) %]
-                                    <option selected="selected" value="[% branch.branchcode %]"> [% branch.branchname %]</option>
-                                [% ELSE %]
-                                    <option value="[% branch.branchcode %]"> [% branch.branchname %]</option>
+                <li id="branch">
+                    <span class="label">Branch:</span>
+                    [% IF basketbranchname %]
+                        [% basketbranchname %]
+                    [% ELSE %]
+                        No branch
+                    [% END %]
+                    [% IF branches_loop.size %]
+                        <form action="" method="post">
+                            <select id="branch" name="branch">
+                                <option value="">(no branch)</option>
+                                [% FOREACH branch IN branches_loop %]
+                                    [% IF (branch.selected) %]
+                                        <option selected="selected" value="[% branch.branchcode %]"> [% branch.branchname %]</option>
+                                    [% ELSE %]
+                                        <option value="[% branch.branchcode %]"> [% branch.branchname %]</option>
+                                    [% END %]
                                 [% END %]
-                            [% END %]
-                        </select>
-                        <input type="hidden" id="basketno" name="basketno" value="[% basketno %]" />
-                        <input type="hidden" id="op" name="op" value="mod_branch" />
-                        <input type="submit" value="Save" />
-                    </form>
+                            </select>
+                            <input type="hidden" id="basketno" name="basketno" value="[% basketno %]" />
+                            <input type="hidden" id="op" name="op" value="mod_branch" />
+                            <input type="submit" value="Change" />
+                        </form>
+                    [% END %]
                 </li>
                 [% IF ( creationdate ) %]<li><span class="label">Opened on:</span>  [% creationdate | $KohaDates %]</li>[% END %]
                 [% IF ( closedate ) %]<li><span class="label">Closed on:</span> [% closedate | $KohaDates %]</li>[% END %]
index e1855c3..0733474 100644 (file)
@@ -1,15 +1,15 @@
 #!/usr/bin/perl
 
 use Modern::Perl;
-use Test::MockModule;
 use Test::More tests => 42;
 
 use C4::Acquisition;
 
-my $C4_Acquisition_module = new Test::MockModule('C4::Acquisition');
-$C4_Acquisition_module->mock('GetBasketUsers', \&Mock_GetBasketUsers);
-my $C4_Context_module = new Test::MockModule('C4::Context');
-$C4_Context_module->mock('preference', \&Mock_preference);
+# Avoid "redefined subroutine" warnings
+local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ };
+
+*C4::Acquisition::GetBasketUsers = \&Mock_GetBasketUsers;
+*C4::Context::preference = \&Mock_preference;
 
 my $AcqViewBaskets;
 my %basketusers = (