[open-ils-commits] ***SPAM*** [GIT] Evergreen ILS branch master updated. 188537250069e7dd8c9624f674e03eadfd6d8db7

Evergreen Git git at git.evergreen-ils.org
Mon Sep 23 17:51:42 EDT 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  188537250069e7dd8c9624f674e03eadfd6d8db7 (commit)
       via  5ef27d774bd41a2357c303c75015cfc4815b4609 (commit)
       via  a0ee19f899f038594fea496c2032b9fbeaffa63d (commit)
      from  6eb667c865fe1c9557771a8975a749294b259092 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 188537250069e7dd8c9624f674e03eadfd6d8db7
Author: Bill Erickson <berick at esilibrary.com>
Date:   Fri Aug 16 09:06:44 2013 -0400

    LP 1212456 Release Notes
    
    Signed-off-by: Bill Erickson <berick at esilibrary.com>
    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/docs/RELEASE_NOTES_NEXT/Client/customize-items-out.txt b/docs/RELEASE_NOTES_NEXT/Client/customize-items-out.txt
new file mode 100644
index 0000000..b83d98f
--- /dev/null
+++ b/docs/RELEASE_NOTES_NEXT/Client/customize-items-out.txt
@@ -0,0 +1,40 @@
+New Feature: Customize Items Out Display for Lost, etc.
+=======================================================
+
+Items which are LOST, LONGOVERDUE, or CLAIMSRETURNED may now be displayed 
+in the top/main list of circulations instead of the bottom list in the
+staff client patron Items Out interface.  Similarly, such items can be 
+removed from the display once the items are checked in even if the 
+transaction is still open (fines are owed, etc.).
+
+Apart from organization, this has two additional effects:
+
+ * If all 3 types are hidden once checked in, the interface becomes a true
+   items out interface, instead of a combination of items out and 
+   special circumstance checked-in circs.
+ * If, in addition, all types are configured to be displayed in the top
+   list, the bottom list is hidden from the UI (since nothing would display
+   there), which creates more screen space for the main items out list.
+
+New Org Unit Settings
+---------------------
+
+ * ui.circ.items_out.longoverdue    | Items Out Long-Overdue display setting
+ * ui.circ.items_out.lost           | Items Out Lost display setting
+ * ui.circ.items_out.claimsreturned | Items Out Claims Returned display setting
+
+The value for each is a numeric code, describing which list the circulation
+should appear while checked out and whether the circulation should continue 
+to appear in the bottom list, when checked in, regardless of the state of
+the transaction.
+
+Value Codes
+~~~~~~~~~~~
+
+ * 1 = top list, then bottom list 
+ * 2 = bottom list, then bottom list
+ * 5 = top list, then do not display
+ * 6 = bottom list, then do not display
+
+Hint: to hide the bottom list entirely, set the value for all three settings 
+to '5'.

commit 5ef27d774bd41a2357c303c75015cfc4815b4609
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Mon Sep 23 17:48:03 2013 -0400

    Stamping 'Items Out' config settings
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 993c966..5070bf5 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -91,7 +91,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0833', :eg_version); -- berick/csharp
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0834', :eg_version); -- berick/dbwells
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.yaous-items-out-by-stop-fines.sql b/Open-ILS/src/sql/Pg/upgrade/0834.data.yaous-items-out-by-stop-fines.sql
similarity index 97%
rename from Open-ILS/src/sql/Pg/upgrade/XXXX.data.yaous-items-out-by-stop-fines.sql
rename to Open-ILS/src/sql/Pg/upgrade/0834.data.yaous-items-out-by-stop-fines.sql
index 6282c4e..6872dfb 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.yaous-items-out-by-stop-fines.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/0834.data.yaous-items-out-by-stop-fines.sql
@@ -1,6 +1,6 @@
 BEGIN;
 
--- SELECT evergreen.upgrade_deps_block_check('', :eg_version);
+SELECT evergreen.upgrade_deps_block_check('0834', :eg_version);
 
 INSERT INTO config.org_unit_setting_type 
     (name, grp, datatype, label, description)

commit a0ee19f899f038594fea496c2032b9fbeaffa63d
Author: Bill Erickson <berick at esilibrary.com>
Date:   Wed Aug 14 14:00:59 2013 -0400

    LP 1212456 customize items out display
    
    Control when lost, longoverdue, and claimsreturn'ed items display in the
    top vs bottom list in the items out interface.  Also, control when such
    circs should be hidden when checked in, regardless of whether the
    transaction is still open (from fines, etc.).
    
    ui.circ.items_out.lost
    ui.circ.items_out.longoverdue
    ui.circ.items_out.claimsreturned
    
    The values for the settings are bit flags.
    
    1 = show in top list
    2 = show in bottom list
    4 = hide when checked in
    
    The magic numbers for admins to enter are:
    
    1 = top list, then bottom list (if xact is open)
    2 = bottom list, then bottom list (if xact is open)
    5 = top list, hide when checked in
    6 = bottom list, hide when checked in
    
    Signed-off-by: Bill Erickson <berick at esilibrary.com>
    
    Conflicts:
    
    	Open-ILS/src/sql/Pg/950.data.seed-values.sql
    
    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
index 9e913c3..be69078 100644
--- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql
+++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
@@ -13408,6 +13408,7 @@ VALUES (
     TRUE
 );
 
+
 INSERT INTO config.org_unit_setting_type
     (name, grp, datatype, label, description)
 VALUES (
@@ -13429,3 +13430,65 @@ VALUES (
     )
 );
 
+
+INSERT INTO config.org_unit_setting_type 
+    (name, grp, datatype, label, description)
+VALUES (
+    'ui.circ.items_out.longoverdue', 'gui', 'integer',
+    oils_i18n_gettext(
+        'ui.circ.items_out.longoverdue',
+        'Items Out Long-Overdue display setting',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.circ.items_out.longoverdue',
+'Value is a numeric code, describing which list the circulation '||
+'should appear while checked out and whether the circulation should '||
+'continue to appear in the bottom list, when checked in with '||
+'oustanding fines.  '||
+'1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
+'5 = top list, do not display.  6 = bottom list, do not display.',
+        'coust',
+        'description'
+    )
+), (
+    'ui.circ.items_out.lost', 'gui', 'integer',
+    oils_i18n_gettext(
+        'ui.circ.items_out.lost',
+        'Items Out Lost display setting',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.circ.items_out.lost',
+'Value is a numeric code, describing which list the circulation '||
+'should appear while checked out and whether the circulation should '||
+'continue to appear in the bottom list, when checked in with '||
+'oustanding fines.  '||
+'1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
+'5 = top list, do not display.  6 = bottom list, do not display.',
+        'coust',
+        'description'
+    )
+), (
+    'ui.circ.items_out.claimsreturned', 'gui', 'integer',
+    oils_i18n_gettext(
+        'ui.circ.items_out.claimsreturned',
+        'Items Out Claims Returned display setting',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.circ.items_out.claimsreturned',
+'Value is a numeric code, describing which list the circulation '||
+'should appear while checked out and whether the circulation should '||
+'continue to appear in the bottom list, when checked in with '||
+'oustanding fines.  '||
+'1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
+'5 = top list, do not display.  6 = bottom list, do not display.',
+        'coust',
+        'description'
+    )
+);
+
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.yaous-items-out-by-stop-fines.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.yaous-items-out-by-stop-fines.sql
new file mode 100644
index 0000000..6282c4e
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.yaous-items-out-by-stop-fines.sql
@@ -0,0 +1,66 @@
+BEGIN;
+
+-- SELECT evergreen.upgrade_deps_block_check('', :eg_version);
+
+INSERT INTO config.org_unit_setting_type 
+    (name, grp, datatype, label, description)
+VALUES (
+    'ui.circ.items_out.longoverdue', 'gui', 'integer',
+    oils_i18n_gettext(
+        'ui.circ.items_out.longoverdue',
+        'Items Out Long-Overdue display setting',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.circ.items_out.longoverdue',
+'Value is a numeric code, describing which list the circulation '||
+'should appear while checked out and whether the circulation should '||
+'continue to appear in the bottom list, when checked in with '||
+'oustanding fines.  '||
+'1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
+'5 = top list, do not display.  6 = bottom list, do not display.',
+        'coust',
+        'description'
+    )
+), (
+    'ui.circ.items_out.lost', 'gui', 'integer',
+    oils_i18n_gettext(
+        'ui.circ.items_out.lost',
+        'Items Out Lost display setting',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.circ.items_out.lost',
+'Value is a numeric code, describing which list the circulation '||
+'should appear while checked out and whether the circulation should '||
+'continue to appear in the bottom list, when checked in with '||
+'oustanding fines.  '||
+'1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
+'5 = top list, do not display.  6 = bottom list, do not display.',
+        'coust',
+        'description'
+    )
+), (
+    'ui.circ.items_out.claimsreturned', 'gui', 'integer',
+    oils_i18n_gettext(
+        'ui.circ.items_out.claimsreturned',
+        'Items Out Claims Returned display setting',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.circ.items_out.claimsreturned',
+'Value is a numeric code, describing which list the circulation '||
+'should appear while checked out and whether the circulation should '||
+'continue to appear in the bottom list, when checked in with '||
+'oustanding fines.  '||
+'1 = top list, bottom list.  2 = bottom list, bottom list.  ' ||
+'5 = top list, do not display.  6 = bottom list, do not display.',
+        'coust',
+        'description'
+    )
+);
+
+COMMIT;
diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd
index 6e9e3a5..dafd068 100644
--- a/Open-ILS/web/opac/locale/en-US/lang.dtd
+++ b/Open-ILS/web/opac/locale/en-US/lang.dtd
@@ -1672,7 +1672,7 @@
 <!ENTITY staff.patron_navbar.other.accesskey 'o'>
 <!ENTITY staff.patron_navbar.items 'Items Out'>
 <!ENTITY staff.patron_navbar.items.accesskey 'I'>
-<!ENTITY staff.patron_navbar.items.problem_items.caption 'Lost, Claimed Returned, Long Overdue, Has Unpaid Billings'>
+<!ENTITY staff.patron_navbar.items.problem_items.caption 'Other/Special Circulations'>
 <!ENTITY staff.patron_navbar.refresh 'Refresh'>
 <!ENTITY staff.patron_navbar.refresh.accesskey ''>
 <!ENTITY staff.patron_navbar.retrieve 'Retrieve Patron'>
diff --git a/Open-ILS/xul/staff_client/server/patron/items.js b/Open-ILS/xul/staff_client/server/patron/items.js
index afe6dcd..f655944 100644
--- a/Open-ILS/xul/staff_client/server/patron/items.js
+++ b/Open-ILS/xul/staff_client/server/patron/items.js
@@ -537,7 +537,14 @@ patron.items.prototype = {
                         default: throw(robj);
                     }
                 } else {
-                    obj.refresh(retrieve_ids[i].circ_id,true);
+                    var c = obj.item_out_display.lost;
+                    if (1 & c) {
+                        // stay in top list, force reload
+                        obj.refresh(retrieve_ids[i].circ_id, false, true);
+                    } else {
+                        // move to bottom list (reload is automatic)
+                        obj.refresh(retrieve_ids[i].circ_id, true);
+                    }
                 }
             }
         } catch(E) {
@@ -577,6 +584,7 @@ patron.items.prototype = {
             if (my_xulG.complete) {
                 var barcodes = util.functional.map_list(retrieve_ids,function(o){return o.barcode;});
                 var do_not_move_these = {};
+                var force_reload = {};
                 for (var i = 0; i < barcodes.length; i++) {
                     var robj = obj.network.simple_request(
                         'MARK_ITEM_CLAIM_RETURNED', 
@@ -597,10 +605,22 @@ patron.items.prototype = {
                         if (robj.textcode == 'PATRON_EXCEEDS_CLAIMS_RETURN_COUNT') {
                             do_not_move_these[ barcodes[i] ] = true;
                         }
+                    } else if (robj == '1') { // success
+                        // if claimsreturned items should display in the
+                        // top list, tell refresh() to keep them there
+                        var c = obj.item_out_display.claimsreturned;
+                        if (1 & c) {
+                            do_not_move_these[ barcodes[i] ] = true;
+                            force_reload[barcodes[i]] = true;
+                        }
                     }
                 }
                 for (var i = 0; i < retrieve_ids.length; i++) {
-                    obj.refresh(retrieve_ids[i].circ_id, !do_not_move_these[ retrieve_ids[i].barcode ]);
+                    obj.refresh(
+                        retrieve_ids[i].circ_id, 
+                        !do_not_move_these[ retrieve_ids[i].barcode ], 
+                        force_reload[ retrieve_ids[i].barcode ]
+                    );
                 }
             }
         } catch(E) {
@@ -879,7 +899,7 @@ patron.items.prototype = {
         );
     },
 
-    'refresh' : function(circ_id,move_to_bottom_list) {
+    'refresh' : function(circ_id,move_to_bottom_list, reload) {
         var obj = this;
         try {
             var nparams = obj.list_circ_map[circ_id];
@@ -888,6 +908,11 @@ patron.items.prototype = {
                 var nparams2 = obj.list2.append( { 'row' : { 'my' : { 'circ_id' : circ_id } },  'to_bottom' : true, 'which_list' : 1 } );
                 obj.list_circ_map[circ_id] = nparams2; 
             } else {
+                if (reload) {
+                    // circ is not changing lists, but we need to re-fetch 
+                    // it from the server.  removing the circ forces a refresh
+                    nparams.row.my.circ = null; 
+                }
                 var which_list = nparams.which_list;
                 switch(which_list) {
                     case 1:
@@ -913,29 +938,85 @@ patron.items.prototype = {
         } else {
             obj.checkouts = [];
             obj.checkouts2 = [];
+
+            obj.item_out_display = {
+                lost : Number(obj.data.hash.aous[
+                    'ui.circ.items_out.lost']) || 2,
+                longoverdue : Number(obj.data.hash.aous[
+                    'ui.circ.items_out.longoverdue']) || 2,
+                claimsreturned : Number(obj.data.hash.aous[
+                    'ui.circ.items_out.claimsreturned']) || 2
+            };
+
+            // items still circulating
             var robj = obj.network.simple_request(
                 'FM_CIRC_RETRIEVE_VIA_USER.authoritative',
                 [ ses(), obj.patron_id ]
             );
+
             if (typeof robj.ilsevent!='undefined') {
-                obj.error.standard_unexpected_error_alert($("patronStrings").getString('staff.patron.items.retrieve.err_retrieving_circulations'),E);
-            } else {
-                obj.checkouts = obj.checkouts.concat( robj.overdue );
-                obj.checkouts = obj.checkouts.concat( robj.out );
-                obj.checkouts2 = obj.checkouts2.concat( robj.lost );
-                obj.checkouts2 = obj.checkouts2.concat( robj.claims_returned );
-                obj.checkouts2 = obj.checkouts2.concat( robj.long_overdue );
+                obj.error.standard_unexpected_error_alert($("patronStrings").getString(
+                    'staff.patron.items.retrieve.err_retrieving_circulations'),E);
+                return;
             }
-            var robj = obj.network.simple_request(
-                'FM_CIRC_IN_WITH_FINES_VIA_USER.authoritative',
-                [ ses(), obj.patron_id ]
-            );
-            if (typeof robj.ilsevent!='undefined') {
-                obj.error.standard_unexpected_error_alert($("patronStrings").getString('staff.patron.items.retrieve.err_retrieving_circulations'),E);
+
+            obj.checkouts = obj.checkouts.concat(robj.out);
+            obj.checkouts = obj.checkouts.concat(robj.overdue);
+
+            // open circs are added to list one or two based on config.
+            // closed circs added to list 2 only if configured, otherwise
+            // they are added to no list
+            function promote_circs(list, stop_fines, open) {
+                var code = obj.item_out_display[stop_fines];
+                if (open) {
+                    if (1 & code) { // bitflag 1 == top list
+                        obj.checkouts = obj.checkouts.concat(list);
+                    } else {
+                        obj.checkouts2 = obj.checkouts2.concat(list);
+                    }
+                } else {
+                    if (4 & code) return;  // bitflag 4 == hide on checkin
+                    obj.checkouts2 = obj.checkouts2.concat(list);
+                }
+            }
+
+            promote_circs(robj.lost, 'lost', true);
+            promote_circs(robj.long_overdue, 'longoverdue', true);
+            promote_circs(robj.claims_returned, 'claimsreturned', true);
+            
+            if (obj.item_out_display.lost & 4 &&
+                obj.item_out_display.longoverdue & 4 &&
+                obj.item_out_display.claimsreturned & 4) {
+                // all types are configured to be hidden once checked in, 
+                // so there is no need to fetch the checked in circs.
+
+                if (obj.item_out_display.lost & 1 &&
+                    obj.item_out_display.longoverdue & 1 &&
+                    obj.item_out_display.claimsreturned & 1) {
+                    // additionally, if all types are configured to display
+                    // in the top list while checked out, nothing will
+                    // ever appear in the bottom list, so we can hide
+                    // the bottom list from the UI.
+
+                    $('splitter').setAttribute('hidden', true);
+                    $('after_splitter').setAttribute('hidden', true);
+                }
+
             } else {
-                obj.checkouts2 = obj.checkouts2.concat( robj.lost );
-                obj.checkouts2 = obj.checkouts2.concat( robj.claims_returned );
-                obj.checkouts2 = obj.checkouts2.concat( robj.long_overdue );
+                var robj = obj.network.simple_request(
+                    'FM_CIRC_IN_WITH_FINES_VIA_USER.authoritative',
+                    [ ses(), obj.patron_id ]
+                );
+
+                if (typeof robj.ilsevent!='undefined') {
+                    obj.error.standard_unexpected_error_alert($("patronStrings").getString(
+                        'staff.patron.items.retrieve.err_retrieving_circulations'),E);
+                    return;
+                }
+
+                promote_circs(robj.lost, 'lost');
+                promote_circs(robj.long_overdue, 'longoverdue');
+                promote_circs(robj.claims_returned, 'claimsreturned');
             }
         }
 

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 Open-ILS/src/sql/Pg/950.data.seed-values.sql       |   63 ++++++++++
 .../0834.data.yaous-items-out-by-stop-fines.sql    |   66 +++++++++++
 Open-ILS/web/opac/locale/en-US/lang.dtd            |    2 +-
 Open-ILS/xul/staff_client/server/patron/items.js   |  119 ++++++++++++++++---
 .../Client/customize-items-out.txt                 |   40 +++++++
 6 files changed, 271 insertions(+), 21 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/0834.data.yaous-items-out-by-stop-fines.sql
 create mode 100644 docs/RELEASE_NOTES_NEXT/Client/customize-items-out.txt


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list