[open-ils-commits] r637 - conifer/trunk/circ (risard)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Sep 2 11:06:14 EDT 2009


Author: risard
Date: 2009-09-02 11:06:12 -0400 (Wed, 02 Sep 2009)
New Revision: 637

Modified:
   conifer/trunk/circ/circ_permit_copy.js
Log:
Fixed up algoma circ rules

Modified: conifer/trunk/circ/circ_permit_copy.js
===================================================================
--- conifer/trunk/circ/circ_permit_copy.js	2009-09-01 19:18:13 UTC (rev 636)
+++ conifer/trunk/circ/circ_permit_copy.js	2009-09-02 15:06:12 UTC (rev 637)
@@ -1,137 +1,138 @@
-function go() {
-
-/* load the lib script */
-load_lib('circ/circ_lib.js');
-load_lib('JSON_v1.js');
-log_vars('circ_permit_copy');
-
-var lusys = ['LUSYS', 'CRC', 'HUNTINGTON', 'LDCR', 'MRC', 'OSUL', 'MEDIACEN', 'SUDBURY'];
-var hearstsys = ['HEARSTSYS', 'HEARST', 'KAP', 'TIMMINS'];
-var nosmsys = ['OSM', 'NOSME', 'NOSMW'];
+function go() {
+
+/* load the lib script */
+load_lib('circ/circ_lib.js');
+load_lib('JSON_v1.js');
+log_vars('circ_permit_copy');
+
+var lusys = ['LUSYS', 'CRC', 'HUNTINGTON', 'LDCR', 'MRC', 'OSUL', 'MEDIACEN', 'SUDBURY'];
+var hearstsys = ['HEARSTSYS', 'HEARST', 'KAP', 'TIMMINS'];
+var nosmsys = ['OSM', 'NOSME', 'NOSMW'];
 var winsys = ['OWA', 'OWAL'];
-var algsys = ['OSTMA']; /* looks silly but we do plan to add one or two branches during the winter term */
-
-/* In theory, isOrgDescendent would work - but it isn't, for some reason */
-if (patron.home_ou.id != copy.circ_lib.id) {
-        /* Laurentian campus patrons can borrow from one another */
-        if (isOrgDescendent('LUSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {
-                // go in peace
-        } else if (isAMember(patron.home_ou.shortname, lusys) && (
-			isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) 
-		))
-	{
-                // No problemo
-        } else if (isOrgDescendent('HEARSTSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {
-                // go in peace
-        } else if (isAMember(patron.home_ou.shortname, hearstsys) && isAMember(copy.circ_lib.shortname, hearstsys)) {
-                // No problemo
-        } else if (isAMember(patron.home_ou.shortname, winsys) && isAMember(copy.circ_lib.shortname, winsys)) {
-                // No problemo
-        } else if (isOrgDescendent('OSM', patron.home_ou.id) && isOrgDescendent('OSM', copy.circ_lib.id)) {
-                // go in peace
-        } else if (isAMember(patron.home_ou.shortname, nosmsys) && (
-			isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) 
-		))
-	{
-                // No problemo
-        } else {
-                result.events.push('CIRC_EXCEEDS_COPY_RANGE');
-        }
-}
-
-if( ! isTrue(copy.circulate) || 
-	!isTrue(copy.location.circulate) ||
-	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DEPOSIT') ||
-	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DOCUMENTS') ||
-	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'PERIODICAL') ||
-	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'REFERENCE')
-) {
-	result.events.push('COPY_CIRC_NOT_ALLOWED');
-}
-
-// set permissions for Windsor Leddy
-if (copy.circ_lib.shortname == 'OWA') {
-
-	if (isValidPatron(patronProfile)) {
-  
-		// permit circulations for the following circ modifiers to all patrons
-		var circ_allow_list = ['CIRC', 'CRC MEDIA', 'CRC SPEC', 'CRC TEXT', 'DOC', 'DVD VIDEO', 'MEDIA', 'MFORM', 'REF', 'THESIS'];
-
-		// add permissions for patron groups who are not external borrowers
-		if (patronProfile == 'Faculty' || patronProfile == 'Graduate' || patronProfile == 'Undergraduate' || patronProfile == 'Staff members') {
-			circ_allow_list = circ_allow_list.concat('CIRC SHORT', 'RSV1', 'RSV2', 'RSV3', 'RSV7');
-		}
-
-		// faculty, grads, and staff can borrow serials
-		if (patronProfile == 'Faculty' || patronProfile == 'Graduate'|| patronProfile == 'Staff members') {
-			circ_allow_list = circ_allow_list.concat('SER');
-		}
-
-		// faculty and staff can also borrow music CDs
-		if (patronProfile == 'Faculty' || patronProfile == 'Staff members') {
-			circ_allow_list = circ_allow_list.concat('CD MUSIC');
-		}
-
-		if ( ! testCircAllow(circ_allow_list) ) {
-			result.events.push('COPY_CIRC_NOT_ALLOWED');
-		}
-
-	} else {
-		result.events.push('COPY_CIRC_NOT_ALLOWED'); // would prefer this to push a "Check Patron Profile" message
-	}
-} // end permissions for Windsor Leddy
-
-// set permissions for Windsor Law
-if (copy.circ_lib.shortname == 'OWAL') {
-
-	if (isValidPatron(patronProfile)) {
-
-		// only Law external borrowers can borrow Law items
-		if (patronProfile == 'Readers' && patron.home_ou.shortname != 'OWAL') {
-			result.events.push('COPY_CIRC_NOT_ALLOWED');
-		}
-
-		// permit circulations for the following circ modifiers to all patrons not excluded above
-		var circ_allow_list = ['LAW MONO'];
-
-		// add permissions for patron groups who are not external borrowers
-		if (patronProfile == 'Faculty' || patronProfile == 'Graduate' || patronProfile == 'Undergraduate' || patronProfile == 'Staff members') {
-			circ_allow_list = circ_allow_list.concat('LAW RES1D', 'LAW RES3D', 'LAW RES3H', 'LAW RES5H');
-		}
-
-		// faculty can borrow non-circulating items and serials
-		if (patronProfile == 'Faculty') {
-			circ_allow_list = circ_allow_list.concat('LAW NOCIRC', 'LAW SERIAL');
-		}
-
-		if ( ! testCircAllow(circ_allow_list) ) {
-			result.events.push('COPY_CIRC_NOT_ALLOWED');
-		}
-
-	} else {
-		result.events.push('COPY_CIRC_NOT_ALLOWED'); // would prefer this to push a "Check Patron Profile" message
-	}
-} // end permissions for Windsor Law
+var algsys = ['OSTMA']; /* looks silly but we do plan to add one or two branches during the winter term */
 
+/* In theory, isOrgDescendent would work - but it isn't, for some reason */
+if (patron.home_ou.id != copy.circ_lib.id) {
+        /* Laurentian campus patrons can borrow from one another */
+        if (isOrgDescendent('LUSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {
+                // go in peace
+        } else if (isAMember(patron.home_ou.shortname, lusys) && (
+			isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) 
+		))
+	{
+                // No problemo
+        } else if (isOrgDescendent('HEARSTSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {
+                // go in peace
+        } else if (isAMember(patron.home_ou.shortname, hearstsys) && isAMember(copy.circ_lib.shortname, hearstsys)) {
+                // No problemo
+        } else if (isAMember(patron.home_ou.shortname, winsys) && isAMember(copy.circ_lib.shortname, winsys)) {
+                // No problemo
+        } else if (isOrgDescendent('OSM', patron.home_ou.id) && isOrgDescendent('OSM', copy.circ_lib.id)) {
+                // go in peace
+        } else if (isAMember(patron.home_ou.shortname, nosmsys) && (
+			isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) 
+		))
+	{
+                // No problemo
+        } else {
+                result.events.push('CIRC_EXCEEDS_COPY_RANGE');
+        }
+}
+
+if( ! isTrue(copy.circulate) || 
+	!isTrue(copy.location.circulate) ||
+	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DEPOSIT') ||
+	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DOCUMENTS') ||
+	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'PERIODICAL') ||
+	(copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'REFERENCE')
+) {
+	result.events.push('COPY_CIRC_NOT_ALLOWED');
+}
+
+// set permissions for Windsor Leddy
+if (copy.circ_lib.shortname == 'OWA') {
+
+	if (isValidPatron(patronProfile)) {
+  
+		// permit circulations for the following circ modifiers to all patrons
+		var circ_allow_list = ['CIRC', 'CRC MEDIA', 'CRC SPEC', 'CRC TEXT', 'DOC', 'DVD VIDEO', 'MEDIA', 'MFORM', 'REF', 'THESIS'];
+
+		// add permissions for patron groups who are not external borrowers
+		if (patronProfile == 'Faculty' || patronProfile == 'Graduate' || patronProfile == 'Undergraduate' || patronProfile == 'Staff members') {
+			circ_allow_list = circ_allow_list.concat('CIRC SHORT', 'RSV1', 'RSV2', 'RSV3', 'RSV7');
+		}
+
+		// faculty, grads, and staff can borrow serials
+		if (patronProfile == 'Faculty' || patronProfile == 'Graduate'|| patronProfile == 'Staff members') {
+			circ_allow_list = circ_allow_list.concat('SER');
+		}
+
+		// faculty and staff can also borrow music CDs
+		if (patronProfile == 'Faculty' || patronProfile == 'Staff members') {
+			circ_allow_list = circ_allow_list.concat('CD MUSIC');
+		}
+
+		if ( ! testCircAllow(circ_allow_list) ) {
+			result.events.push('COPY_CIRC_NOT_ALLOWED');
+		}
+
+	} else {
+		result.events.push('COPY_CIRC_NOT_ALLOWED'); // would prefer this to push a "Check Patron Profile" message
+	}
+} // end permissions for Windsor Leddy
+
+// set permissions for Windsor Law
+if (copy.circ_lib.shortname == 'OWAL') {
+
+	if (isValidPatron(patronProfile)) {
+
+		// only Law external borrowers can borrow Law items
+		if (patronProfile == 'Readers' && patron.home_ou.shortname != 'OWAL') {
+			result.events.push('COPY_CIRC_NOT_ALLOWED');
+		}
+
+		// permit circulations for the following circ modifiers to all patrons not excluded above
+		var circ_allow_list = ['LAW MONO'];
+
+		// add permissions for patron groups who are not external borrowers
+		if (patronProfile == 'Faculty' || patronProfile == 'Graduate' || patronProfile == 'Undergraduate' || patronProfile == 'Staff members') {
+			circ_allow_list = circ_allow_list.concat('LAW RES1D', 'LAW RES3D', 'LAW RES3H', 'LAW RES5H');
+		}
+
+		// faculty can borrow non-circulating items and serials
+		if (patronProfile == 'Faculty') {
+			circ_allow_list = circ_allow_list.concat('LAW NOCIRC', 'LAW SERIAL');
+		}
+
+		if ( ! testCircAllow(circ_allow_list) ) {
+			result.events.push('COPY_CIRC_NOT_ALLOWED');
+		}
+
+	} else {
+		result.events.push('COPY_CIRC_NOT_ALLOWED'); // would prefer this to push a "Check Patron Profile" message
+	}
+} // end permissions for Windsor Law
+
 /*******************************
    PERMIT FOR ALGOMA
 ********************************/
 
-if (copy.circ_lib.shortname == 'OSTMA') {
-
+if (copy.circ_lib.shortname == 'OSTMA') {
+
 	if (isValidPatron(patronProfile)) {
 
-		if (copy.location == 'ALGO-SHWK') ||
-		   (copy.location == 'ALGO-REF') ||
-		   (copy.location == 'ALGO-PER') ||
-		   (copy.location == 'ALGO-DOC')
-		{
-			result.events.push('COPY_CIRC_NOT_ALLOWED');
+		if (copy.location.name == 'ALGO-REF' ||
+		    copy.location.name == 'ALGO-PER' ||
+		    copy.location.name == 'ALGO-SHWK' ||	
+                    copy.location.name == 'ALGO-DOC' 
+		   )
+		{
+			result.events.push('COPY_CIRC_NOT_ALLOWED');
 		}
         } 
 
 
-	if ( !(patronProfile == 'Faculty') && (copy.location == 'ALGO-AV') {
+	if (patronProfile != 'Faculty' && copy.location.name == 'ALGO-AV') {
 		result.events.push('COPY_CIRC_NOT_ALLOWED');		
 	}
 
@@ -142,33 +143,33 @@
    END -- PERMIT FOR ALGOMA
 ********************************/
 
-
-if( ! isTrue(isRenewal) ) {
-	if(copyStatus != 'Available' && 
-		copyStatus != 'On holds shelf' && copyStatus != 'Reshelving' ) {
-			result.events.push('COPY_NOT_AVAILABLE');
-	} 
-}
-
-}
-
-function isAMember(shortname, group) {
-	for (var i = 0; i < group.length; i++) {
-		if (group[i] == shortname) {
-			return true;
-		}
-	}
-	return false;
-}
-
-function testCircAllow(circ_allow_list) {
-	for (var i = 0; i < circ_allow_list.length; i++) {
-		if (circ_allow_list[i] == copy.circ_modifier) {
-			return true;
-		}
-	}
-	return false;
-}
-
-go();
-
+
+if( ! isTrue(isRenewal) ) {
+	if(copyStatus != 'Available' && 
+		copyStatus != 'On holds shelf' && copyStatus != 'Reshelving' ) {
+			result.events.push('COPY_NOT_AVAILABLE');
+	} 
+}
+
+}
+
+function isAMember(shortname, group) {
+	for (var i = 0; i < group.length; i++) {
+		if (group[i] == shortname) {
+			return true;
+		}
+	}
+	return false;
+}
+
+function testCircAllow(circ_allow_list) {
+	for (var i = 0; i < circ_allow_list.length; i++) {
+		if (circ_allow_list[i] == copy.circ_modifier) {
+			return true;
+		}
+	}
+	return false;
+}
+
+go();
+



More information about the open-ils-commits mailing list