[open-ils-commits] r919 - in servres/trunk: . conifer conifer/custom conifer/doc conifer/integration conifer/integration/auth_evergreen conifer/libsystems/evergreen conifer/libsystems/z3950 conifer/middleware conifer/plumbing conifer/static conifer/syrup conifer/syrup/views conifer/templates conifer/templates/auth conifer/templates/components conifer/templates/feeds conifer/templates/item rfc_sql (gfawcett)
svn at svn.open-ils.org
svn at svn.open-ils.org
Wed Jul 14 20:55:38 EDT 2010
Author: gfawcett
Date: 2010-07-14 20:55:37 -0400 (Wed, 14 Jul 2010)
New Revision: 919
Added:
servres/trunk/conifer/doc/grahams-init-fixture.json
servres/trunk/conifer/integration/auth_evergreen/
servres/trunk/conifer/integration/auth_evergreen/__init__.py
servres/trunk/conifer/integration/auth_evergreen/django.py
servres/trunk/conifer/integration/auth_evergreen/eg_xmlrpc.py
servres/trunk/conifer/integration/uwindsor.py
servres/trunk/conifer/integration/uwindsor_campus_info.py
servres/trunk/conifer/plumbing/
servres/trunk/conifer/plumbing/__init__.py
servres/trunk/conifer/plumbing/genshi_support.py
servres/trunk/conifer/plumbing/hooksystem.py
servres/trunk/conifer/syrup/views/_generics.py
servres/trunk/conifer/syrup/views/auth.py
servres/trunk/conifer/syrup/views/genshi_namespace.py
Removed:
servres/trunk/conifer/BRANCH-TODO.org
servres/trunk/conifer/custom/README
servres/trunk/conifer/custom/__init__.py
servres/trunk/conifer/custom/auth_evergreen.py
servres/trunk/conifer/custom/auth_evergreen_support.py
servres/trunk/conifer/genshi_namespace.py
servres/trunk/conifer/genshi_support.py
servres/trunk/conifer/grahams-init-fixture.json
servres/trunk/conifer/integration/_hooksystem.py
servres/trunk/conifer/integration/hooks.py
servres/trunk/conifer/middleware/__init__.py
servres/trunk/conifer/middleware/genshi_locals.py
servres/trunk/conifer/syrup/fuzzy_match.py
servres/trunk/conifer/syrup/user_lookup.py
servres/trunk/conifer/syrup/views/generics.py
servres/trunk/rfc_sql/reserves.sql
Modified:
servres/trunk/.gitignore
servres/trunk/conifer/libsystems/evergreen/fm_IDL.xml
servres/trunk/conifer/libsystems/evergreen/item_status.py
servres/trunk/conifer/libsystems/evergreen/support.py
servres/trunk/conifer/libsystems/z3950/marcxml.py
servres/trunk/conifer/libsystems/z3950/pyz3950_search.py
servres/trunk/conifer/settings.py
servres/trunk/conifer/static/main.css
servres/trunk/conifer/syrup/admin.py
servres/trunk/conifer/syrup/integration.py
servres/trunk/conifer/syrup/models.py
servres/trunk/conifer/syrup/urls.py
servres/trunk/conifer/syrup/views/__init__.py
servres/trunk/conifer/syrup/views/_common.py
servres/trunk/conifer/syrup/views/admin.py
servres/trunk/conifer/syrup/views/feeds.py
servres/trunk/conifer/syrup/views/items.py
servres/trunk/conifer/syrup/views/search.py
servres/trunk/conifer/syrup/views/sites.py
servres/trunk/conifer/templates/auth/login.xhtml
servres/trunk/conifer/templates/browse_index.xhtml
servres/trunk/conifer/templates/components/site.xhtml
servres/trunk/conifer/templates/edit_site.xhtml
servres/trunk/conifer/templates/feeds/site_atom.xml
servres/trunk/conifer/templates/item/item_add_cat_search.xhtml
servres/trunk/conifer/templates/master.xhtml
servres/trunk/conifer/templates/search_results.xhtml
servres/trunk/conifer/templates/site_detail.xhtml
servres/trunk/conifer/templates/tabbar.xhtml
servres/trunk/conifer/templates/tabbar_anonymous.xhtml
servres/trunk/conifer/templates/zsearch.xhtml
servres/trunk/conifer/urls.py
Log:
The Great Cleanup
I've made some radical cuts and reorganizations to the source. Most
functions are still working.
Modified: servres/trunk/.gitignore
===================================================================
--- servres/trunk/.gitignore 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/.gitignore 2010-07-15 00:55:37 UTC (rev 919)
@@ -11,4 +11,5 @@
/conifer/.dired
/conifer/local_settings.py
/conifer/remodel.sqlite3
-*~
\ No newline at end of file
+*~
+/conifer/test.db
Deleted: servres/trunk/conifer/BRANCH-TODO.org
===================================================================
--- servres/trunk/conifer/BRANCH-TODO.org 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/BRANCH-TODO.org 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,38 +0,0 @@
-* Tasks for the =2010-02-campus-integration-reorg= branch
-
- The goal of this branch is to reorganize and document the two major
- integration points in Syrup: the library systems and the campus
- information systems. Both of these integrations existed prior to the
- branch, but were undocumented and messy.
-
-** The Evergreen-or-not question.
- - Prepare to sync with the =eg-schema-experiment= branch
- - "in evergreen database" vs. "other database with OpenSRF calls"
-
-** Enumerate the ways that campus integration is currently used.
- Put this in the campus-integration documentation.
-
-** A Library Integration module which is readable and documented
- - integrate via local_settings.py
- - Prepare to sync with the =eg-schema-experiment= branch
-
-** How much of the integration data belongs in the database?
- Should the Django ADMINS list be pulled from the db? What about
- Z39.50 targets? What are the deciding principles when figuring out
- where to store config data?
-
-** Campus integration for departments.
- - how to address the faculty/campus/dept/etc. hierarchy?
- - list of departments
- - look up department based on course-code
- - instructors in a given department
-
-** question: Campus integration for terms?
- Even just a "feed of terms you might not yet know about?"
-
-** question: when looking up membership info, always update membership table?
- Should just asking an external campus system, 'What sections is
- John in?' automatically add membership records for John, for
- course-sites related to those sections? Should it also (only during
- the active period of a term) drop John from current sections that
- he's no longer part of?
Deleted: servres/trunk/conifer/custom/README
===================================================================
--- servres/trunk/conifer/custom/README 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/custom/README 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,4 +0,0 @@
-This directory is going away.
-
-Default integrations are being moved to 'conifer.integration'. The
-active integration modules are to be specified in local_settings.
Deleted: servres/trunk/conifer/custom/__init__.py
===================================================================
Deleted: servres/trunk/conifer/custom/auth_evergreen.py
===================================================================
--- servres/trunk/conifer/custom/auth_evergreen.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/custom/auth_evergreen.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,53 +0,0 @@
-from auth_evergreen_support import EvergreenAuthServer
-from django.contrib.auth.models import User
-from django.conf import settings
-
-class EvergreenAuthBackend(EvergreenAuthServer):
-
- def __init__(self):
- assert settings.EVERGREEN_GATEWAY_SERVER, \
- 'EvergreenAuthBackend requires settings.EVERGREEN_GATEWAY_SERVER'
- EvergreenAuthServer.__init__(
- self, settings.EVERGREEN_GATEWAY_SERVER)
-
- def authenticate(self, username=None, password=None):
- pwd_valid = self.login(username, password)
- if pwd_valid:
- return self.maybe_initialize_user(username)
- return None
-
- def get_user(self, user_id):
- try:
- return User.objects.get(pk=user_id)
- except User.DoesNotExist:
- return None
-
- def maybe_initialize_user(self, username, look_local=True):
- """Look up user in Django db; if not found, fetch user detail
- from backend and set up a local user object. Return None if no
- such user exists in either Django or the backend.
-
- Setting look_local=False skips the Django search and heads
- straight to the backend; this shaves a database call when
- walking a set of backends to initialize a user. Skipping
- look_local on a username that already exists in Django will
- certainly lead to an integrity error.
-
- This method is NOT part of the Django backend interface.
- """
- user = None
- if look_local:
- try:
- user = User.objects.get(username=username)
- except User.DoesNotExist:
- pass
- if user is None:
- u = self.lookup(username)
- if u: # user found in Evergreen.
- user = User(username=username,
- first_name = u['first_name'],
- last_name = u['last_name'],
- email = u['email'])
- user.set_unusable_password()
- user.save()
- return user
Deleted: servres/trunk/conifer/custom/auth_evergreen_support.py
===================================================================
--- servres/trunk/conifer/custom/auth_evergreen_support.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/custom/auth_evergreen_support.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,86 +0,0 @@
-# auth_evergreen_support -- Authentication and user lookup against an
-# Evergreen XML-RPC server.
-
-# This is the Evergreen-specific stuff, with no Django dependencies.
-
-import xmlrpclib
-import md5
-import warnings
-import time
-
-#----------------------------------------------------------------------
-# support
-
-def do_request(proxy, method, *args):
- # Against my test server, I would get intermittent
- # ProtcolErrors. If we get one, try again, backing off gradually.
- for attempt in range(5):
- try:
- return getattr(proxy, method)(*args)
- except xmlrpclib.ProtocolError, pe:
- warnings.warn('open-ils xml-rpc protocol error: trying again: ' + method)
- time.sleep(0.1 * attempt) # back off a bit and try again
-
-def _hsh(s):
- return md5.new(s).hexdigest()
-
-#----------------------------------------------------------------------
-# main interface
-
-class EvergreenAuthServer(object):
-
- def __init__(self, address, verbose=False):
- self.address = address
- self.verbose = verbose
-
- def proxy(self, service):
- server = xmlrpclib.Server(
- 'http://%s/xml-rpc/%s' % (self.address, service),
- verbose=self.verbose)
- def req(method, *args):
- return do_request(server, method, *args)
- return req
-
- def login(self, username, password):
- """Return True if the username/password are good, False otherwise."""
- prx = self.proxy('open-ils.auth')
- seed = prx('open-ils.auth.authenticate.init', username)
- resp = prx('open-ils.auth.authenticate.complete',
- dict(username=username,
- password=_hsh(seed + _hsh(password)),
- type='reserves'))
- try:
- # do we need the authkey for anything?
- authkey = resp['payload']['authtoken']
- return True
- except KeyError:
- return False
-
- def lookup(self, username):
- """Given a username, return a dict, or None. The dict must have
- four keys (first_name, last_name, email, external_username), where
- external_username value is the username parameter."""
-
- prx = self.proxy('open-ils.actor')
- r = prx('open-ils.actor.user.search.username', 'admin')
- if not r:
- return None
- else:
- r = r[0]['__data__']
- f = lambda k: r.get(k)
- person = dict((j, f(k)) for j,k in [('first_name', 'first_given_name'),
- ('last_name', 'family_name'),
- ('email', 'email'),
- ('external_username', 'usrname')])
- return person
-
-#----------------------------------------------------------------------
-# testing
-
-if __name__ == '__main__':
- from pprint import pprint
- address = '192.168.1.10'
- egreen = EvergreenAuthServer(address)
- username, password = 'admin', 'open-ils'
- print egreen.login(username, password)
- pprint(egreen.lookup('admin'))
Added: servres/trunk/conifer/doc/grahams-init-fixture.json
===================================================================
--- servres/trunk/conifer/doc/grahams-init-fixture.json (rev 0)
+++ servres/trunk/conifer/doc/grahams-init-fixture.json 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1 @@
+[{"pk": 22, "model": "auth.permission", "fields": {"codename": "add_logentry", "name": "Can add log entry", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_logentry", "name": "Can change log entry", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 8}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_message", "name": "Can add message", "content_type": 4}}, {"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_message", "name": "Can change message", "content_type": 4}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_message", "name": "Can delete message", "content_type": 4}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 5}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 6}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 7}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 9}}, {"pk": 46, "model": "auth.permission", "fields": {"codename": "add_config", "name": "Can add config", "content_type": 16}}, {"pk": 40, "model": "auth.permission", "fields": {"codename": "add_course", "name": "Can add course", "content_type": 14}}, {"pk": 37, "model": "auth.permission", "fields": {"codename": "add_department", "name": "Can add department", "content_type": 13}}, {"pk": 52, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 18}}, {"pk": 58, "model": "auth.permission", "fields": {"codename": "add_item", "name": "Can add item", "content_type": 20}}, {"pk": 55, "model": "auth.permission", "fields": {"codename": "add_membership", "name": "Can add membership", "content_type": 19}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_servicedesk", "name": "Can add service desk", "content_type": 11}}, {"pk": 49, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 17}}, {"pk": 34, "model": "auth.permission", "fields": {"codename": "add_term", "name": "Can add term", "content_type": 12}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_userprofile", "name": "Can add user profile", "content_type": 10}}, {"pk": 43, "model": "auth.permission", "fields": {"codename": "add_z3950target", "name": "Can add z3950 target", "content_type": 15}}, {"pk": 47, "model": "auth.permission", "fields": {"codename": "change_config", "name": "Can change config", "content_type": 16}}, {"pk": 41, "model": "auth.permission", "fields": {"codename": "change_course", "name": "Can change course", "content_type": 14}}, {"pk": 38, "model": "auth.permission", "fields": {"codename": "change_department", "name": "Can change department", "content_type": 13}}, {"pk": 53, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 18}}, {"pk": 59, "model": "auth.permission", "fields": {"codename": "change_item", "name": "Can change item", "content_type": 20}}, {"pk": 56, "model": "auth.permission", "fields": {"codename": "change_membership", "name": "Can change membership", "content_type": 19}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_servicedesk", "name": "Can change service desk", "content_type": 11}}, {"pk": 50, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 17}}, {"pk": 35, "model": "auth.permission", "fields": {"codename": "change_term", "name": "Can change term", "content_type": 12}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_userprofile", "name": "Can change user profile", "content_type": 10}}, {"pk": 44, "model": "auth.permission", "fields": {"codename": "change_z3950target", "name": "Can change z3950 target", "content_type": 15}}, {"pk": 48, "model": "auth.permission", "fields": {"codename": "delete_config", "name": "Can delete config", "content_type": 16}}, {"pk": 42, "model": "auth.permission", "fields": {"codename": "delete_course", "name": "Can delete course", "content_type": 14}}, {"pk": 39, "model": "auth.permission", "fields": {"codename": "delete_department", "name": "Can delete department", "content_type": 13}}, {"pk": 54, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 18}}, {"pk": 60, "model": "auth.permission", "fields": {"codename": "delete_item", "name": "Can delete item", "content_type": 20}}, {"pk": 57, "model": "auth.permission", "fields": {"codename": "delete_membership", "name": "Can delete membership", "content_type": 19}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_servicedesk", "name": "Can delete service desk", "content_type": 11}}, {"pk": 51, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 17}}, {"pk": 36, "model": "auth.permission", "fields": {"codename": "delete_term", "name": "Can delete term", "content_type": 12}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_userprofile", "name": "Can delete user profile", "content_type": 10}}, {"pk": 45, "model": "auth.permission", "fields": {"codename": "delete_z3950target", "name": "Can delete z3950 target", "content_type": 15}}, {"pk": 1, "model": "auth.user", "fields": {"username": "graham", "first_name": "Fawcett", "last_name": "Graham", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2010-07-14 13:03:40", "groups": [], "user_permissions": [], "password": "sha1$c1214$8cc63f8cfc851f04d1058f8448d895d0532a48ad", "email": "fawcett at uwindsor.ca", "date_joined": "2010-07-09 09:15:14"}}, {"pk": 2, "model": "auth.user", "fields": {"username": "art", "first_name": "Art", "last_name": "Rhyno", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2010-07-14 13:04:23", "groups": [], "user_permissions": [], "password": "sha1$d20ab$0c4d2b85765001fe8bfe5a206df3e5f208f9ebbe", "email": "artrhyno at uwindsor.ca", "date_joined": "2010-07-14 13:04:23"}}, {"pk": 3, "model": "auth.user", "fields": {"username": "mita", "first_name": "Mita", "last_name": "Williams", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2010-07-14 13:04:45", "groups": [], "user_permissions": [], "password": "sha1$02883$d2d17afdf8bbb55a755b8aad175290a526d931d3", "email": "mita at uwindsor.ca", "date_joined": "2010-07-14 13:04:45"}}, {"pk": 16, "model": "contenttypes.contenttype", "fields": {"model": "config", "name": "config", "app_label": "syrup"}}, {"pk": 5, "model": "contenttypes.contenttype", "fields": {"model": "contenttype", "name": "content type", "app_label": "contenttypes"}}, {"pk": 14, "model": "contenttypes.contenttype", "fields": {"model": "course", "name": "course", "app_label": "syrup"}}, {"pk": 13, "model": "contenttypes.contenttype", "fields": {"model": "department", "name": "department", "app_label": "syrup"}}, {"pk": 2, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "auth"}}, {"pk": 18, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "syrup"}}, {"pk": 20, "model": "contenttypes.contenttype", "fields": {"model": "item", "name": "item", "app_label": "syrup"}}, {"pk": 8, "model": "contenttypes.contenttype", "fields": {"model": "logentry", "name": "log entry", "app_label": "admin"}}, {"pk": 19, "model": "contenttypes.contenttype", "fields": {"model": "membership", "name": "membership", "app_label": "syrup"}}, {"pk": 4, "model": "contenttypes.contenttype", "fields": {"model": "message", "name": "message", "app_label": "auth"}}, {"pk": 9, "model": "contenttypes.contenttype", "fields": {"model": "migrationhistory", "name": "migration history", "app_label": "south"}}, {"pk": 1, "model": "contenttypes.contenttype", "fields": {"model": "permission", "name": "permission", "app_label": "auth"}}, {"pk": 11, "model": "contenttypes.contenttype", "fields": {"model": "servicedesk", "name": "service desk", "app_label": "syrup"}}, {"pk": 6, "model": "contenttypes.contenttype", "fields": {"model": "session", "name": "session", "app_label": "sessions"}}, {"pk": 7, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "sites"}}, {"pk": 17, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "syrup"}}, {"pk": 12, "model": "contenttypes.contenttype", "fields": {"model": "term", "name": "term", "app_label": "syrup"}}, {"pk": 3, "model": "contenttypes.contenttype", "fields": {"model": "user", "name": "user", "app_label": "auth"}}, {"pk": 10, "model": "contenttypes.contenttype", "fields": {"model": "userprofile", "name": "user profile", "app_label": "syrup"}}, {"pk": 15, "model": "contenttypes.contenttype", "fields": {"model": "z3950target", "name": "z3950 target", "app_label": "syrup"}}, {"pk": "7ab9e962df78ff5840a97773342df8bf", "model": "sessions.session", "fields": {"expire_date": "2010-07-23 09:20:53", "session_data": "gAJ9cQEoVQp0ZXN0Y29va2llcQJVBndvcmtlZHEDVRJfYXV0aF91c2VyX2JhY2tlbmRxBFUpZGph\nbmdvLmNvbnRyaWIuYXV0aC5iYWNrZW5kcy5Nb2RlbEJhY2tlbmRxBVUNX2F1dGhfdXNlcl9pZHEG\nSwF1LjI2YWFjNGJiMTNlZDE1ZjlmYjQxMzZlMWJjZGIxMDAw\n"}}, {"pk": "cd02d11771c381c73799afc5f75ea750", "model": "sessions.session", "fields": {"expire_date": "2010-07-28 13:03:40", "session_data": "gAJ9cQEoVRJfYXV0aF91c2VyX2JhY2tlbmRxAlUpZGphbmdvLmNvbnRyaWIuYXV0aC5iYWNrZW5k\ncy5Nb2RlbEJhY2tlbmRxA1UNX2F1dGhfdXNlcl9pZHEESwF1LjdlNTBmMDAyMWI4ZWQ0ZWUwOGE1\nZTdkMDUxZWNmZGZj\n"}}, {"pk": 1, "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}, {"pk": 5, "model": "admin.logentry", "fields": {"action_flag": 2, "action_time": "2010-07-14 13:07:00", "object_repr": "graham", "object_id": "1", "change_message": "Changed first_name and last_name.", "user": 1, "content_type": 3}}, {"pk": 4, "model": "admin.logentry", "fields": {"action_flag": 2, "action_time": "2010-07-14 13:05:00", "object_repr": "mita", "object_id": "3", "change_message": "Changed first_name, last_name, email, is_staff and is_superuser.", "user": 1, "content_type": 3}}, {"pk": 3, "model": "admin.logentry", "fields": {"action_flag": 1, "action_time": "2010-07-14 13:04:45", "object_repr": "mita", "object_id": "3", "change_message": "", "user": 1, "content_type": 3}}, {"pk": 2, "model": "admin.logentry", "fields": {"action_flag": 2, "action_time": "2010-07-14 13:04:41", "object_repr": "art", "object_id": "2", "change_message": "Changed first_name, last_name, email, is_staff and is_superuser.", "user": 1, "content_type": 3}}, {"pk": 1, "model": "admin.logentry", "fields": {"action_flag": 1, "action_time": "2010-07-14 13:04:23", "object_repr": "art", "object_id": "2", "change_message": "", "user": 1, "content_type": 3}}, {"pk": 1, "model": "south.migrationhistory", "fields": {"applied": "2010-07-09 13:20:26", "app_name": "syrup", "migration": "0001_initial"}}, {"pk": 2, "model": "south.migrationhistory", "fields": {"applied": "2010-07-09 13:20:26", "app_name": "syrup", "migration": "0002_auto__add_field_site_term__add_field_site_course__add_unique_site_owne"}}, {"pk": 1, "model": "syrup.userprofile", "fields": {"last_email_notice": "2010-07-08 22:26:34", "created": "2010-07-08 22:26:34", "wants_email_notices": false, "last_modified": "2010-07-08 22:26:34", "user": 1, "ils_userid": null}}, {"pk": 1, "model": "syrup.servicedesk", "fields": {"active": true, "last_modified": "2010-07-08 22:30:22", "external_id": "", "name": "Leddy Library Reserves, Lower Level", "created": "2010-07-08 22:30:22"}}, {"pk": 1, "model": "syrup.term", "fields": {"code": "2010S", "name": "2010 Summer", "created": "2010-07-08 22:29:28", "finish": "2010-09-01", "start": "2010-05-01", "last_modified": "2010-07-08 22:29:28"}}, {"pk": 2, "model": "syrup.term", "fields": {"code": "2010F", "name": "2010 Fall", "created": "2010-07-08 22:29:50", "finish": "2010-12-31", "start": "2010-09-01", "last_modified": "2010-07-08 22:29:50"}}, {"pk": 3, "model": "syrup.term", "fields": {"code": "2011W", "name": "2011 Winter", "created": "2010-07-08 22:30:05", "finish": "2011-05-01", "start": "2011-01-01", "last_modified": "2010-07-08 22:30:05"}}, {"pk": 1, "model": "syrup.department", "fields": {"active": true, "service_desk": 1, "last_modified": "2010-07-08 22:30:34", "name": "Metaphysics", "created": "2010-07-08 22:30:34"}}, {"pk": 2, "model": "syrup.department", "fields": {"active": true, "service_desk": 1, "last_modified": "2010-07-08 22:30:44", "name": "Biology", "created": "2010-07-08 22:30:44"}}, {"pk": 3, "model": "syrup.department", "fields": {"active": true, "service_desk": 1, "last_modified": "2010-07-08 22:30:54", "name": "Computer Science", "created": "2010-07-08 22:30:54"}}, {"pk": 1, "model": "syrup.course", "fields": {"code": "99-100", "department": 1, "last_modified": "2010-07-08 22:31:24", "name": "Introduction to Thought", "created": "2010-07-08 22:31:24"}}, {"pk": 2, "model": "syrup.course", "fields": {"code": "99-200", "department": 1, "last_modified": "2010-07-08 22:31:36", "name": "Intermediate Thought", "created": "2010-07-08 22:31:36"}}, {"pk": 1, "model": "syrup.z3950target", "fields": {"name": "Concat/OWA", "database": "OWA", "syntax": "USMARC", "host": "zed.concat.ca", "active": true, "port": 210}}, {"pk": 2, "model": "syrup.z3950target", "fields": {"name": "LOC", "database": "Voyager", "syntax": "USMARC", "host": "z3950.loc.gov", "active": true, "port": 7090}}, {"pk": 1, "model": "syrup.config", "fields": {"name": "application.title", "value": "Reserv-o-Matic"}}, {"pk": 2, "model": "syrup.config", "fields": {"name": "default.desk", "value": "1"}}]
Deleted: servres/trunk/conifer/genshi_namespace.py
===================================================================
--- servres/trunk/conifer/genshi_namespace.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/genshi_namespace.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,35 +0,0 @@
-# genshi_namespace
-
-# Toplevel definitions in this module will be available in when
-# rendering a Genshi template.
-
-from conifer.integration._hooksystem import gethook, callhook
-import itertools
-from itertools import cycle
-from conifer.syrup import models
-import django.forms
-
-# this probably ought to be a method on User, or another model class.
-def instructor_url(instructor, suffix=''):
- return '/instructor/%d/%s' % (instructor.id, suffix)
-
-# added to make department browse
-def department_url(department, suffix=''):
- return '/department/%d/%s' % (department.id, suffix)
-
-
-def call_or_value(obj, dflt=None):
- # This is used by the generics templates.
- if callable(obj):
- return obj() or dflt
- else:
- return obj or dflt
-
-
-def instructs(user, site):
- try:
- mbr = models.Member.objects.get(user=user, site=site)
- return mbr.role in ('INSTR', 'PROXY')
- except:
- return False
-
Deleted: servres/trunk/conifer/genshi_support.py
===================================================================
--- servres/trunk/conifer/genshi_support.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/genshi_support.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,52 +0,0 @@
-import genshi_namespace
-from django.http import HttpResponse, HttpRequest
-from genshi.template import TemplateLoader
-from genshi.filters import Translator
-from genshi.builder import tag
-import genshi.output
-from django.conf import settings
-import gettext
-from conifer.middleware.genshi_locals import get_request
-import genshi
-
-#------------------------------------------------------------
-# set up internationalization
-
-# if settings.USE_I18N:
-# translations = gettext.GNUTranslations(
-# file('locale/%s/LC_MESSAGES/conifer-syrup.mo' % settings.LANGUAGE_CODE))
-# _ = translations.ugettext
-# else:
-# _ = gettext.gettext
-
-from django.utils import translation
-_ = translation.ugettext
-
-def template_loaded(template):
- if settings.USE_I18N:
- template.filters.insert(0, Translator(_))
-
-
-dirs = [settings.HERE('templates')]
-
-loader = TemplateLoader(dirs, auto_reload=True, callback=template_loaded)
-
-def template(tname):
- return loader.load(tname)
-
-
-def _inject_django_things_into_namespace(request, ns):
- ns['_'] = _
- ns['request'] = request
- ns['ROOT'] = request.META['SCRIPT_NAME']
- ns['user'] = getattr(request, 'user', None)
- ns.update(genshi_namespace.__dict__)
-
-#------------------------------------------------------------
-# main API
-
-def render(tname, _django_type=HttpResponse, _serialization='xhtml', **kwargs):
- request = get_request()
- _inject_django_things_into_namespace(request, kwargs)
- return _django_type(template(tname).generate(**kwargs).render(_serialization, doctype='xhtml'))
-
Deleted: servres/trunk/conifer/grahams-init-fixture.json
===================================================================
--- servres/trunk/conifer/grahams-init-fixture.json 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/grahams-init-fixture.json 2010-07-15 00:55:37 UTC (rev 919)
@@ -1 +0,0 @@
-[{"pk": 22, "model": "auth.permission", "fields": {"codename": "add_logentry", "name": "Can add log entry", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_logentry", "name": "Can change log entry", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 8}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_message", "name": "Can add message", "content_type": 4}}, {"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_message", "name": "Can change message", "content_type": 4}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_message", "name": "Can delete message", "content_type": 4}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 5}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 6}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 7}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 9}}, {"pk": 46, "model": "auth.permission", "fields": {"codename": "add_config", "name": "Can add config", "content_type": 16}}, {"pk": 40, "model": "auth.permission", "fields": {"codename": "add_course", "name": "Can add course", "content_type": 14}}, {"pk": 37, "model": "auth.permission", "fields": {"codename": "add_department", "name": "Can add department", "content_type": 13}}, {"pk": 52, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 18}}, {"pk": 58, "model": "auth.permission", "fields": {"codename": "add_item", "name": "Can add item", "content_type": 20}}, {"pk": 55, "model": "auth.permission", "fields": {"codename": "add_membership", "name": "Can add membership", "content_type": 19}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_servicedesk", "name": "Can add service desk", "content_type": 11}}, {"pk": 49, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 17}}, {"pk": 34, "model": "auth.permission", "fields": {"codename": "add_term", "name": "Can add term", "content_type": 12}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_userprofile", "name": "Can add user profile", "content_type": 10}}, {"pk": 43, "model": "auth.permission", "fields": {"codename": "add_z3950target", "name": "Can add z3950 target", "content_type": 15}}, {"pk": 47, "model": "auth.permission", "fields": {"codename": "change_config", "name": "Can change config", "content_type": 16}}, {"pk": 41, "model": "auth.permission", "fields": {"codename": "change_course", "name": "Can change course", "content_type": 14}}, {"pk": 38, "model": "auth.permission", "fields": {"codename": "change_department", "name": "Can change department", "content_type": 13}}, {"pk": 53, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 18}}, {"pk": 59, "model": "auth.permission", "fields": {"codename": "change_item", "name": "Can change item", "content_type": 20}}, {"pk": 56, "model": "auth.permission", "fields": {"codename": "change_membership", "name": "Can change membership", "content_type": 19}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_servicedesk", "name": "Can change service desk", "content_type": 11}}, {"pk": 50, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 17}}, {"pk": 35, "model": "auth.permission", "fields": {"codename": "change_term", "name": "Can change term", "content_type": 12}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_userprofile", "name": "Can change user profile", "content_type": 10}}, {"pk": 44, "model": "auth.permission", "fields": {"codename": "change_z3950target", "name": "Can change z3950 target", "content_type": 15}}, {"pk": 48, "model": "auth.permission", "fields": {"codename": "delete_config", "name": "Can delete config", "content_type": 16}}, {"pk": 42, "model": "auth.permission", "fields": {"codename": "delete_course", "name": "Can delete course", "content_type": 14}}, {"pk": 39, "model": "auth.permission", "fields": {"codename": "delete_department", "name": "Can delete department", "content_type": 13}}, {"pk": 54, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 18}}, {"pk": 60, "model": "auth.permission", "fields": {"codename": "delete_item", "name": "Can delete item", "content_type": 20}}, {"pk": 57, "model": "auth.permission", "fields": {"codename": "delete_membership", "name": "Can delete membership", "content_type": 19}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_servicedesk", "name": "Can delete service desk", "content_type": 11}}, {"pk": 51, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 17}}, {"pk": 36, "model": "auth.permission", "fields": {"codename": "delete_term", "name": "Can delete term", "content_type": 12}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_userprofile", "name": "Can delete user profile", "content_type": 10}}, {"pk": 45, "model": "auth.permission", "fields": {"codename": "delete_z3950target", "name": "Can delete z3950 target", "content_type": 15}}, {"pk": 1, "model": "auth.user", "fields": {"username": "graham", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2010-07-09 09:20:52", "groups": [], "user_permissions": [], "password": "sha1$c1214$8cc63f8cfc851f04d1058f8448d895d0532a48ad", "email": "fawcett at uwindsor.ca", "date_joined": "2010-07-09 09:15:14"}}, {"pk": 16, "model": "contenttypes.contenttype", "fields": {"model": "config", "name": "config", "app_label": "syrup"}}, {"pk": 5, "model": "contenttypes.contenttype", "fields": {"model": "contenttype", "name": "content type", "app_label": "contenttypes"}}, {"pk": 14, "model": "contenttypes.contenttype", "fields": {"model": "course", "name": "course", "app_label": "syrup"}}, {"pk": 13, "model": "contenttypes.contenttype", "fields": {"model": "department", "name": "department", "app_label": "syrup"}}, {"pk": 2, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "auth"}}, {"pk": 18, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "syrup"}}, {"pk": 20, "model": "contenttypes.contenttype", "fields": {"model": "item", "name": "item", "app_label": "syrup"}}, {"pk": 8, "model": "contenttypes.contenttype", "fields": {"model": "logentry", "name": "log entry", "app_label": "admin"}}, {"pk": 19, "model": "contenttypes.contenttype", "fields": {"model": "membership", "name": "membership", "app_label": "syrup"}}, {"pk": 4, "model": "contenttypes.contenttype", "fields": {"model": "message", "name": "message", "app_label": "auth"}}, {"pk": 9, "model": "contenttypes.contenttype", "fields": {"model": "migrationhistory", "name": "migration history", "app_label": "south"}}, {"pk": 1, "model": "contenttypes.contenttype", "fields": {"model": "permission", "name": "permission", "app_label": "auth"}}, {"pk": 11, "model": "contenttypes.contenttype", "fields": {"model": "servicedesk", "name": "service desk", "app_label": "syrup"}}, {"pk": 6, "model": "contenttypes.contenttype", "fields": {"model": "session", "name": "session", "app_label": "sessions"}}, {"pk": 7, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "sites"}}, {"pk": 17, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "syrup"}}, {"pk": 12, "model": "contenttypes.contenttype", "fields": {"model": "term", "name": "term", "app_label": "syrup"}}, {"pk": 3, "model": "contenttypes.contenttype", "fields": {"model": "user", "name": "user", "app_label": "auth"}}, {"pk": 10, "model": "contenttypes.contenttype", "fields": {"model": "userprofile", "name": "user profile", "app_label": "syrup"}}, {"pk": 15, "model": "contenttypes.contenttype", "fields": {"model": "z3950target", "name": "z3950 target", "app_label": "syrup"}}, {"pk": "7ab9e962df78ff5840a97773342df8bf", "model": "sessions.session", "fields": {"expire_date": "2010-07-23 09:20:53", "session_data": "gAJ9cQEoVQp0ZXN0Y29va2llcQJVBndvcmtlZHEDVRJfYXV0aF91c2VyX2JhY2tlbmRxBFUpZGph\nbmdvLmNvbnRyaWIuYXV0aC5iYWNrZW5kcy5Nb2RlbEJhY2tlbmRxBVUNX2F1dGhfdXNlcl9pZHEG\nSwF1LjI2YWFjNGJiMTNlZDE1ZjlmYjQxMzZlMWJjZGIxMDAw\n"}}, {"pk": 1, "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}, {"pk": 1, "model": "south.migrationhistory", "fields": {"applied": "2010-07-09 13:20:26", "app_name": "syrup", "migration": "0001_initial"}}, {"pk": 2, "model": "south.migrationhistory", "fields": {"applied": "2010-07-09 13:20:26", "app_name": "syrup", "migration": "0002_auto__add_field_site_term__add_field_site_course__add_unique_site_owne"}}, {"pk": 1, "model": "syrup.userprofile", "fields": {"last_email_notice": "2010-07-08 22:26:34", "created": "2010-07-08 22:26:34", "wants_email_notices": false, "last_modified": "2010-07-08 22:26:34", "user": 1, "ils_userid": null}}, {"pk": 1, "model": "syrup.servicedesk", "fields": {"active": true, "last_modified": "2010-07-08 22:30:22", "external_id": "", "name": "Leddy Library Reserves, Lower Level", "created": "2010-07-08 22:30:22"}}, {"pk": 1, "model": "syrup.term", "fields": {"code": "2010S", "name": "2010 Summer", "created": "2010-07-08 22:29:28", "finish": "2010-09-01", "start": "2010-05-01", "last_modified": "2010-07-08 22:29:28"}}, {"pk": 2, "model": "syrup.term", "fields": {"code": "2010F", "name": "2010 Fall", "created": "2010-07-08 22:29:50", "finish": "2010-12-31", "start": "2010-09-01", "last_modified": "2010-07-08 22:29:50"}}, {"pk": 3, "model": "syrup.term", "fields": {"code": "2011W", "name": "2011 Winter", "created": "2010-07-08 22:30:05", "finish": "2011-05-01", "start": "2011-01-01", "last_modified": "2010-07-08 22:30:05"}}, {"pk": 1, "model": "syrup.department", "fields": {"active": true, "service_desk": 1, "last_modified": "2010-07-08 22:30:34", "name": "Metaphysics", "created": "2010-07-08 22:30:34"}}, {"pk": 2, "model": "syrup.department", "fields": {"active": true, "service_desk": 1, "last_modified": "2010-07-08 22:30:44", "name": "Biology", "created": "2010-07-08 22:30:44"}}, {"pk": 3, "model": "syrup.department", "fields": {"active": true, "service_desk": 1, "last_modified": "2010-07-08 22:30:54", "name": "Computer Science", "created": "2010-07-08 22:30:54"}}, {"pk": 1, "model": "syrup.course", "fields": {"code": "99-100", "department": 1, "last_modified": "2010-07-08 22:31:24", "name": "Introduction to Thought", "created": "2010-07-08 22:31:24"}}, {"pk": 2, "model": "syrup.course", "fields": {"code": "99-200", "department": 1, "last_modified": "2010-07-08 22:31:36", "name": "Intermediate Thought", "created": "2010-07-08 22:31:36"}}, {"pk": 1, "model": "syrup.z3950target", "fields": {"name": "zed/OWA", "database": "OWA", "syntax": "USMARC", "host": "zed.concat.ca", "active": true, "port": 210}}, {"pk": 1, "model": "syrup.config", "fields": {"name": "application.title", "value": "Reserv-o-Matic"}}, {"pk": 2, "model": "syrup.config", "fields": {"name": "default.desk", "value": "1"}}]
Deleted: servres/trunk/conifer/integration/_hooksystem.py
===================================================================
--- servres/trunk/conifer/integration/_hooksystem.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/integration/_hooksystem.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,21 +0,0 @@
-# TODO: decide whether or not to use this!
-
-import warnings
-import conifer.syrup.integration as HOOKS
-
-__all__ = ['callhook', 'callhook_required', 'gethook']
-
-def gethook(name, default=None):
- print dir(HOOKS)
- print (name, getattr(HOOKS, name))
- return getattr(HOOKS, name) or default
-
-def callhook_required(name, *args, **kwargs):
- f = getattr(HOOKS, name)
- assert f, 'implementation for hook %r required but not found' % name
- return f(*args, **kwargs)
-
-def callhook(name, *args, **kwargs):
- f = getattr(HOOKS, name)
- if f:
- return f(*args, **kwargs)
Copied: servres/trunk/conifer/integration/auth_evergreen/__init__.py (from rev 918, servres/trunk/conifer/custom/__init__.py)
===================================================================
Copied: servres/trunk/conifer/integration/auth_evergreen/django.py (from rev 918, servres/trunk/conifer/custom/auth_evergreen.py)
===================================================================
--- servres/trunk/conifer/integration/auth_evergreen/django.py (rev 0)
+++ servres/trunk/conifer/integration/auth_evergreen/django.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,53 @@
+from eg_xmlrpc import EvergreenAuthServer
+from django.contrib.auth.models import User
+from django.conf import settings
+
+class EvergreenAuthBackend(EvergreenAuthServer):
+
+ def __init__(self):
+ assert settings.EVERGREEN_GATEWAY_SERVER, \
+ 'EvergreenAuthBackend requires settings.EVERGREEN_GATEWAY_SERVER'
+ EvergreenAuthServer.__init__(
+ self, settings.EVERGREEN_GATEWAY_SERVER)
+
+ def authenticate(self, username=None, password=None):
+ pwd_valid = self.login(username, password)
+ if pwd_valid:
+ return self.maybe_initialize_user(username)
+ return None
+
+ def get_user(self, user_id):
+ try:
+ return User.objects.get(pk=user_id)
+ except User.DoesNotExist:
+ return None
+
+ def maybe_initialize_user(self, username, look_local=True):
+ """Look up user in Django db; if not found, fetch user detail
+ from backend and set up a local user object. Return None if no
+ such user exists in either Django or the backend.
+
+ Setting look_local=False skips the Django search and heads
+ straight to the backend; this shaves a database call when
+ walking a set of backends to initialize a user. Skipping
+ look_local on a username that already exists in Django will
+ certainly lead to an integrity error.
+
+ This method is NOT part of the Django backend interface.
+ """
+ user = None
+ if look_local:
+ try:
+ user = User.objects.get(username=username)
+ except User.DoesNotExist:
+ pass
+ if user is None:
+ u = self.lookup(username)
+ if u: # user found in Evergreen.
+ user = User(username=username,
+ first_name = u['first_name'],
+ last_name = u['last_name'],
+ email = u['email'])
+ user.set_unusable_password()
+ user.save()
+ return user
Copied: servres/trunk/conifer/integration/auth_evergreen/eg_xmlrpc.py (from rev 918, servres/trunk/conifer/custom/auth_evergreen_support.py)
===================================================================
--- servres/trunk/conifer/integration/auth_evergreen/eg_xmlrpc.py (rev 0)
+++ servres/trunk/conifer/integration/auth_evergreen/eg_xmlrpc.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,86 @@
+# auth_evergreen_support -- Authentication and user lookup against an
+# Evergreen XML-RPC server.
+
+# This is the Evergreen-specific stuff, with no Django dependencies.
+
+import xmlrpclib
+import md5
+import warnings
+import time
+
+#----------------------------------------------------------------------
+# support
+
+def do_request(proxy, method, *args):
+ # Against my test server, I would get intermittent
+ # ProtcolErrors. If we get one, try again, backing off gradually.
+ for attempt in range(5):
+ try:
+ return getattr(proxy, method)(*args)
+ except xmlrpclib.ProtocolError, pe:
+ warnings.warn('open-ils xml-rpc protocol error: trying again: ' + method)
+ time.sleep(0.1 * attempt) # back off a bit and try again
+
+def _hsh(s):
+ return md5.new(s).hexdigest()
+
+#----------------------------------------------------------------------
+# main interface
+
+class EvergreenAuthServer(object):
+
+ def __init__(self, address, verbose=False):
+ self.address = address
+ self.verbose = verbose
+
+ def proxy(self, service):
+ server = xmlrpclib.Server(
+ 'http://%s/xml-rpc/%s' % (self.address, service),
+ verbose=self.verbose)
+ def req(method, *args):
+ return do_request(server, method, *args)
+ return req
+
+ def login(self, username, password):
+ """Return True if the username/password are good, False otherwise."""
+ prx = self.proxy('open-ils.auth')
+ seed = prx('open-ils.auth.authenticate.init', username)
+ resp = prx('open-ils.auth.authenticate.complete',
+ dict(username=username,
+ password=_hsh(seed + _hsh(password)),
+ type='reserves'))
+ try:
+ # do we need the authkey for anything?
+ authkey = resp['payload']['authtoken']
+ return True
+ except KeyError:
+ return False
+
+ def lookup(self, username):
+ """Given a username, return a dict, or None. The dict must have
+ four keys (first_name, last_name, email, external_username), where
+ external_username value is the username parameter."""
+
+ prx = self.proxy('open-ils.actor')
+ r = prx('open-ils.actor.user.search.username', 'admin')
+ if not r:
+ return None
+ else:
+ r = r[0]['__data__']
+ f = lambda k: r.get(k)
+ person = dict((j, f(k)) for j,k in [('first_name', 'first_given_name'),
+ ('last_name', 'family_name'),
+ ('email', 'email'),
+ ('external_username', 'usrname')])
+ return person
+
+#----------------------------------------------------------------------
+# testing
+
+if __name__ == '__main__':
+ from pprint import pprint
+ address = '192.168.1.10'
+ egreen = EvergreenAuthServer(address)
+ username, password = 'admin', 'open-ils'
+ print egreen.login(username, password)
+ pprint(egreen.lookup('admin'))
Deleted: servres/trunk/conifer/integration/hooks.py
===================================================================
--- servres/trunk/conifer/integration/hooks.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/integration/hooks.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,59 +0,0 @@
-from datetime import date
-from django.conf import settings
-from conifer.libsystems.evergreen.support import initialize
-from conifer.libsystems.z3950 import marcxml as M
-from conifer.libsystems.evergreen import item_status as I
-from conifer.libsystems.z3950 import pyz3950_search as PZ
-
-def department_course_catalogue():
- """
- Return a list of rows representing all known, active courses and
- the departments to which they belong. Each row should be a tuple
- in the form: ('Department name', 'course-code', 'Course name').
- """
- return [
- ('Arts','01-01-209','Ethics in the Professions'),
- ('Social Work','02-47-204','Issues & Perspectives in Social Welfare'),
- ('Social Work','02-47-211','Prof Comm in Gen. Social Work Practice'),
- ('Social Work','02-47-336','Theory and Practice Social Work I'),
- ('Social Work','02-47-361','Field Practice I - A'),
- ('Social Work','02-47-362','Field Practice I - B'),
- ('Social Work','02-47-370','Mothering and Motherhood'),
- ('Social Work','02-47-456','Social Work and Health'),
- ]
-
-def term_catalogue():
- """
- Return a list of rows representing all known terms. Each row
- should be a tuple in the form: ('term-code', 'term-name',
- 'start-date', 'end-date'), where the dates are instances of the
- datetime.date class.
- """
- return [
- ('2011S', '2011 Summer', date(2011,5,1), date(2011,9,1)),
- ('2011F', '2011 Fall', date(2011,9,1), date(2011,12,31)),
- ]
-
-
-#--------------------------------------------------
-# ILS integration
-
-EG_BASE = 'http://%s/' % settings.EVERGREEN_GATEWAY_SERVER
-initialize(EG_BASE)
-
-
-def item_status(item):
- if 'psychology' in item.title.lower():
- return (8, 4, 2)
- else:
- return (2, 0, 0)
-
-
-def cat_search(query, start=1, limit=10):
- if query.startswith(EG_BASE):
- results = M.marcxml_to_records(I.url_to_marcxml(query))
- numhits = len(results)
- else:
- cat_host, cat_port, cat_db = settings.Z3950_CONFIG
- results, numhits = PZ.search(cat_host, cat_port, cat_db, query, start, limit)
- return results, numhits
Added: servres/trunk/conifer/integration/uwindsor.py
===================================================================
--- servres/trunk/conifer/integration/uwindsor.py (rev 0)
+++ servres/trunk/conifer/integration/uwindsor.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,113 @@
+from datetime import date
+from django.conf import settings
+from conifer.libsystems.evergreen.support import initialize, E1
+from conifer.libsystems.z3950 import marcxml as M
+from conifer.libsystems.evergreen import item_status as I
+from conifer.libsystems.z3950 import pyz3950_search as PZ
+from xml.etree import ElementTree as ET
+import re
+
+
+def department_course_catalogue():
+ """
+ Return a list of rows representing all known, active courses and
+ the departments to which they belong. Each row should be a tuple
+ in the form: ('Department name', 'course-code', 'Course name').
+ """
+ return [
+ ('Arts','01-01-209','Ethics in the Professions'),
+ ('Social Work','02-47-204','Issues & Perspectives in Social Welfare'),
+ ('Social Work','02-47-211','Prof Comm in Gen. Social Work Practice'),
+ ('Social Work','02-47-336','Theory and Practice Social Work I'),
+ ('Social Work','02-47-361','Field Practice I - A'),
+ ('Social Work','02-47-362','Field Practice I - B'),
+ ('Social Work','02-47-370','Mothering and Motherhood'),
+ ('Social Work','02-47-456','Social Work and Health'),
+ ]
+
+def term_catalogue():
+ """
+ Return a list of rows representing all known terms. Each row
+ should be a tuple in the form: ('term-code', 'term-name',
+ 'start-date', 'end-date'), where the dates are instances of the
+ datetime.date class.
+ """
+ return [
+ ('2011S', '2011 Summer', date(2011,5,1), date(2011,9,1)),
+ ('2011F', '2011 Fall', date(2011,9,1), date(2011,12,31)),
+ ]
+
+
+#--------------------------------------------------
+# ILS integration
+
+EG_BASE = 'http://%s/' % settings.EVERGREEN_GATEWAY_SERVER
+initialize(EG_BASE)
+
+
+def item_status(item):
+ if 'psychology' in item.title.lower():
+ return (8, 4, 2)
+ else:
+ return (2, 0, 0)
+
+
+def cat_search(query, start=1, limit=10):
+ if query.startswith(EG_BASE):
+ # query is an Evergreen URL
+ results = M.marcxml_to_records(I.url_to_marcxml(query))
+ numhits = len(results)
+ else:
+ # query is an actual Z39.50 query
+ cat_host, cat_port, cat_db = settings.Z3950_CONFIG
+ results, numhits = PZ.search(cat_host, cat_port, cat_db, query, start, limit)
+ return results, numhits
+
+def bib_id_to_marcxml(bib_id):
+ """
+ Given a bib_id, return a MARC record in MARCXML format. Return
+ None if the bib_id does not exist.
+ """
+ try:
+ xml = I.bib_id_to_marcxml(bib_id)
+ return ET.fromstring(xml)
+ except:
+ return None
+
+def get_better_copy_of_marc(marc_string):
+ """
+ This function takes a MARCXML record and returns either the same
+ record, or another instance of the same record from a different
+ source.
+
+ This is a hack. There is currently at least one Z39.50 server that
+ returns a MARCXML record with broken character encoding. This
+ function declares a point at which we can work around that server.
+ """
+ dct = M.marcxml_to_dictionary(marc_string)
+ bib_id = dct.get('901c')
+ better = bib_id_to_marcxml(bib_id)
+ return better or marc_string
+
+def marcxml_to_url(marc_string):
+ """
+ Given a MARC record, return either a URL (representing the
+ electronic resource) or None.
+
+ Typically this will be the 856$u value; but in Conifer, 856$9 and
+ 856$u form an associative array, where $9 holds the institution
+ codes and $u holds the URLs.
+ """
+ LIBCODE = 'OWA' # Leddy
+ try:
+ dct = M.marcxml_to_dictionary(marc_string)
+ words = lambda string: re.findall(r'\S+', string)
+ keys = words(dct.get('8569'))
+ urls = words(dct.get('856u'))
+ print 'KEYS:', keys
+ print 'URLS:', urls
+ return urls[keys.index(LIBCODE)]
+ except:
+ return None
+
+
Added: servres/trunk/conifer/integration/uwindsor_campus_info.py
===================================================================
--- servres/trunk/conifer/integration/uwindsor_campus_info.py (rev 0)
+++ servres/trunk/conifer/integration/uwindsor_campus_info.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,14 @@
+from urllib2 import *
+from django.utils import simplejson
+
+CAMPUS_INFO_SERVICE = 'http://fawcett.medialab.uwindsor.ca/campus-info/'
+
+def call(name, *args):
+ url = '%s%s?%s' % (CAMPUS_INFO_SERVICE, name, simplejson.dumps(args))
+ raw = urlopen(url).read()
+ return simplejson.loads(raw)
+
+if __name__ == '__main__':
+ print call('methods_supported')
+ print call('person_lookup', 'fawcett')
+ print call('membership_ids', 'dunn15')
Modified: servres/trunk/conifer/libsystems/evergreen/fm_IDL.xml
===================================================================
--- servres/trunk/conifer/libsystems/evergreen/fm_IDL.xml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/libsystems/evergreen/fm_IDL.xml 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,3902 +1,8 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!--
-
-Copyright (C) 2006-2008 Georgia Public Library Service
-Copyright (C) 2008 Equinox Software, Inc
-Author: Mike Rylander <miker at esilibrary.com>
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
--->
-
-<IDL xmlns="http://opensrf.org/spec/IDL/base/v1" xmlns:oils_persist="http://open-ils.org/spec/opensrf/IDL/persistence/v1" xmlns:oils_obj="http://open-ils.org/spec/opensrf/IDL/objects/v1" xmlns:reporter="http://open-ils.org/spec/opensrf/IDL/reporter/v1" xmlns:permacrud="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
-
- <!-- Virtual classes -->
- <class id="mups" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_payment_summary" oils_persist:virtual="true">
- <fields>
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="usr" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="forgive_payment" oils_obj:array_position="4" oils_persist:virtual="true" />
- <field name="work_payment" oils_obj:array_position="5" oils_persist:virtual="true" />
- <field name="credit_payment" oils_obj:array_position="6" oils_persist:virtual="true" />
- <field name="goods_payment" oils_obj:array_position="7" oils_persist:virtual="true" />
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
-
- <class id="mwps" controller="open-ils.cstore" oils_obj:fieldmapper="money::workstation_payment_summary" oils_persist:virtual="true">
- <fields>
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="workstation" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="cash_payment" oils_obj:array_position="4" oils_persist:virtual="true" />
- <field name="check_payment" oils_obj:array_position="5" oils_persist:virtual="true" />
- <field name="credit_card_payment" oils_obj:array_position="6" oils_persist:virtual="true" />
- </fields>
- <links>
- <link field="workstation" reltype="has_a" key="id" map="" class="aws"/>
- </links>
- </class>
-
- <class id="brn" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_node" oils_persist:virtual="true">
- <fields>
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="true" />
- <field name="children" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="owner_doc" oils_obj:array_position="9" oils_persist:virtual="true" />
- <field name="intra_doc_id" oils_obj:array_position="5" oils_persist:virtual="true" />
- <field name="parent_node" oils_obj:array_position="10" oils_persist:virtual="true" />
- <field name="node_type" oils_obj:array_position="8" oils_persist:virtual="true" />
- <field name="namespace_uri" oils_obj:array_position="7" oils_persist:virtual="true" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="true" />
- <field name="value" oils_obj:array_position="11" oils_persist:virtual="true" />
- </fields>
- </class>
-
- <class id="mvr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::virtual_record" oils_persist:virtual="true">
- <fields>
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="title" oils_obj:array_position="19" oils_persist:virtual="true" />
- <field name="author" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="doc_id" oils_obj:array_position="6" oils_persist:virtual="true" />
- <field name="doc_type" oils_obj:array_position="7" oils_persist:virtual="true" />
- <field name="pubdate" oils_obj:array_position="12" oils_persist:virtual="true" />
- <field name="isbn" oils_obj:array_position="9" oils_persist:virtual="true" />
- <field name="publisher" oils_obj:array_position="13" oils_persist:virtual="true" />
- <field name="tcn" oils_obj:array_position="18" oils_persist:virtual="true" />
- <field name="subject" oils_obj:array_position="16" oils_persist:virtual="true" />
- <field name="types_of_resource" oils_obj:array_position="21" oils_persist:virtual="true" />
- <field name="call_numbers" oils_obj:array_position="4" oils_persist:virtual="true" />
- <field name="edition" oils_obj:array_position="8" oils_persist:virtual="true" />
- <field name="online_loc" oils_obj:array_position="10" oils_persist:virtual="true" />
- <field name="synopsis" oils_obj:array_position="17" oils_persist:virtual="true" />
- <field name="physical_description" oils_obj:array_position="11" oils_persist:virtual="true" />
- <field name="toc" oils_obj:array_position="20" oils_persist:virtual="true" />
- <field name="copy_count" oils_obj:array_position="5" oils_persist:virtual="true" />
- <field name="series" oils_obj:array_position="15" oils_persist:virtual="true" />
- <field name="serials" oils_obj:array_position="14" oils_persist:virtual="true" />
- </fields>
- </class>
-
- <class id="ex" controller="open-ils.cstore" oils_obj:fieldmapper="ex" oils_persist:virtual="true">
- <fields>
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="err_msg" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="type" oils_obj:array_position="4" oils_persist:virtual="true" />
- </fields>
- </class>
-
- <class id="perm_ex" controller="open-ils.cstore" oils_obj:fieldmapper="perm_ex" oils_persist:virtual="true">
- <fields>
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="err_msg" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="type" oils_obj:array_position="4" oils_persist:virtual="true" />
- </fields>
- </class>
-
- <class id="amtr" controller="open-ils.cstore" oils_obj:fieldmapper="action::matrix_test_result" oils_persist:virtual="true">
- <fields oils_persist:primary="matchpoint">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Success" name="success" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Failure Part" name="fail_part" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
- </links>
- </class>
-
-
- <!-- Actually in the DB -->
- <class id="vbq" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::bib_queue" oils_persist:tablename="vandelay.bib_queue" reporter:label="Import/Overlay Bib Queue">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.queue_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Queue ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Complete" name="complete" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Type" name="queue_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_BIB_IMPORT_QUEUE|UPDATE_BIB_IMPORT_QUEUE|DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vqbr" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_bib_record" oils_persist:tablename="vandelay.queued_bib_record" reporter:label="Queued Bib Record">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_record_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Create Time" name="create_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Import Time" name="import_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="MARC" name="marc" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Queue" name="queue" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Bib Source" name="bib_source" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Final Target Record" name="imported_as" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Purpose" name="purpose" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="queue" reltype="has_a" key="id" map="" class="vbq"/>
- <link field="bib_source" reltype="has_a" key="id" map="" class="cbs"/>
- <link field="imported_as" reltype="has_a" key="id" map="" class="bre"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_BIB_IMPORT_QUEUE|UPDATE_BIB_IMPORT_QUEUE|DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vqbrad" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::bib_attr_definition" oils_persist:tablename="vandelay.bib_attr_definition" reporter:label="Queued Bib Record Attribute Definition">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.bib_attr_definition_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Remove RegExp" name="remove" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_BIB_IMPORT_FIELD_DEF" global_required="true"/>
- <retrieve permission="CREATE_BIB_IMPORT_IMPORT_FIELD_DEF|UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF|DELETE_BIB_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- <update permission="UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- <delete permission="DELETE_BIB_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vqbra" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_bib_record_attr" oils_persist:tablename="vandelay.queued_bib_record_attr" reporter:label="Queued Bib Record Attribute">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_bib_record_attr_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Attribute ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Record" name="record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Value" name="attr_value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="vqbr"/>
- <link field="field" reltype="has_a" key="id" map="" class="vqbrad"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_BIB_IMPORT_QUEUE|UPDATE_BIB_IMPORT_QUEUE|DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vbm" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::bib_match" oils_persist:tablename="vandelay.bib_match" reporter:label="Queued Bib Record Match">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.bib_match_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Match ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Queued Record" name="queued_record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Matched Attribute" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Evergreen Record" name="eg_record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Field Type" name="field_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="queued_record" reltype="has_a" key="id" map="" class="vqbr"/>
- <link field="eg_record" reltype="has_a" key="id" map="" class="bre"/>
- <link field="matched_attr" reltype="has_a" key="id" map="" class="vqbra"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_BIB_IMPORT_QUEUE|UPDATE_BIB_IMPORT_QUEUE|DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_BIB_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_BIB_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vaq" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::authority_queue" oils_persist:tablename="vandelay.authority_queue" reporter:label="Import/Overlay Authority Queue">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.queue_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Queue ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Complete" name="complete" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Type" name="queue_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Purpose" name="queue_purpose" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_AUTHORITY_IMPORT_QUEUE|UPDATE_AUTHORITY_IMPORT_QUEUE|DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vqar" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_authority_record" oils_persist:tablename="vandelay.queued_authority_record" reporter:label="Queued Authority Record">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_record_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Create Time" name="create_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Import Time" name="import_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="MARC" name="marc" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Queue" name="queue" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Final Target Record" name="imported_as" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Purpose" name="purpose" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="queue" reltype="has_a" key="id" map="" class="vaq"/>
- <link field="imported_as" reltype="has_a" key="id" map="" class="are"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_AUTHORITY_IMPORT_QUEUE|UPDATE_AUTHORITY_IMPORT_QUEUE|DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vqarad" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::authority_attr_definition" oils_persist:tablename="vandelay.authority_attr_definition" reporter:label="Queued Authority Record Attribute Definition">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.authority_attr_definition_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Code" name="code" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="XPath" name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Remove RegExp" name="remove" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Is Identifier?" name="ident" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- <retrieve permission="CREATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF|UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF|DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- <update permission="UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- <delete permission="DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vqara" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_authority_record_attr" oils_persist:tablename="vandelay.queued_authority_record_attr" reporter:label="Queued Authority Record Attribute">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_authority_record_attr_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Attribute ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Record" name="record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Value" name="attr_value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="vaqr"/>
- <link field="field" reltype="has_a" key="id" map="" class="vqarad"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_AUTHORITY_IMPORT_QUEUE|UPDATE_AUTHORITY_IMPORT_QUEUE|DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="vam" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::authority_match" oils_persist:tablename="vandelay.authority_match" reporter:label="Queued Authority Record Match">
- <fields oils_persist:primary="id" oils_persist:sequence="vandelay.authority_match_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Match ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Queued Record" name="queued_record" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Matched Attribute" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Evergreen Record" name="eg_record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="queued_record" reltype="has_a" key="id" map="" class="vqbr"/>
- <link field="eg_record" reltype="has_a" key="id" map="" class="bre"/>
- <link field="matched_attr" reltype="has_a" key="id" map="" class="vqbra"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <retrieve permission="CREATE_AUTHORITY_IMPORT_QUEUE|UPDATE_AUTHORITY_IMPORT_QUEUE|DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <update permission="UPDATE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- <delete permission="DELETE_AUTHORITY_IMPORT_QUEUE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
-
- <class id="auoi" controller="open-ils.cstore" oils_obj:fieldmapper="actor::usr_org_unit_opt_in" oils_persist:tablename="actor.usr_org_unit_opt_in" reporter:label="User Sharing Opt-in">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_org_unit_opt_in_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Opt-in ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Workstation" name="opt_in_ws" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Staff Member" name="staff" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Allowed Org Unit" name="org_unit" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Opt-in Date/Time" name="opt_in_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- </fields>
- <links>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="opt_in_ws" reltype="has_a" key="id" map="" class="aws"/>
- </links>
- </class>
-
- <class id="aws" controller="open-ils.cstore" oils_obj:fieldmapper="actor::workstation" oils_persist:tablename="actor.workstation" reporter:label="Workstation">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.workstation_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Workstation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Workstation Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="ccm" controller="open-ils.cstore" oils_obj:fieldmapper="config::circ_modifier" oils_persist:tablename="config.circ_modifier" reporter:label="Circulation Modifier">
- <fields oils_persist:primary="code">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="SIP2 Media Type" name="sip2_media_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Magnetic Media" name="magnetic_media" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_CIRC_MOD" context_field="parent_ou"/>
- <retrieve/>
- <update permission="UPDATE_CIRC_MOD" context_field="parent_ou"/>
- <delete permission="DELETE_CIRC_MOD" context_field="parent_ou"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="cvrfm" controller="open-ils.cstore" oils_obj:fieldmapper="config::videorecording_format_map" oils_persist:tablename="config.videorecording_format_map" reporter:label="Videorecording Format" oils_persist:field_safe="true">
- <fields oils_persist:primary="code">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
-
- <class id="chmm" controller="open-ils.cstore" oils_obj:fieldmapper="config::hold_matrix_matchpoint" oils_persist:tablename="config.hold_matrix_matchpoint" reporter:label="Hold Matrix Matchpoint">
- <fields oils_persist:primary="id" oils_persist:sequence="config.hold_matrix_matchpoint_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Matchpoint ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Active?" name="active" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="User Home Library" name="user_home_ou" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Request Library" name="request_ou" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Pickup Library" name="pickup_ou" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Owning Library" name="item_owning_ou" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Item Circ Library" name="item_circ_ou" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="User Permission Group" name="usr_grp" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Requestor Permission Group" name="requestor_grp" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="12" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="MARC Type" name="marc_type" oils_obj:array_position="13" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="MARC Form" name="marc_form" oils_obj:array_position="14" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="Videorecording Format" name="marc_vr_format" oils_obj:array_position="15" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="Reference?" name="ref_flag" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links>
- <link field="user_home_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="request_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="pickup_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="item_owning_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="item_circ_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="usr_grp" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="requestor_grp" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="circ_modifier" reltype="has_a" key="id" map="" class="ccm"/>
- <link field="marc_type" reltype="has_a" key="id" map="" class="ccm"/>
- <link field="marc_type" reltype="has_a" key="code" map="" class="citm"/>
- <link field="marc_form" reltype="has_a" key="code" map="" class="cifm"/>
- <link field="marc_vr_format" reltype="has_a" key="code" map="" class="cvrfm"/>
- </links>
- </class>
-
- <class id="ccmm" controller="open-ils.cstore" oils_obj:fieldmapper="config::circ_matrix_matchpoint" oils_persist:tablename="config.circ_matrix_matchpoint" reporter:label="Circulation Matrix Matchpoint">
- <fields oils_persist:primary="id" oils_persist:sequence="config.circ_matrix_matchpoint_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Matchpoint ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Active?" name="active" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Org Unit" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Permission Group" name="grp" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="7" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="MARC Type" name="marc_type" oils_obj:array_position="8" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="MARC Form" name="marc_form" oils_obj:array_position="9" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="Videorecording Format" name="marc_vr_format" oils_obj:array_position="10" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="link"/>
- <field reporter:label="Reference?" name="ref_flag" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="User Age: Lower Bound" name="usr_age_lower_bound" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User Age: Upper Bound" name="usr_age_upper_bound" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- <link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="circ_modifier" reltype="has_a" key="id" map="" class="ccm"/>
- <link field="marc_type" reltype="has_a" key="id" map="" class="ccm"/>
- <link field="marc_type" reltype="has_a" key="code" map="" class="citm"/>
- <link field="marc_form" reltype="has_a" key="code" map="" class="cifm"/>
- <link field="marc_vr_format" reltype="has_a" key="code" map="" class="cvrfm"/>
- </links>
- </class>
-
- <class id="chmt" controller="open-ils.cstore" oils_obj:fieldmapper="config::hold_matrix_test" oils_persist:tablename="config.hold_matrix_test" reporter:label="Hold Matrix Test Set">
- <fields oils_persist:primary="matchpoint">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Holdable?" name="holdable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Range is from Owning Lib?" name="distance_is_from_owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Transit Range" name="transit_range" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Max Holds" name="max_holds" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Max includes Frozen" name="include_frozen_holds" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Copy Age Hold Protection Rule" name="age_hold_protect_rule" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
- <link field="age_hold_protect_rule" reltype="has_a" key="id" map="" class="crahp"/>
- </links>
- </class>
-
- <class id="ccmt" controller="open-ils.cstore" oils_obj:fieldmapper="config::circ_matrix_test" oils_persist:tablename="config.circ_matrix_test" reporter:label="Circulation Matrix Test Set">
- <fields oils_persist:primary="matchpoint">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Circulate?" name="circulate" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Max Items Out" name="max_items_out" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Max Overdue" name="max_overdue" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Max Fines" name="max_fines" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Test Script" name="script_test" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
- </links>
- </class>
-
- <class id="ccmcmt" controller="open-ils.cstore" oils_obj:fieldmapper="config::circ_matrix_circ_mod_test" oils_persist:tablename="config.circ_matrix_circ_mod_test" reporter:label="Circulation Matrix Circulation Modifier Subtest">
- <fields oils_persist:primary="id" oils_persist:sequence="config.circ_matrix_circ_mod_test_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Test ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Items Out" name="items_out" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Circulation Modifier" name="circ_mod" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
- <link field="circ_mod" reltype="has_a" key="id" map="" class="ccm"/>
- </links>
- </class>
-
- <class id="ccmrs" controller="open-ils.cstore" oils_obj:fieldmapper="config::circ_matrix_ruleset" oils_persist:tablename="config.circ_matrix_ruleset" reporter:label="Circulation Matrix Rule Set">
- <fields oils_persist:primary="matchpoint">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Matchpoint ID" name="matchpoint" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Duration Rule" name="duration_rule" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Recurring Fine Rule" name="recurring_fine_rule" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="matchpoint" reltype="has_a" key="id" map="" class="ccmm"/>
- <link field="duration_rule" reltype="has_a" key="id" map="" class="crcd"/>
- <link field="max_fine_rule" reltype="has_a" key="id" map="" class="crmf"/>
- <link field="recurring_fine_rule" reltype="has_a" key="id" map="" class="crrf"/>
- </links>
- </class>
-
- <class id="cit" controller="open-ils.cstore" oils_obj:fieldmapper="config::identification_type" oils_persist:tablename="config.identification_type" reporter:label="Identification Type">
- <fields oils_persist:primary="id" oils_persist:sequence="config.identification_type_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Identification ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Identification Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- </class>
-
- <class id="asvq" controller="open-ils.cstore" oils_obj:fieldmapper="action::survey_question" oils_persist:tablename="action.survey_question" reporter:label="User Survey Question">
- <fields oils_persist:primary="id" oils_persist:sequence="action.survey_question_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Answers" name="answers" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Responses" name="responses" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Question ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Question" name="question" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Survey" name="survey" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="survey" reltype="has_a" key="id" map="" class="asv"/>
- <link field="responses" reltype="has_many" key="question" map="" class="asvr"/>
- <link field="answers" reltype="has_many" key="question" map="" class="asva"/>
- </links>
- </class>
- <class id="mbts" controller="open-ils.cstore" oils_obj:fieldmapper="money::billable_transaction_summary" oils_persist:tablename="money.billable_xact_summary" reporter:label="Billable Transaction Summary">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Balance Owed" name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Transaction ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Last Billing Note" name="last_billing_note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Last Billing Timestamp" name="last_billing_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Billing Type" name="last_billing_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Last Payment Note" name="last_payment_note" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Last Payment Timestamp" name="last_payment_ts" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Payment Type" name="last_payment_type" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Total Owed" name="total_owed" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Total Paid" name="total_paid" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Billed User" name="usr" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction Finish Time" name="xact_finish" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Start Time" name="xact_start" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Type" name="xact_type" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="aun" controller="open-ils.cstore" oils_obj:fieldmapper="actor::usr_note" oils_persist:tablename="actor.usr_note" reporter:label="User Note">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_note_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Creation Date/Time" name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Creating Staff" name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Note ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Is OPAC Visible?" name="pub" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Note Title" name="title" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User" name="usr" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link" />
- <field reporter:label="Note Content" name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="aus" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user_setting" oils_persist:tablename="actor.usr_setting" reporter:label="User Setting">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_setting_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Setting ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User" name="usr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="mafe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::author_field_entry" oils_persist:tablename="metabib.author_field_entry">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.author_field_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="source" reltype="has_a" key="id" map="" class="bre"/>
- <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
- </links>
- </class>
- <class id="aihu" controller="open-ils.cstore" oils_obj:fieldmapper="action::in_house_use" oils_persist:tablename="action.in_house_use" reporter:core="true" reporter:label="In House Use">
- <fields oils_persist:primary="id" oils_persist:sequence="action.in_house_use_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Use ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Item" name="item" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Using Library" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Recording Staff" name="staff" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Use Date/Time" name="use_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- </fields>
- <links>
- <link field="item" reltype="has_a" key="id" map="" class="acp"/>
- <link field="staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="ancihu" controller="open-ils.cstore" oils_obj:fieldmapper="action::non_cat_in_house_use" oils_persist:tablename="action.non_cat_in_house_use" reporter:core="true" reporter:label="Non-cataloged In House Use">
- <fields oils_persist:primary="id" oils_persist:sequence="action.non_cat_in_house_use_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Use ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Item Type" name="item_type" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Using Library" name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Recording Staff" name="staff" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Use Date/Time" name="use_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- </fields>
- <links>
- <link field="item_type" reltype="has_a" key="id" map="" class="cnct"/>
- <link field="staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="atc" controller="open-ils.cstore" oils_obj:fieldmapper="action::transit_copy" oils_persist:tablename="action.transit_copy" reporter:core="true" reporter:label="Copy Transit">
- <fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Pretransit Copy Status" name="copy_status" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Destination" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Is Persistent? (unused)" name="persistant_transfer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Previous Hop (unused)" name="prev_hop" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Source" name="source" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transited Copy" name="target_copy" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Hold Transit" name="hold_transit_copy" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="hold_transit_copy" reltype="might_have" key="id" map="" class="ahtc"/>
- <link field="source" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_status" reltype="has_a" key="id" map="" class="ccs"/>
- <link field="dest" reltype="has_a" key="id" map="" class="aou"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="TRANSIT_COPY"/>
- <retrieve/>
- <update permission="UPDATE_TRANSIT" context_field="dest|source"/>
- <delete permission="DELETE_TRANSIT" context_field="dest|source"/>
- </actions>
- </permacrud>
- </class>
- <class id="asvr" controller="open-ils.cstore" oils_obj:fieldmapper="action::survey_response" oils_persist:tablename="action.survey_response" reporter:label="Survey Response">
- <fields oils_persist:primary="id" oils_persist:sequence="action.survey_response_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Answer" name="answer" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Answer Date/Time" name="answer_date" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Effective Answer Date/Time" name="effective_date" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Answer ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Question" name="question" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Response Group ID" name="response_group_id" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Survey" name="survey" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Responding User" name="usr" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="question" reltype="has_a" key="id" map="" class="asvq"/>
- <link field="survey" reltype="has_a" key="id" map="" class="asv"/>
- <link field="answer" reltype="has_a" key="id" map="" class="asva"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="ccbi" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket_item" oils_persist:tablename="container.copy_bucket_item">
- <fields oils_persist:primary="id" oils_persist:sequence="container.copy_bucket_item_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="target_copy" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="bucket" reltype="has_a" key="id" map="" class="ccb"/>
- </links>
- </class>
- <class id="are" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_entry" oils_persist:tablename="authority.record_entry">
- <fields oils_persist:primary="id" oils_persist:sequence="authority.record_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="active" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="arn_source" oils_obj:array_position="4" oils_persist:virtual="false" />
- <field name="arn_value" oils_obj:array_position="5" oils_persist:virtual="false" />
- <field name="create_date" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="creator" oils_obj:array_position="7" oils_persist:virtual="false" />
- <field name="deleted" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="edit_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="editor" oils_obj:array_position="10" oils_persist:virtual="false" />
- <field name="id" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="last_xact_id" oils_obj:array_position="12" oils_persist:virtual="false" />
- <field name="marc" oils_obj:array_position="13" oils_persist:virtual="false" />
- <field name="source" oils_obj:array_position="14" oils_persist:virtual="false" />
- <field name="fixed_fields" oils_obj:array_position="15" oils_persist:virtual="true" />
- <field name="notes" oils_obj:array_position="16" oils_persist:virtual="true" />
- </fields>
- <links>
- <link field="editor" reltype="has_a" key="id" map="" class="au"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- <link field="notes" reltype="has_many" key="record" map="" class="arn"/>
- <link field="fixed_fields" reltype="might_have" key="record" map="" class="ard"/>
- </links>
- </class>
- <class id="ard" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_descriptor" oils_persist:tablename="authority.rec_descriptor">
- <fields oils_persist:primary="id" oils_persist:sequence="authority.rec_descriptor_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="char_encoding" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" />
- <field name="record" oils_obj:array_position="5" oils_persist:virtual="false" />
- <field name="record_status" oils_obj:array_position="6" oils_persist:virtual="false" />
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="are"/>
- </links>
- </class>
- <class id="clm" controller="open-ils.cstore" oils_obj:fieldmapper="config::language_map" oils_persist:tablename="config.language_map" reporter:label="Language Map" oils_persist:field_safe="true">
- <fields oils_persist:primary="code" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Language Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
- <field reporter:label="Language" name="value" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="mccp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_card_payment" oils_persist:tablename="money.credit_card_payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="approval_code" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="cash_drawer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="cc_number" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="cc_type" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="expire_month" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="expire_year" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="id" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="note" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="payment_ts" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="xact" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="payment_type" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="text"/>
- <field name="payment" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="cxt" controller="open-ils.cstore" oils_obj:fieldmapper="config::xml_transform" oils_persist:tablename="config.xml_transform" reporter:label="XML/XSLT Transform Definition">
- <fields oils_persist:primary="name">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field_class" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field reporter:label="Name" name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" />
- <field reporter:label="Namespace URI" name="namespace_uri" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Namespace Prefix" name="prefix" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="XSLT" name="xslt" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text" />
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_XML_TRANSFORM" global_required="true"/>
- <retrieve/>
- <update permission="UPDATE_XML_TRANSFORM" global_required="true"/>
- <delete permission="DELETE_XML_TRANSFORM" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="cmf" controller="open-ils.cstore" oils_obj:fieldmapper="config::metabib_field" oils_persist:tablename="config.metabib_field">
- <fields oils_persist:primary="id" oils_persist:sequence="config.metabib_field_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field_class" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="xpath" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="weight" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="format" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="search_field" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool" />
- <field name="facet_field" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool" />
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_METABIB_FIELD" global_required="true"/>
- <retrieve/>
- <update permission="UPDATE_METABIB_FIELD" global_required="true"/>
- <delete permission="DELETE_METABIB_FIELD" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="cam" controller="open-ils.cstore" oils_obj:fieldmapper="config::audience_map" oils_persist:tablename="config.audience_map" reporter:label="Audience Map" oils_persist:field_safe="true">
- <fields oils_persist:primary="code" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Audience Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
- <field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true" />
- <field reporter:label="Audience" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="cifm" controller="open-ils.cstore" oils_obj:fieldmapper="config::item_form_map" oils_persist:tablename="config.item_form_map" reporter:label="Item Form Map" oils_persist:field_safe="true">
- <fields oils_persist:primary="code" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Item Form Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="text"/>
- <field reporter:label="Item Form" name="value" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="acn" controller="open-ils.cstore" oils_obj:fieldmapper="asset::call_number" oils_persist:tablename="asset.call_number" reporter:label="Call Number/Volume">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.call_number_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Copies" name="copies" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Create Date/Time" name="create_date" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Creating User" name="creator" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Is Deleted" name="deleted" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Last Edit Date/Time" name="edit_date" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Editing User" name="editor" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Call Number/Volume ID" name="id" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Call Number Label" name="label" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Bib Record" name="record" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Notes" name="notes" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="editor" reltype="has_a" key="id" map="" class="au"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- <link field="record" reltype="has_a" key="id" map="" class="bre"/>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="notes" reltype="has_many" key="call_number" map="" class="acnn"/>
- <link field="copies" reltype="has_many" key="call_number" map="" class="acp"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_VOLUME" context_field="owning_lib"/>
- <retrieve/>
- <update permission="UPDATE_VOLUME" context_field="owning_lib"/>
- <delete permission="DELETE_VOLUME" context_field="owning_lib"/>
- </actions>
- </permacrud>
- </class>
- <class id="cst" controller="open-ils.cstore" oils_obj:fieldmapper="config::standing" oils_persist:tablename="config.standing">
- <fields oils_persist:primary="id" oils_persist:sequence="config.standing_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="value" oils_obj:array_position="4" oils_persist:virtual="false" oils_persist:i18n="true" />
- </fields>
- <links/>
- </class>
- <class id="mous" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_user_summary" oils_persist:tablename="money.open_usr_summary">
- <fields oils_persist:primary="usr" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links/>
- </class>
- <class id="mct" controller="open-ils.cstore" oils_obj:fieldmapper="money::collections_tracker" oils_persist:tablename="money.collections_tracker">
- <fields oils_persist:primary="id" oils_persist:sequence="money.collections_tracker_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="collector" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="enter_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="location" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="usr" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="collector" reltype="has_a" key="id" map="" class="au"/>
- <link field="location" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="money.collections_tracker.create" context_field="location"/>
- <retrieve/>
- <delete permission="money.collections_tracker.create" context_field="location"/>
- </actions>
- </permacrud>
- </class>
- <class id="bre" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_entry" oils_persist:tablename="biblio.record_entry" reporter:core="true" reporter:label="Bibliographic Record">
- <fields oils_persist:primary="id" oils_persist:sequence="biblio.record_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Call Numbers" name="call_numbers" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Fixed Field Entry" name="fixed_fields" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Is Active?" name="active" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Record Creation Date/Time" name="create_date" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Record Creator" name="creator" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Is Deleted?" name="deleted" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Last Edit Data/Time" name="edit_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Editing User" name="editor" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Record ID" name="id" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Last Transaction ID" name="last_xact_id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="MARC21Slim" name="marc" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Overall Quality" name="quality" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Record Source" name="source" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Metarecord" name="metarecord" oils_obj:array_position="19" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Language Code" name="language" oils_obj:array_position="20" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Non-MARC Record Notes" name="notes" oils_obj:array_position="21" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Indexed Keyword Field Entries" name="keyword_field_entries" oils_obj:array_position="22" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Indexed Subject Field Entries" name="subject_field_entries" oils_obj:array_position="23" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Indexed Title Field Entries" name="title_field_entries" oils_obj:array_position="24" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Indexed Author Field Entries" name="author_field_entries" oils_obj:array_position="25" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Indexed Series Field Entries" name="series_field_entries" oils_obj:array_position="26" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Flattened MARC Fields " name="full_record_entries" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Simple Record Extracts " name="simple_record" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="editor" reltype="has_a" key="id" map="" class="au"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- <link field="simple_record" reltype="might_have" key="id" map="" class="rmsr"/>
- <link field="metarecord" reltype="might_have" key="source" map="metarecord" class="mmrsm"/>
- <link field="call_numbers" reltype="has_many" key="record" map="" class="acn"/>
- <link field="keyword_field_entries" reltype="has_many" key="source" map="" class="mkfe"/>
- <link field="fixed_fields" reltype="might_have" key="record" map="" class="mrd"/>
- <link field="language" reltype="might_have" key="record" map="item_lang" class="mrd"/>
- <link field="subject_field_entries" reltype="has_many" key="source" map="" class="msfe"/>
- <link field="title_field_entries" reltype="has_many" key="source" map="" class="mtfe"/>
- <link field="notes" reltype="has_many" key="record" map="" class="bren"/>
- <link field="author_field_entries" reltype="has_many" key="source" map="" class="mafe"/>
- <link field="series_field_entries" reltype="has_many" key="source" map="" class="msefe"/>
- <link field="full_record_entries" reltype="has_many" key="record" map="" class="mfr"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC|IMPORT_MARC" global_required="true"/>
- <retrieve/>
- <update permission="UPDATE_MARC" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="aouhoo" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit::hours_of_operation" oils_persist:tablename="actor.hours_of_operation">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="dow_0_close" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="dow_0_open" oils_obj:array_position="4" oils_persist:virtual="false" />
- <field name="dow_1_close" oils_obj:array_position="5" oils_persist:virtual="false" />
- <field name="dow_1_open" oils_obj:array_position="6" oils_persist:virtual="false" />
- <field name="dow_2_close" oils_obj:array_position="7" oils_persist:virtual="false" />
- <field name="dow_2_open" oils_obj:array_position="8" oils_persist:virtual="false" />
- <field name="dow_3_close" oils_obj:array_position="9" oils_persist:virtual="false" />
- <field name="dow_3_open" oils_obj:array_position="10" oils_persist:virtual="false" />
- <field name="dow_4_close" oils_obj:array_position="11" oils_persist:virtual="false" />
- <field name="dow_4_open" oils_obj:array_position="12" oils_persist:virtual="false" />
- <field name="dow_5_close" oils_obj:array_position="13" oils_persist:virtual="false" />
- <field name="dow_5_open" oils_obj:array_position="14" oils_persist:virtual="false" />
- <field name="dow_6_close" oils_obj:array_position="15" oils_persist:virtual="false" />
- <field name="dow_6_open" oils_obj:array_position="16" oils_persist:virtual="false" />
- <field name="id" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="org_unit" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="org_unit" reltype="might_have" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_HOURS_OF_OPERATION" context_field="org_unit"/>
- <retrieve/>
- <update permission="UPDATE_HOURS_OF_OPERATION" context_field="org_unit"/>
- <delete permission="DELETE_HOURS_OF_OPERATION" context_field="org_unit"/>
- </actions>
- </permacrud>
- </class>
- <class id="aoucd" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit::closed_date" oils_persist:tablename="actor.org_unit_closed">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_closed_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="close_end" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field name="close_start" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="org_unit" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field name="reason" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_ORG_UNIT_CLOSING" context_field="org_unit"/>
- <retrieve/>
- <update permission="UPDATE_ORG_UNIT_CLOSING" context_field="org_unit"/>
- <delete permission="DELETE_ORG_UNIT_CLOSING" context_field="org_unit"/>
- </actions>
- </permacrud>
- </class>
- <class id="crcd" controller="open-ils.cstore" oils_obj:fieldmapper="config::rules::circ_duration" oils_persist:tablename="config.rule_circ_duration">
- <fields oils_persist:primary="id" oils_persist:sequence="config.rule_circ_duration_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="extended" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="max_renewals" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="normal" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field name="shrt" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="interval"/>
- </fields>
- <links>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_CIRC_DURATION" global_required="true"/>
- <retrieve/>
- <update permission="UPDATE_CIRC_DURATION" global_required="true"/>
- <delete permission="DELETE_CIRC_DURATION" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="mobts" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_billable_transaction_summary" oils_persist:tablename="money.open_billable_xact_summary">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="last_billing_note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="last_billing_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="last_billing_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="last_payment_note" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="last_payment_ts" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="last_payment_type" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="total_owed" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="money"/>
- <field name="total_paid" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="money"/>
- <field name="usr" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="xact_finish" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field name="xact_start" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field name="xact_type" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="xact" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="grocery" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="circulation" oils_obj:array_position="19" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="billing_location" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="xact" reltype="might_have" key="id" map="" class="mbt"/>
- <link field="circulation" reltype="might_have" key="id" map="" class="circ"/>
- <link field="grocery" reltype="might_have" key="id" map="" class="mg"/>
- <link field="billing_location" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="au" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user" oils_persist:tablename="actor.usr" reporter:core="true" reporter:label="ILS User">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="All Addresses" name="addresses" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="All Library Cards" name="cards" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="All Circulations" name="checkouts" oils_obj:array_position="5" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="All Hold Requests" name="hold_requests" oils_obj:array_position="6" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="All Permissions" name="permissions" oils_obj:array_position="7" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="All User Settings" name="settings" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Standing Penalties" name="standing_penalties" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Statistical Category Entries" name="stat_cat_entries" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Survey Responses" name="survey_responses" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="ws_ou" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="wsid" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Active" name="active" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Alert Message" name="alert_message" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Barred" name="barred" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Physical Address" name="billing_address" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Current Library Card" name="card" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Claims-returned Count" name="claims_returned_count" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Record Creation Date/Time" name="create_date" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="User Credit Balance" name="credit_forward_balance" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Daytime Phone" name="day_phone" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Date of Birth" name="dob" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Email Address" name="email" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Evening Phone" name="evening_phone" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Privilege Expiration Date" name="expire_date" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Name" name="family_name" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="First Name" name="first_given_name" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Home Library" name="home_ou" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="User ID" name="id" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Primary Identification Type" name="ident_type" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Secondary Identification Type" name="ident_type2" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Primary Identification" name="ident_value" oils_obj:array_position="33" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Secondary Identification" name="ident_value2" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="last_xact_id" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Mailing Address" name="mailing_address" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Is Group Lead Account" name="master_account" oils_obj:array_position="37" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Internet Access Level" name="net_access_level" oils_obj:array_position="38" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Other Phone" name="other_phone" oils_obj:array_position="39" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Password (obfuscated)" name="passwd" oils_obj:array_position="40" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Photo URL" name="photo_url" oils_obj:array_position="41" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Prefix" name="prefix" oils_obj:array_position="42" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Main (Profile) Permission Group" name="profile" oils_obj:array_position="43" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Middle Name" name="second_given_name" oils_obj:array_position="44" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Standing (unused)" name="standing" oils_obj:array_position="45" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Suffix/Title" name="suffix" oils_obj:array_position="46" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Is Super User" name="super_user" oils_obj:array_position="47" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Family Linkage or other Group" name="usrgroup" oils_obj:array_position="48" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="OPAC/Staff Client User Name" name="usrname" oils_obj:array_position="49" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Additional Permission Groups" name="groups" oils_obj:array_position="50" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Is Deleted" name="deleted" oils_obj:array_position="51" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="User Notes" name="notes" oils_obj:array_position="52" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Demographic Info" name="demographic" oils_obj:array_position="53" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Billable Transactions" name="billable_transactions" oils_obj:array_position="54" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Checkins" name="checkins" oils_obj:array_position="55" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulations Performed as Staff" name="performed_circulations" oils_obj:array_position="56" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="demographic" reltype="might_have" key="id" map="" class="rud"/>
- <link field="net_access_level" reltype="has_a" key="id" map="" class="cnal"/>
- <link field="profile" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="ident_type" reltype="has_a" key="id" map="" class="cit"/>
- <link field="billing_address" reltype="has_a" key="id" map="" class="aua"/>
- <link field="mailing_address" reltype="has_a" key="id" map="" class="aua"/>
- <link field="home_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="standing" reltype="has_a" key="id" map="" class="cst"/>
- <link field="card" reltype="has_a" key="id" map="" class="ac"/>
- <link field="ident_type2" reltype="has_a" key="id" map="" class="cit"/>
- <link field="stat_cat_entries" reltype="has_many" key="target_usr" map="" class="actscecm"/>
- <link field="groups" reltype="has_many" key="usr" map="grp" class="pugm"/>
- <link field="usrgroup" reltype="has_many" key="usrgroup" map="" class="au"/>
- <link field="checkouts" reltype="has_many" key="usr" map="" class="circ"/>
- <link field="hold_requests" reltype="has_many" key="usr" map="" class="circ"/>
- <link field="permissions" reltype="has_many" key="usr" map="perm" class="pupm"/>
- <link field="settings" reltype="has_many" key="usr" map="" class="aus"/>
- <link reporter:label="Billable Transactions" field="billable_transactions" reltype="has_many" key="usr" map="" class="mbt"/>
- <link field="standing_penalties" reltype="has_many" key="usr" map="" class="ausp"/>
- <link field="addresses" reltype="has_many" key="usr" map="" class="aua"/>
- <link field="survey_responses" reltype="has_many" key="usr" map="" class="asvr"/>
- <link field="notes" reltype="has_many" key="usr" map="" class="aun"/>
- <link reporter:label="Check-ins Performed as Staff" field="checkins" reltype="has_many" key="checkin_staff" map="" class="circ"/>
- <link field="cards" reltype="has_many" key="usr" map="" class="ac"/>
- <link reporter:label="Circulations Performed as Staff" field="performed_circulations" reltype="has_many" key="circ_staff" map="" class="circ"/>
- </links>
- </class>
- <class id="aous" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_setting" oils_persist:tablename="actor.org_unit_setting">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_setting_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="acpn" controller="open-ils.cstore" oils_obj:fieldmapper="asset::copy_note" oils_persist:tablename="asset.copy_note" reporter:label="Copy Note">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.copy_note_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Note Creation Date/Time" name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Note Creator" name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Note ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Copy" name="owning_copy" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Is OPAC Visible?" name="pub" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Note Title" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Note Content" name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="owning_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_COPY_NOTE">
- <context link="owning_copy" field="circ_lib"/>
- </create>
- <retrieve permission="VIEW_COPY_NOTES">
- <context link="owning_copy" field="circ_lib"/>
- </retrieve>
- <update permission="UPDATE_COPY_NOTE">
- <context link="owning_copy" field="circ_lib"/>
- </update>
- <delete permission="DELETE_COPY_NOTE">
- <context link="owning_copy" field="circ_lib"/>
- </delete>
- </actions>
- </permacrud>
- </class>
- <class id="mfr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::full_rec" oils_persist:tablename="metabib.full_rec" reporter:label="Flattened MARC Fields">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.full_rec_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Field ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Indicator 1" name="ind1" oils_obj:array_position="4" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Indicator 2" name="ind2" oils_obj:array_position="5" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Bib Record Entry" name="record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Subfield" name="subfield" oils_obj:array_position="7" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Tag" name="tag" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Normalized Value" name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="mmr" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord" oils_persist:tablename="metabib.metarecord">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.metarecord_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="fingerprint" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="master_record" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="mods" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="source_records" oils_obj:array_position="7" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="master_record" reltype="has_a" key="id" map="" class="bre"/>
- <link field="source_records" reltype="has_many" key="metarecord" map="source" class="mmrsm"/>
- </links>
- </class>
- <class id="cnal" controller="open-ils.cstore" oils_obj:fieldmapper="config::net_access_level" oils_persist:tablename="config.net_access_level">
- <fields oils_persist:primary="id" oils_persist:sequence="config.net_access_level_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_NET_ACCESS_LEVEL" global_required="true"/>
- <retrieve/>
- <update permission="UPDATE_NET_ACCESS_LEVEL" global_required="true"/>
- <delete permission="DELETE_NET_ACCESS_LEVEL" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="ppl" controller="open-ils.cstore" oils_obj:fieldmapper="permission::perm_list" oils_persist:tablename="permission.perm_list">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.perm_list_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:selector="code" reporter:datatype="id"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_PERM" global_required="true"/>
- <retrieve permission="CREATE_PERM|UPDATE_PERM|DELETE_PERM" global_required="true"/>
- <update permission="UPDATE_PERM" global_required="true"/>
- <delete permission="DELETE_PERM" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="mmrsm" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord_source_map" oils_persist:tablename="metabib.metarecord_source_map" oils_persist:field_safe="true">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.metarecord_source_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="metarecord" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="source" reltype="has_a" key="id" map="" class="bre"/>
- <link field="metarecord" reltype="has_a" key="id" map="" class="mmr"/>
- </links>
- </class>
- <class id="mkfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::keyword_field_entry" oils_persist:tablename="metabib.keyword_field_entry">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.keyword_field_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="source" reltype="has_a" key="id" map="" class="bre"/>
- <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
- </links>
- </class>
- <class id="mcp" controller="open-ils.cstore" oils_obj:fieldmapper="money::cash_payment" oils_persist:tablename="money.cash_payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="cash_drawer" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="note" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="payment_ts" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="xact" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="payment_type" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
- <field name="payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="mfp" controller="open-ils.cstore" oils_obj:fieldmapper="money::forgive_payment" oils_persist:tablename="money.forgive_payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="payment_type" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="text"/>
- <field name="payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="mrd" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::record_descriptor" oils_persist:tablename="metabib.rec_descriptor" reporter:label="Basic Record Descriptor">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.rec_descriptor_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Audn" name="audience" oils_obj:array_position="3" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="BLvl" name="bib_level" oils_obj:array_position="4" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Cat Form" name="cat_form" oils_obj:array_position="5" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Character Encoding" name="char_encoding" oils_obj:array_position="6" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Ctrl" name="control_type" oils_obj:array_position="7" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="ELvl" name="enc_level" oils_obj:array_position="8" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Descriptor ID" name="id" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Form" name="item_form" oils_obj:array_position="10" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Lang" name="item_lang" oils_obj:array_position="11" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Type" name="item_type" oils_obj:array_position="12" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="LitF" name="lit_form" oils_obj:array_position="13" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Pub Status" name="pub_status" oils_obj:array_position="14" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Bib Record Entry" name="record" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="TMat" name="type_mat" oils_obj:array_position="16" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- <field reporter:label="Video Recording Format" name="vr_format" oils_obj:array_position="17" oils_persist:virtual="false" oils_persist:primitive="string" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="bre"/>
- <link field="item_lang" reltype="has_a" key="code" map="" class="clm"/>
- <link field="item_type" reltype="has_a" key="code" map="" class="citm"/>
- <link field="bib_level" reltype="has_a" key="code" map="" class="cblvl"/>
- <link field="item_form" reltype="has_a" key="code" map="" class="cifm"/>
- <link field="audience" reltype="has_a" key="code" map="" class="cam"/>
- <link field="lit_form" reltype="has_a" key="code" map="" class="clfm"/>
- </links>
- </class>
- <class id="ccs" controller="open-ils.cstore" oils_obj:fieldmapper="config::copy_status" oils_persist:tablename="config.copy_status">
- <fields oils_persist:primary="id" oils_persist:sequence="config.copy_status_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="holdable" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field name="opac_visible" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_COPY_STATUS" global_required="true"/>
- <retrieve permission="CREATE_COPY_STATUS|UPDATE_COPY_STATUS|DELETE_COPY_STATUS" global_required="true"/>
- <update permission="UPDATE_COPY_STATUS" global_required="true"/>
- <delete permission="DELETE_COPY_STATUS" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="ausp" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user_standing_penalty" oils_persist:tablename="actor.usr_standing_penalty">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_standing_penalty_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="penalty_type" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="usr" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="aua" controller="open-ils.cstore" oils_obj:fieldmapper="actor::user_address" oils_persist:tablename="actor.usr_address" reporter:label="User Address">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.usr_address_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Type" name="address_type" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="City" name="city" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Country" name="country" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="County" name="county" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Address ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Postal Code" name="post_code" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="State" name="state" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Street (1)" name="street1" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Street (2)" name="street2" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User" name="usr" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Valid Address?" name="valid" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Within City Limits?" name="within_city_limits" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="acnn" controller="open-ils.cstore" oils_obj:fieldmapper="asset::call_number_note" oils_persist:tablename="asset.call_number_note">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.call_number_note_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="call_number" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="create_date" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="creator" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="pub" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="call_number" reltype="has_a" key="id" map="" class="acn"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_VOLUME_NOTE">
- <context link="call_number" field="owning_lib"/>
- </create>
- <retrieve permission="VIEW_VOLUME_NOTES">
- <context link="call_number" field="owning_lib"/>
- </retrieve>
- <update permission="UPDATE_VOLUME_NOTE">
- <context link="call_number" field="owning_lib"/>
- </update>
- <delete permission="DELETE_VOLUME_NOTE">
- <context link="call_number" field="owning_lib"/>
- </delete>
- </actions>
- </permacrud>
- </class>
- <class id="arn" controller="open-ils.cstore" oils_obj:fieldmapper="authority::record_note" oils_persist:tablename="authority.record_note">
- <fields oils_persist:primary="id" oils_persist:sequence="authority.record_note_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="edit_date" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="editor" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="record" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="are"/>
- </links>
- </class>
- <class id="circ" controller="open-ils.cstore" oils_obj:fieldmapper="action::circulation" oils_persist:tablename="action.circulation" reporter:core="true" reporter:label="Circulation">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron" name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Record Creation Date/Time" name="create_time" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="text"/>
- <field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
- <link field="circ_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="checkin_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="checkin_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
- <link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
- <link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
- <link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
- <link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
- <link field="circ_type" reltype="might_have" key="id" map="" class="rcirct"/>
- <link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
- <link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
- </links>
- </class>
- <class id="combcirc" controller="open-ils.cstore" oils_obj:fieldmapper="action::all_circulation" oils_persist:tablename="action.all_circulation" reporter:core="true" reporter:label="Combined Aged and Active Circulations" oils_persist:readonly="true">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron ZIP" name="usr_post_code" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Record Creation Date/Time" name="create_time" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="text"/>
- <field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Patron Home Library" name="usr_home_ou" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron Profile Group" name="usr_profile" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron Birth Year" name="usr_birth_year" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Call Number" name="copy_call_number" oils_obj:array_position="37" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Shelving Location" name="copy_location" oils_obj:array_position="38" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Copy Owning Library" name="copy_owning_lib" oils_obj:array_position="39" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Copy Circulating Library" name="copy_circ_lib" oils_obj:array_position="40" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Bib Record" name="copy_bib_record" oils_obj:array_position="41" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
- <link field="circ_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="checkin_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="checkin_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
- <link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
- <link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
- <link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
- <link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
- <link field="circ_type" reltype="might_have" key="id" map="" class="rcirct"/>
- <link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
- <link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
- <link field="copy_call_number" reltype="has_a" key="id" map="" class="acn"/>
- <link field="copy_location" reltype="has_a" key="id" map="" class="acl"/>
- <link field="copy_owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_bib_record" reltype="has_a" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="acirc" controller="open-ils.cstore" oils_obj:fieldmapper="action::aged_circulation" oils_persist:tablename="action.aged_circulation" reporter:core="true" reporter:label="Aged (patronless) Circulation">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron ZIP" name="usr_post_code" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Record Creation Date/Time" name="create_time" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="text"/>
- <field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Patron Home Library" name="usr_home_ou" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron Profile Group" name="usr_profile" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron Birth Year" name="usr_birth_year" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Call Number" name="copy_call_number" oils_obj:array_position="37" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Shelving Location" name="copy_location" oils_obj:array_position="38" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Copy Owning Library" name="copy_owning_lib" oils_obj:array_position="39" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Copy Circulating Library" name="copy_circ_lib" oils_obj:array_position="40" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Bib Record" name="copy_bib_record" oils_obj:array_position="41" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
- <link field="circ_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="checkin_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="checkin_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
- <link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
- <link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
- <link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
- <link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
- <link field="circ_type" reltype="might_have" key="id" map="" class="rcirct"/>
- <link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
- <link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
- <link field="copy_call_number" reltype="has_a" key="id" map="" class="acn"/>
- <link field="copy_location" reltype="has_a" key="id" map="" class="acl"/>
- <link field="copy_owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_bib_record" reltype="has_a" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="ccnbi" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket_item" oils_persist:tablename="container.call_number_bucket_item">
- <fields oils_persist:primary="id" oils_persist:sequence="container.call_number_bucket_item_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="target_call_number" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link" />
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="target_call_number" reltype="has_a" key="id" map="" class="acn"/>
- <link field="bucket" reltype="has_a" key="id" map="" class="ccnb"/>
- </links>
- </class>
- <class id="cbreb" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket" oils_persist:tablename="container.biblio_record_entry_bucket">
- <fields oils_persist:primary="id" oils_persist:sequence="container.biblio_record_entry_bucket_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="items" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="items" reltype="has_many" key="bucket" map="" class="cbrebi"/>
- </links>
- </class>
- <class id="ahcm" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_copy_map" oils_persist:tablename="action.hold_copy_map">
- <fields oils_persist:primary="id" oils_persist:sequence="action.hold_copy_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="hold" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="target_copy" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- </links>
- </class>
- <class id="ahn" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_notification" oils_persist:tablename="action.hold_notification" reporter:label="Hold Notification">
- <fields oils_persist:primary="id" oils_persist:sequence="action.hold_notification_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Hold" name="hold" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Notification ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Notification Method" name="method" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Notification Note" name="note" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Notifying Staff" name="notify_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Notification Date/Time" name="notify_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- </fields>
- <links>
- <link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
- <link field="notify_staff" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="acpl" controller="open-ils.cstore" oils_obj:fieldmapper="asset::copy_location" oils_persist:tablename="asset.copy_location" reporter:label="Copy/Shelving Location">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.copy_location_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Can Circulate?" name="circulate" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Is Holdable?" name="holdable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Location ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Is OPAC Visible?" name="opac_visible" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Owning Org Unit" name="owning_lib" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_COPY_LOCATION" context_field="owning_lib"/>
- <retrieve/>
- <update permission="UPDATE_COPY_LOCATION" context_field="owning_lib"/>
- <delete permission="DELETE_COPY_LOCATION" context_field="owning_lib"/>
- </actions>
- </permacrud>
- </class>
- <class id="ascecm" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat_entry_copy_map" oils_persist:tablename="asset.stat_cat_entry_copy_map">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.stat_cat_entry_copy_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="owning_copy" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="stat_cat" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="stat_cat_entry" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="owning_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="stat_cat_entry" reltype="has_a" key="id" map="" class="asce"/>
- <link field="stat_cat" reltype="has_a" key="id" map="" class="asc"/>
- </links>
- </class>
- <class id="citm" controller="open-ils.cstore" oils_obj:fieldmapper="config::item_type_map" oils_persist:tablename="config.item_type_map" reporter:label="Item Type Map" oils_persist:field_safe="true">
- <fields oils_persist:primary="code">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Item Type Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Item Type" name="value" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="cblvl" controller="open-ils.cstore" oils_obj:fieldmapper="config::bib_level_map" oils_persist:tablename="config.bib_level_map" reporter:label="Bib Level Map" oils_persist:field_safe="true">
- <fields oils_persist:primary="code">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Bib Level Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Bib Level" name="value" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="sra" controller="open-ils.cstore" oils_obj:fieldmapper="search::relevance_adjustment" oils_persist:tablename="search.relevance_adjustment" reporter:label="Relevance Adjustment">
- <fields oils_persist:primary="id" oils_persist:sequence="search.relevance_adjustment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Active" name="active" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Index Field" name="field" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Bump Type" name="bump" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Multiplier" name="multiplier" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="number"/>
- </fields>
- <links>
- <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_RELEVANCE_ADJUSTMENT" global_required="true"/>
- <retrieve permission="CREATE_RELEVANCE_ADJUSTMENT|UPDATE_RELEVANCE_ADJUSTMENT|DELETE_RELEVANCE_ADJUSTMENT" global_required="true"/>
- <update permission="UPDATE_RELEVANCE_ADJUSTMENT" global_required="true"/>
- <delete permission="DELETE_RELEVANCE_ADJUSTMENT" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="lasso" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_lasso" oils_persist:tablename="actor.org_lasso">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_lasso_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="name" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_LASSO" global_required="true"/>
- <retrieve permission="CREATE_LASSO|UPDATE_LASSO|DELETE_LASSO" global_required="true"/>
- <update permission="UPDATE_LASSO" global_required="true"/>
- <delete permission="DELETE_LASSO" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="lmap" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_lasso_map" oils_persist:tablename="actor.org_lasso_map">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_lasso_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="lasso" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="org_unit" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="lasso" reltype="has_a" key="id" map="" class="lasso"/>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_LASSO_MAP" global_required="true"/>
- <retrieve permission="CREATE_LASSO_MAP|UPDATE_LASSO_MAP|DELETE_LASSO_MAP" global_required="true"/>
- <update permission="UPDATE_LASSO_MAP" global_required="true"/>
- <delete permission="DELETE_LASSO_MAP" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="aoup" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_proximity" oils_persist:tablename="actor.org_unit_proximity">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_proximity_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="from_org" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field name="to_org" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field name="prox" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
- </fields>
- <links>
- <link field="from_org" reltype="has_a" key="id" map="" class="aou"/>
- <link field="to_org" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="ssr" controller="open-ils.cstore" oils_obj:fieldmapper="search::search_result" oils_persist:tablename="search.search_result" oils_persist:readonly="true">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_proximity_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Relevance" name="rel" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="float"/>
- <field reporter:label="Record" name="record" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Total Results" name="total" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Checked" name="checked" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Visible" name="visible" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Deleted" name="deleted" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Excluded" name="excluded" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="int"/>
- </fields>
- <links/>
- </class>
- <class id="asv" controller="open-ils.cstore" oils_obj:fieldmapper="action::survey" oils_persist:tablename="action.survey" reporter:label="Survey">
- <fields oils_persist:primary="id" oils_persist:sequence="action.survey_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Questions" name="questions" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Responses" name="responses" oils_obj:array_position="4" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Description" name="description" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Survey End Date/Time" name="end_date" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Survey ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="OPAC Surevey?" name="opac" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Owning Library" name="owner" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Poll Style?" name="poll" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Is Required?" name="required" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Survey Start Date/Time" name="start_date" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Display in User Summary" name="usr_summary" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="survey" map="" class="aou"/>
- <link field="responses" reltype="has_many" key="survey" map="" class="asvr"/>
- <link field="questions" reltype="has_many" key="survey" map="" class="asvq"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_SURVEY" context_field="owner"/>
- <retrieve/>
- <update permission="UPDATE_SURVEY" context_field="owner"/>
- <delete permission="DELETE_SURVEY" context_field="owner"/>
- </actions>
- </permacrud>
- </class>
- <class id="aoa" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_address" oils_persist:tablename="actor.org_address">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_address_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="address_type" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="city" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="country" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="county" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="org_unit" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field name="post_code" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="state" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="street1" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="street2" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="valid" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links>
- <link field="org_unit" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_ORG_ADDRESS" context_field="org_unit"/>
- <retrieve/>
- <update permission="UPDATE_ORG_ADDRESS" context_field="org_unit"/>
- <delete permission="DELETE_ORG_ADDRESS" context_field="org_unit"/>
- </actions>
- </permacrud>
- </class>
- <class id="ahr" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_request" oils_persist:tablename="action.hold_request" reporter:core="true" reporter:label="Hold Request">
- <fields oils_persist:primary="id" oils_persist:sequence="action.hold_request_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="status" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field reporter:label="Transit" name="transit" oils_obj:array_position="4" oils_persist:virtual="true" />
- <field reporter:label="Capture Date/Time" name="capture_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Currently Targeted Copy" name="current_copy" oils_obj:array_position="6" oils_persist:virtual="false" />
- <field reporter:label="Notify by Email?" name="email_notify" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Hold Expire Date/Time" name="expire_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Fulfilling Library" name="fulfillment_lib" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Fulfilling Staff" name="fulfillment_staff" oils_obj:array_position="10" oils_persist:virtual="false" />
- <field reporter:label="Fulfillment Date/Time" name="fulfillment_time" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Hold Type" name="hold_type" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Holdable Formats (for M-type hold)" name="holdable_formats" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Hold ID" name="id" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Notifications Phone Number" name="phone_notify" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Pickup Library" name="pickup_lib" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Last Targeting Date/Time" name="prev_check_time" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Requesting Library" name="request_lib" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Request Date/Time" name="request_time" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Requesting User" name="requestor" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Item Selection Depth" name="selection_depth" oils_obj:array_position="21" oils_persist:virtual="false" />
- <field reporter:label="Selection Locus" name="selection_ou" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Target Object ID" name="target" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Hold User" name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Hold Cancel Date/Time" name="cancel_time" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="notify_time" oils_obj:array_position="26" oils_persist:virtual="true" reporter:datatype="timestamp"/>
- <field name="notify_count" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="int" />
- <field reporter:label="Notifications" name="notifications" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Bib Record link" name="bib_rec" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Eligible Copies" name="eligible_copies" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Currently Frozen" name="frozen" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Thaw Date (if frozen)" name="thaw_date" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- </fields>
- <links>
- <link field="fulfillment_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="fulfillment_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="pickup_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="selection_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="requestor" reltype="has_a" key="id" map="" class="au"/>
- <link field="current_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="request_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="transit" reltype="might_have" key="hold" map="" class="ahtc"/>
- <link field="notifications" reltype="has_many" key="hold" map="" class="ahn"/>
- <link field="eligible_copies" reltype="has_many" key="hold" map="target_copy" class="ahcm"/>
- <link field="bib_rec" reltype="might_have" key="id" map="" class="rhrr"/>
- </links>
- </class>
- <class id="aou" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit" oils_persist:tablename="actor.org_unit" reporter:label="Organizational Unit" oils_persist:field_safe="true">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Subordinate Organizational Units" name="children" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Address" name="billing_address" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Holds Receiving Address" name="holds_address" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Organizational Unit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="ILL Receiving Address" name="ill_address" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Mailing Address" name="mailing_address" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Organizational Unit Type" name="ou_type" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Parent Organizational Unit" name="parent_ou" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Short (Policy) Name" name="shortname" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Email Address" name="email" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Phone Number" name="phone" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Users" name="users" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Closed Dates" name="closed_dates" oils_obj:array_position="17" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulations" name="circulations" oils_obj:array_position="18" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Settings" name="settings" oils_obj:array_position="19" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Addresses" name="addresses" oils_obj:array_position="20" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Checkins" name="checkins" oils_obj:array_position="21" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Workstations" name="workstations" oils_obj:array_position="22" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="billing_address" reltype="has_a" key="id" map="" class="aoa"/>
- <link field="holds_address" reltype="has_a" key="id" map="" class="aoa"/>
- <link field="ou_type" reltype="has_a" key="id" map="" class="aout"/>
- <link field="mailing_address" reltype="has_a" key="id" map="" class="aoa"/>
- <link field="parent_ou" reltype="has_a" key="id" map="" class="aou"/>
- <link field="ill_address" reltype="has_a" key="id" map="" class="aoa"/>
- <link field="users" reltype="has_many" key="home_ou" map="" class="au"/>
- <link field="closed_dates" reltype="has_many" key="org_unit" map="" class="aoucd"/>
- <link field="children" reltype="has_many" key="parent_ou" map="" class="aou"/>
- <link field="circulations" reltype="has_many" key="circ_lib" map="" class="circ"/>
- <link field="settings" reltype="has_many" key="org_unit" map="" class="aous"/>
- <link field="addresses" reltype="has_many" key="org_unit" map="" class="aoa"/>
- <link field="checkins" reltype="has_many" key="checkin_lib" map="" class="circ"/>
- <link field="workstations" reltype="has_many" key="owning_lib" map="" class="aws"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_ORG_UNIT" context_field="parent_ou"/>
- <retrieve permission="CREATE_ORG_UNIT|UPDATE_ORG_UNIT|DELETE_ORG_UNIT">
- <context field="id"/>
- <context field="parent_ou"/>
- </retrieve>
- <update permission="UPDATE_ORG_UNIT" context_field="id"/>
- <delete permission="DELETE_ORG_UNIT" context_field="parent_ou"/>
- </actions>
- </permacrud>
- </class>
- <class id="ccnb" controller="open-ils.cstore" oils_obj:fieldmapper="container::call_number_bucket" oils_persist:tablename="container.call_number_bucket">
- <fields oils_persist:primary="id" oils_persist:sequence="container.call_number_bucket_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="items" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="items" reltype="has_many" key="bucket" map="" class="ccnbi"/>
- </links>
- </class>
- <class id="asc" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat" oils_persist:tablename="asset.stat_cat" reporter:label="Asset Statistical Category">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.stat_cat_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entries" name="entries" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Stat Cat ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" reporter:selector="name"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Owning Library" name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- <link field="entries" reltype="has_many" key="stat_cat" map="" class="asce"/>
- </links>
- </class>
- <class id="ac" controller="open-ils.cstore" oils_obj:fieldmapper="actor::card" oils_persist:tablename="actor.card" reporter:label="Library Card">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.card_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="IsActive?" name="active" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Barcode" name="barcode" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Card ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="actsc" controller="open-ils.cstore" oils_obj:fieldmapper="actor::stat_cat" oils_persist:tablename="actor.stat_cat" reporter:label="User Statistical Category">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.stat_cat_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entries" name="entries" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Stat Cat ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" reporter:selector="name"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Owning Library" name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- <link field="entries" reltype="has_many" key="stat_cat" map="" class="actsce"/>
- </links>
- </class>
- <class id="msefe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::series_field_entry" oils_persist:tablename="metabib.series_field_entry">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.series_field_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="source" reltype="has_a" key="id" map="" class="bre"/>
- <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
- </links>
- </class>
- <class id="cub" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket" oils_persist:tablename="container.user_bucket">
- <fields oils_persist:primary="id" oils_persist:sequence="container.user_bucket_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="items" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="items" reltype="has_many" key="bucket" map="" class="cubi"/>
- </links>
- </class>
- <class id="mcrp" controller="open-ils.cstore" oils_obj:fieldmapper="money::credit_payment" oils_persist:tablename="money.credit_payment" reporter:label="House Credit Payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Pyament ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Payment Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction" name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="text"/>
- <field reporter:label="Payment link" name="payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="afr" controller="open-ils.cstore" oils_obj:fieldmapper="authority::full_rec" oils_persist:tablename="authority.full_rec">
- <fields oils_persist:primary="id" oils_persist:sequence="authority.full_rec_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="ind1" oils_obj:array_position="4" oils_persist:virtual="false" />
- <field name="ind2" oils_obj:array_position="5" oils_persist:virtual="false" />
- <field name="record" oils_obj:array_position="6" oils_persist:virtual="false" />
- <field name="subfield" oils_obj:array_position="7" oils_persist:virtual="false" />
- <field name="tag" oils_obj:array_position="8" oils_persist:virtual="false" />
- <field name="value" oils_obj:array_position="9" oils_persist:virtual="false" />
- </fields>
- <links>
- <link field="record" reltype="has_a" key="id" map="" class="are"/>
- </links>
- </class>
- <class id="cnct" controller="open-ils.cstore" oils_obj:fieldmapper="config::non_cataloged_type" oils_persist:tablename="config.non_cataloged_type" reporter:label="Non-cataloged Type">
- <fields oils_persist:primary="id" oils_persist:sequence="config.non_cataloged_type_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulation Duration" name="circ_duration" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Non-cat Type ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="In House?" name="in_house" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Name" name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="aout" controller="open-ils.cstore" oils_obj:fieldmapper="actor::org_unit_type" oils_persist:tablename="actor.org_unit_type" reporter:label="Organizational Unit Type">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.org_unit_type_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Subordinate Types" name="children" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Can Have Users?" name="can_have_users" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Can Have Volumes?" name="can_have_vols" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Type Depth" name="depth" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Type ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Type Name" name="name" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="OPAC Label" name="opac_label" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Parent Type" name="parent" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Org Units" name="org_units" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="org_unit"/>
- </fields>
- <links>
- <link field="parent" reltype="has_a" key="id" map="" class="aout"/>
- <link field="children" reltype="has_many" key="parent" map="" class="aout"/>
- <link field="org_units" reltype="has_many" key="ou_type" map="" class="aou"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_ORG_TYPE" global_required="true"/>
- <retrieve permission="CREATE_ORG_UNIT|UPDATE_ORG_UNIT|DELETE_ORG_UNIT" global_required="true"/>
- <update permission="UPDATE_ORG_TYPE" global_required="true"/>
- <delete permission="DELETE_ORG_TYPE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="bren" controller="open-ils.cstore" oils_obj:fieldmapper="biblio::record_note" oils_persist:tablename="biblio.record_note">
- <fields oils_persist:primary="id" oils_persist:sequence="biblio.record_note_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="create_date" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="creator" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="edit_date" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="editor" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="record" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- <link field="editor" reltype="has_a" key="id" map="" class="au"/>
- <link field="record" reltype="has_a" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="mucs" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_circulation_summary" oils_persist:tablename="money.usr_circulation_summary">
- <fields oils_persist:primary="usr" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="mg" controller="open-ils.cstore" oils_obj:fieldmapper="money::grocery" oils_persist:tablename="money.grocery" reporter:label="Grocery Transaction">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Billing Location" name="billing_location" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User" name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction Finish Timestamp" name="xact_finish" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Start Timestamp" name="xact_start" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Billings" name="billings" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Payments" name="payments" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Billable Transaction link" name="billable_transaction" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
- <link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
- <link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
- <link field="billing_location" reltype="has_a" key="id" map="" class="aou"/>
- <link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
- <link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
- </links>
- </class>
- <class id="cbs" controller="open-ils.cstore" oils_obj:fieldmapper="config::bib_source" oils_persist:tablename="config.bib_source">
- <fields oils_persist:primary="id" oils_persist:sequence="config.bib_source_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="source" reporter:datatype="id"/>
- <field name="quality" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="transcendant" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links/>
- </class>
- <class id="mbt" controller="open-ils.cstore" oils_obj:fieldmapper="money::billable_transaction" oils_persist:tablename="money.billable_xact" reporter:label="Billable Transaction">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Transaction ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="User" name="usr" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction Start Date/Time" name="xact_start" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Grocery Billing link" name="grocery" oils_obj:array_position="7" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulation Billing link" name="circulation" oils_obj:array_position="8" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Billing Line Items" name="billings" oils_obj:array_position="9" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Payment Line Items" name="payments" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="grocery" reltype="might_have" key="id" map="" class="mg"/>
- <link field="circulation" reltype="might_have" key="id" map="" class="circ"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
- <link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
- <link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
- <link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
- </links>
- </class>
- <class id="actsce" controller="open-ils.cstore" oils_obj:fieldmapper="actor::stat_cat_entry" oils_persist:tablename="actor.stat_cat_entry" reporter:label="User Stat Cat Entry">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.stat_cat_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Stat Cat" name="stat_cat" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Entry Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="stat_cat" reltype="has_a" key="id" map="" class="actsc"/>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="cubi" controller="open-ils.cstore" oils_obj:fieldmapper="container::user_bucket_item" oils_persist:tablename="container.user_bucket_item">
- <fields oils_persist:primary="id" oils_persist:sequence="container.user_bucket_item_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="target_user" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="target_user" reltype="has_a" key="id" map="" class="au"/>
- <link field="bucket" reltype="has_a" key="id" map="" class="cub"/>
- </links>
- </class>
- <class id="mus" controller="open-ils.cstore" oils_obj:fieldmapper="money::user_summary" oils_persist:tablename="money.usr_summary">
- <fields oils_persist:primary="usr" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="clfm" controller="open-ils.cstore" oils_obj:fieldmapper="config::lit_form_map" oils_persist:tablename="config.lit_form_map" reporter:label="Literary Form" oils_persist:field_safe="true">
- <fields oils_persist:primary="code" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="LitF Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="LitF Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="LitF Name" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_MARC_CODE" global_required="true"/>
- <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
- <update permission="UPDATE_MARC_CODE" global_required="true"/>
- <delete permission="DELETE_MARC_CODE" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="mwp" controller="open-ils.cstore" oils_obj:fieldmapper="money::work_payment" oils_persist:tablename="money.work_payment" reporter:label="Work Payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction ID" name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Payment link" name="payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="mgp" controller="open-ils.cstore" oils_obj:fieldmapper="money::goods_payment" oils_persist:tablename="money.goods_payment" reporter:label="Goods Payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction ID" name="xact" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Payment link" name="payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="aoc" controller="open-ils.cstore" oils_obj:fieldmapper="action::open_circulation" oils_persist:tablename="action.open_circulation">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field name="circulation" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="circulation" reltype="might_have" key="id" map="" class="circ"/>
- <link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
- <link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
- <link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
- </links>
- </class>
- <class id="msfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::subject_field_entry" oils_persist:tablename="metabib.subject_field_entry">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.subject_field_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="source" reltype="has_a" key="id" map="" class="bre"/>
- <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
- </links>
- </class>
- <class id="crrf" controller="open-ils.cstore" oils_obj:fieldmapper="config::rules::recuring_fine" oils_persist:tablename="config.rule_recuring_fine">
- <fields oils_persist:primary="id" oils_persist:sequence="config.rule_recuring_fine_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="high" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field name="low" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="normal" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="recurance_interval" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="interval"/>
- </fields>
- <links/>
- </class>
- <class id="mckp" controller="open-ils.cstore" oils_obj:fieldmapper="money::check_payment" oils_persist:tablename="money.check_payment" reporter:label="Check Payment">
- <fields oils_persist:primary="id" oils_persist:sequence="money.payment_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Accepting Staff Member" name="accepting_usr" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Amount" name="amount" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Amount Collected" name="amount_collected" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Workstation link" name="cash_drawer" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Check Number" name="check_number" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Timestamp" name="payment_ts" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction link" name="xact" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Payment link" name="payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="payment" reltype="might_have" key="id" map="" class="mp"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="acp" controller="open-ils.cstore" oils_obj:fieldmapper="asset::copy" oils_persist:tablename="asset.copy" reporter:core="true" reporter:label="Item">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.copy_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Statistical Catagory Entries" name="stat_cat_entries" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Age Hold Protection" name="age_protect" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Alert Message" name="alert_message" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Barcode" name="barcode" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Call Number/Volume" name="call_number" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circulation Type (MARC)" name="circ_as_type" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulation Modifier" name="circ_modifier" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Can Circulate" name="circulate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Copy Number on Volume" name="copy_number" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Creation Date/Time" name="create_date" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Creating User" name="creator" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Is Deleted" name="deleted" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Is Deposit Required" name="deposit" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Deposit Amount" name="deposit_amount" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Precat Dummy Author" name="dummy_author" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Precat Dummy Title" name="dummy_title" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Last Edit Date/Time" name="edit_date" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Editing User" name="editor" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fine Level" name="fine_level" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Is Holdable" name="holdable" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="bool" />
- <field reporter:label="Copy ID" name="id" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Loan Duration" name="loan_duration" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Shelving Location" name="location" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="bool" />
- <field reporter:label="Price" name="price" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Is Reference" name="ref" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Copy Status" name="status" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Copy Notes" name="notes" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Stat-Cat entry maps" name="stat_cat_entry_copy_maps" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulations" name="circulations" oils_obj:array_position="33" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Total Circulations" name="total_circ_count" oils_obj:array_position="34" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Holds" name="holds" oils_obj:array_position="35" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="age_protect" reltype="has_a" key="id" map="" class="crahp"/>
- <link field="call_number" reltype="has_a" key="id" map="" class="acn"/>
- <link field="location" reltype="has_a" key="id" map="" class="acpl"/>
- <link field="editor" reltype="has_a" key="id" map="" class="au"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- <link field="status" reltype="has_a" key="id" map="" class="ccs"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="holds" reltype="has_many" key="target_copy" map="hold" class="ahcm"/>
- <link field="stat_cat_entry_copy_maps" reltype="has_many" key="owning_copy" map="" class="ascecm"/>
- <link field="notes" reltype="has_many" key="owning_copy" map="" class="acpn"/>
- <link field="stat_cat_entries" reltype="has_many" key="owning_copy" map="stat_cat_entry" class="ascecm"/>
- <link field="circulations" reltype="has_many" key="target_copy" map="" class="circ"/>
- <link field="total_circ_count" reltype="might_have" key="id" map="" class="erfcc"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_COPY">
- <context link="call_number" field="owning_lib"/>
- </create>
- <retrieve/>
- <update permission="UPDATE_COPY">
- <context link="call_number" field="owning_lib"/>
- </update>
- <delete permission="DELETE_COPY">
- <context link="call_number" field="owning_lib"/>
- </delete>
- </actions>
- </permacrud>
- </class>
- <class id="crahp" controller="open-ils.cstore" oils_obj:fieldmapper="config::rules::age_hold_protect" oils_persist:tablename="config.rule_age_hold_protect" reporter:label="Age Hold Protection Rule">
- <fields oils_persist:primary="id" oils_persist:sequence="config.rule_age_hold_protect_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Item Age" name="age" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Rule ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Rule Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Allowed Proximity" name="prox" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int" />
- </fields>
- <links/>
- </class>
- <class id="crmf" controller="open-ils.cstore" oils_obj:fieldmapper="config::rules::max_fine" oils_persist:tablename="config.rule_max_fine" reporter:label="Max Fine Rule">
- <fields oils_persist:primary="id" oils_persist:sequence="config.rule_max_fine_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Max Fine Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Rule ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Rule Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links/>
- </class>
- <class id="pgt" controller="open-ils.cstore" oils_obj:fieldmapper="permission::grp_tree" oils_persist:tablename="permission.grp_tree" reporter:label="Permission Group">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.grp_tree_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Child Groups" name="children" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Group ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:selector="name" reporter:datatype="id"/>
- <field reporter:label="Group Name" name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- <field reporter:label="Parent Group" name="parent" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="User Expiration Interval" name="perm_interval" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Required Permission" name="application_perm" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Is User Group" name="usergroup" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links>
- <link field="parent" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="children" reltype="has_many" key="parent" map="" class="pgt"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_PERM" global_required="true"/>
- <retrieve permission="CREATE_PERM|UPDATE_PERM|DELETE_PERM" global_required="true"/>
- <update permission="UPDATE_PERM" global_required="true"/>
- <delete permission="DELETE_PERM" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="asva" controller="open-ils.cstore" oils_obj:fieldmapper="action::survey_answer" oils_persist:tablename="action.survey_answer" reporter:label="Survey Answer">
- <fields oils_persist:primary="id" oils_persist:sequence="action.survey_answer_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Responses using this Answer" name="responses" oils_obj:array_position="3" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Answer Text" name="answer" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Answer ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Question" name="question" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="question" reltype="has_a" key="id" map="" class="asvq"/>
- <link field="responses" reltype="has_many" key="answer" map="" class="asvr"/>
- </links>
- </class>
- <class id="ancc" controller="open-ils.cstore" oils_obj:fieldmapper="action::non_cataloged_circulation" oils_persist:tablename="action.non_cataloged_circulation" reporter:core="true" reporter:label="Non-cataloged Circulation">
- <fields oils_persist:primary="id" oils_persist:sequence="action.non_cataloged_circulation_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulation Date/Time" name="circ_time" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Non-cat Circulation ID" name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Non-cat Item Type" name="item_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron" name="patron" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circulating Staff" name="staff" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="item_type" reltype="has_a" key="id" map="" class="cnct"/>
- <link field="staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="patron" reltype="has_a" key="id" map="" class="au"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="moucs" controller="open-ils.cstore" oils_obj:fieldmapper="money::open_user_circulation_summary" oils_persist:tablename="money.open_usr_circulation_summary">
- <fields oils_persist:primary="usr" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="balance_owed" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_owed" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="total_paid" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
- <field name="usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="aufh" controller="open-ils.cstore" oils_obj:fieldmapper="action::unfulfilled_hold_list" oils_persist:tablename="action.unfulfilled_hold_list" reporter:label="Unfulfilled Hold Targets">
- <fields oils_persist:primary="id" oils_persist:sequence="action.unfulfilled_hold_list_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Non-fulfilling Library" name="circ_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Non-fulfilling Copy" name="current_copy" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Retargeting Date/Time" name="fail_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Hold" name="hold" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Record ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- </fields>
- <links>
- <link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
- <link field="current_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="mtfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::title_field_entry" oils_persist:tablename="metabib.title_field_entry">
- <fields oils_persist:primary="id" oils_persist:sequence="metabib.title_field_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="field" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="source" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="source" reltype="has_a" key="id" map="" class="bre"/>
- <link field="field" reltype="has_a" key="id" map="" class="cmf"/>
- </links>
- </class>
- <class id="actscecm" controller="open-ils.cstore" oils_obj:fieldmapper="actor::stat_cat_entry_user_map" oils_persist:tablename="actor.stat_cat_entry_usr_map" reporter:label="User Statistical Category Entry">
- <fields oils_persist:primary="id" oils_persist:sequence="actor.stat_cat_entry_usr_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Statistical Category" name="stat_cat" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Entry Text" name="stat_cat_entry" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User" name="target_usr" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="target_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="stat_cat" reltype="has_a" key="id" map="" class="actsc"/>
- </links>
- </class>
- <class id="pgpm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::grp_perm_map" oils_persist:tablename="permission.grp_perm_map">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.grp_perm_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="depth" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="grantable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="grp" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="perm" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="ASSIGN_GROUP_PERM" global_required="true"/>
- <retrieve permission="ASSIGN_GROUP_PERM|UPDATE_GROUP_PERM|REMOVE_GROUP_PERM" global_required="true"/>
- <update permission="UPDATE_GROUP_PERM" global_required="true"/>
- <delete permission="REMOVE_GROUP_PERM" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="ccb" controller="open-ils.cstore" oils_obj:fieldmapper="container::copy_bucket" oils_persist:tablename="container.copy_bucket">
- <fields oils_persist:primary="id" oils_persist:sequence="container.copy_bucket_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="items" oils_obj:array_position="3" oils_persist:virtual="true" />
- <field name="btype" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="owner" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="pub" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="create_time" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="items" reltype="has_many" key="bucket" map="" class="ccbi"/>
- </links>
- </class>
- <class id="puwoum" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_work_ou_map" oils_persist:tablename="permission.usr_work_ou_map">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_work_ou_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
- <field name="usr" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="work_ou" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="work_ou" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="pupm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_perm_map" oils_persist:tablename="permission.usr_perm_map">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_perm_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="depth" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int"/>
- <field name="grantable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="perm" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="usr" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
- </links>
- </class>
- <class id="puopm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_object_perm_map" oils_persist:tablename="permission.usr_object_perm_map">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_object_perm_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="object_id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="grantable" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="perm" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="usr" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="object_type" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="perm" reltype="has_a" key="id" map="" class="ppl"/>
- </links>
- </class>
- <class id="mp" controller="open-ils.cstore" oils_obj:fieldmapper="money::payment" oils_persist:tablename="money.payment_view" reporter:core="true" reporter:label="Payments: All">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Cash Payment Detail" name="cash_payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Credit Card Payment Detail" name="credit_card_payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Credit Payment Detail" name="credit_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Check Payment Detail" name="check_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Work Payment Detail" name="work_payment" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_obj:array_position="15" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Goods Payment Detail" name="goods_payment" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="cash_payment" reltype="might_have" key="id" map="" class="mcp"/>
- <link field="credit_card_payment" reltype="might_have" key="id" map="" class="mccp"/>
- <link field="credit_payment" reltype="might_have" key="id" map="" class="mcrp"/>
- <link field="check_payment" reltype="might_have" key="id" map="" class="mckp"/>
- <link field="work_payment" reltype="might_have" key="id" map="" class="mwp"/>
- <link field="forgive_payment" reltype="might_have" key="id" map="" class="mfp"/>
- <link field="goods_payment" reltype="might_have" key="id" map="" class="mgp"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="mbp" controller="open-ils.cstore" oils_obj:fieldmapper="money::bnm_payment" oils_persist:tablename="money.bnm_payment_view" reporter:core="true" reporter:label="Payments: Brick-and-mortar">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Cash Payment Detail" name="cash_payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Credit Card Payment Detail" name="credit_card_payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Credit Payment Detail" name="credit_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Check Payment Detail" name="check_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Work Payment Detail" name="work_payment" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_obj:array_position="15" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Goods Payment Detail" name="goods_payment" oils_obj:array_position="16" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="cash_payment" reltype="might_have" key="id" map="" class="mcp"/>
- <link field="credit_card_payment" reltype="might_have" key="id" map="" class="mccp"/>
- <link field="credit_payment" reltype="might_have" key="id" map="" class="mcrp"/>
- <link field="check_payment" reltype="might_have" key="id" map="" class="mckp"/>
- <link field="work_payment" reltype="might_have" key="id" map="" class="mwp"/>
- <link field="forgive_payment" reltype="might_have" key="id" map="" class="mfp"/>
- <link field="goods_payment" reltype="might_have" key="id" map="" class="mgp"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="mndp" controller="open-ils.reporter" oils_obj:fieldmapper="money::non_drawer_payment" oils_persist:tablename="money.non_drawer_payment_view" reporter:core="true" reporter:label="Payments: Non-drawer Staff">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Work Payment Detail" name="work_payment" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Forgive Payment Detail" name="forgive_payment" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Goods Payment Detail" name="goods_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="work_payment" reltype="might_have" key="id" map="" class="mwp"/>
- <link field="forgive_payment" reltype="might_have" key="id" map="" class="mfp"/>
- <link field="goods_payment" reltype="might_have" key="id" map="" class="mgp"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="mdp" controller="open-ils.cstore" oils_obj:fieldmapper="money::desk_payment" oils_persist:tablename="money.desk_payment_view" reporter:core="true" reporter:label="Payments: Desk">
- <fields oils_persist:primary="id" oils_persist:sequence="">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Payment ID" name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Payment Date/Time" name="payment_ts" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Payment Type" name="payment_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billable Transaction" name="xact" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Accepting User" name="accepting_usr" oils_obj:array_position="9" oils_persist:virtual="false" />
- <field reporter:label="Cash Drawer" name="cash_drawer" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Voided?" name="voided" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Cash Payment" name="cash_payment" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Credit Card Payment" name="credit_card_payment" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Check Payment" name="check_payment" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="cash_payment" reltype="might_have" key="id" map="" class="mcp"/>
- <link field="credit_card_payment" reltype="might_have" key="id" map="" class="mccp"/>
- <link field="check_payment" reltype="might_have" key="id" map="" class="mckp"/>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- <link field="accepting_usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="cash_drawer" reltype="has_a" key="id" map="" class="aws"/>
- </links>
- </class>
- <class id="cbrebi" controller="open-ils.cstore" oils_obj:fieldmapper="container::biblio_record_entry_bucket_item" oils_persist:tablename="container.biblio_record_entry_bucket_item">
- <fields oils_persist:primary="id" oils_persist:sequence="container.biblio_record_entry_bucket_item_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="bucket" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="target_biblio_record_entry" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp" />
- </fields>
- <links>
- <link field="target_biblio_record_entry" reltype="has_a" key="id" map="" class="bre"/>
- <link field="bucket" reltype="has_a" key="id" map="" class="cbreb"/>
- </links>
- </class>
- <class id="asce" controller="open-ils.cstore" oils_obj:fieldmapper="asset::stat_cat_entry" oils_persist:tablename="asset.stat_cat_entry" reporter:label="Item Stat Cat Entry">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.stat_cat_entry_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Stat Cat" name="stat_cat" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Value" name="value" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
- </fields>
- <links>
- <link field="stat_cat" reltype="has_a" key="id" map="" class="asc"/>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
- <class id="ahtc" controller="open-ils.cstore" oils_obj:fieldmapper="action::hold_transit_copy" oils_persist:tablename="action.hold_transit_copy" reporter:core="true" reporter:label="Hold Transit">
- <fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Copy Status at Transit" name="copy_status" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Destination Library" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Hold requiring Transit" name="hold" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transit ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Is Persistent?" name="persistant_transfer" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Previous Stop" name="prev_hop" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Sending Library" name="source" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transited Copy" name="target_copy" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Base Transit" name="transit_copy" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="transit_copy" reltype="might_have" key="id" map="" class="atc"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="source" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_status" reltype="has_a" key="id" map="" class="ccs"/>
- <link field="dest" reltype="has_a" key="id" map="" class="aou"/>
- <link field="hold" reltype="has_a" key="id" map="" class="ahr"/>
- </links>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="TRANSIT_COPY" context_field="owner">
- <context link="target_copy" field="circ_lib"/>
- </create>
- <retrieve/>
- <update permission="UPDATE_TRANSIT" context_field="dest|source"/>
- <delete permission="DELETE_TRANSIT" context_field="dest|source"/>
- </actions>
- </permacrud>
- </class>
- <class id="mb" controller="open-ils.cstore" oils_obj:fieldmapper="money::billing" oils_persist:tablename="money.billing" reporter:label="Billing Line Item">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billing_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Amount" name="amount" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Billing Timestamp" name="billing_ts" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billing ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Note" name="note" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Void Timestamp" name="void_time" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Voided?" name="voided" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Voiding Staff Member" name="voider" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction" name="xact" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="xact" reltype="has_a" key="id" map="" class="mbt"/>
- <link field="voider" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="pugm" controller="open-ils.cstore" oils_obj:fieldmapper="permission::usr_grp_map" oils_persist:tablename="permission.usr_grp_map">
- <fields oils_persist:primary="id" oils_persist:sequence="permission.usr_grp_map_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="grp" oils_obj:array_position="3" oils_persist:virtual="false" />
- <field name="id" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="usr" oils_obj:array_position="5" oils_persist:virtual="false" />
- </fields>
- <links>
- <link field="grp" reltype="has_a" key="id" map="" class="pgt"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="i18n" controller="open-ils.cstore" oils_obj:fieldmapper="config::i18n_core" oils_persist:tablename="config.i18n_core" oils_persist:field_safe="true">
- <fields oils_persist:primary="id" oils_persist:sequence="config.i18n_core_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="fq_field" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="identity_value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="translation" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="string" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links/>
- <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
- <actions>
- <create permission="CREATE_TRANSLATION" global_required="true"/>
- <retrieve permission="CREATE_TRANSLATION|UPDATE_TRANSLATION|DELETE_TRANSLATION" global_required="true"/>
- <update permission="UPDATE_TRANSLATION" global_required="true"/>
- <delete permission="DELETE_TRANSLATION" global_required="true"/>
- </actions>
- </permacrud>
- </class>
- <class id="rof" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::output_folder" oils_persist:tablename="reporter.output_folder">
- <fields oils_persist:primary="id" oils_persist:sequence="reporter.output_folder_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="parent" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="name" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="shared" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="share_with" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="children" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="outputs" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="parent" reltype="has_a" key="id" map="" class="rof"/>
- <link field="children" reltype="has_many" key="parent" map="" class="rof"/>
- <link field="share_with" reltype="has_a" key="id" map="" class="aou"/>
- <link field="outputs" reltype="has_many" key="folder" map="" class="rs"/>
- </links>
- </class>
- <class id="rtf" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::template_folder" oils_persist:tablename="reporter.template_folder">
- <fields oils_persist:primary="id" oils_persist:sequence="reporter.template_folder_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="parent" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="name" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="shared" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="share_with" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="children" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="templates" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="parent" reltype="has_a" key="id" map="" class="rtf"/>
- <link field="children" reltype="has_many" key="parent" map="" class="rtf"/>
- <link field="share_with" reltype="has_a" key="id" map="" class="aou"/>
- <link field="templates" reltype="has_many" key="folder" map="" class="rt"/>
- </links>
- </class>
- <class id="rrf" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::report_folder" oils_persist:tablename="reporter.report_folder">
- <fields oils_persist:primary="id" oils_persist:sequence="reporter.report_folder_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="parent" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="owner" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="name" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="shared" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="share_with" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="children" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- <field name="reports" oils_obj:array_position="11" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="parent" reltype="has_a" key="id" map="" class="rrf"/>
- <link field="children" reltype="has_many" key="parent" map="" class="rrf"/>
- <link field="share_with" reltype="has_a" key="id" map="" class="aou"/>
- <link field="reports" reltype="has_many" key="folder" map="" class="rr"/>
- </links>
- </class>
- <class id="rt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::template" oils_persist:tablename="reporter.template">
- <fields oils_persist:primary="id" oils_persist:sequence="reporter.template_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="name" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="data" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="folder" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="description" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="reports" oils_obj:array_position="10" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="folder" reltype="has_a" key="id" map="" class="rtf"/>
- <link field="reports" reltype="has_many" key="template" map="" class="rr"/>
- </links>
- </class>
- <class id="rr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::report" oils_persist:tablename="reporter.report">
- <fields oils_persist:primary="id" oils_persist:sequence="reporter.report_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="create_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="template" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="data" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="folder" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="recur" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="recurance" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field name="name" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="description" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="runs" oils_obj:array_position="13" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="au"/>
- <link field="template" reltype="has_a" key="id" map="" class="rt"/>
- <link field="folder" reltype="has_a" key="id" map="" class="rrf"/>
- <link field="runs" reltype="has_many" key="report" map="" class="rs"/>
- </links>
- </class>
- <class id="rs" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::schedule" oils_persist:tablename="reporter.schedule">
- <fields oils_persist:primary="id" oils_persist:sequence="reporter.schedule_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field name="runner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="start_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="complete_time" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="run_time" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field name="email" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="excel_format" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="csv_format" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="html_format" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="error_code" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="int"/>
- <field name="error_text" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field name="report" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="folder" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field name="chart_pie" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="chart_bar" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field name="chart_line" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="bool"/>
- </fields>
- <links>
- <link field="runner" reltype="has_a" key="id" map="" class="au"/>
- <link field="report" reltype="has_a" key="id" map="" class="rr"/>
- <link field="folder" reltype="has_a" key="id" map="" class="rof"/>
- </links>
- </class>
- <class id="rmsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::materialized_simple_record" oils_persist:tablename="reporter.materialized_simple_record" reporter:label="Fast Simple Record Extracts">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Author (normalized)" name="author" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="ISBN" name="isbn" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="ISSN" name="issn" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="rssr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::super_simple_record" oils_persist:tablename="reporter.super_simple_record" reporter:label="Simple Record Extracts">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Author (normalized)" name="author" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="ISBN" name="isbn" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="ISSN" name="issn" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="rsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::simple_record" oils_persist:tablename="reporter.simple_record">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Metarecord" name="metarecord" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="5" oils_persist:virtual="false" />
- <field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Uniform Title (normalized)" name="uniform_title" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Author (normalized)" name="author" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Series Title (normalized)" name="series_title" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Series Statement (normalized)" name="series_statement" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Summary (normalized)" name="summary" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="ISBN" name="isbn" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="ISSN" name="issn" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Topic Subjects (normalized)" name="topic_subject" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Geographic Subjects (normalized)" name="geographic_subject" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Genres (normalized)" name="genre" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Personal Name Subjects (normalized)" name="name_subject" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Corporate Name Subjects (normalized)" name="corporate_subject" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="External URI List (normalized)" name="external_uri" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="25" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="metarecord" reltype="has_a" key="id" map="" class="mmr"/>
- <link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="rud" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::user_demographic" oils_persist:tablename="reporter.demographic" reporter:label="User Demographics">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="User ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Date of Birth" name="dob" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="General Demographic Division" name="general_division" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="id" reltype="might_have" key="id" map="" class="au"/>
- </links>
- </class>
- <class id="rcirct" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::circulation_type" oils_persist:tablename="reporter.circ_type" reporter:label="Circulation Type">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Circulation Type" name="type" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="id" reltype="might_have" key="id" map="" class="circ"/>
- </links>
- </class>
- <class id="rhrr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::hold_request_record" oils_persist:tablename="reporter.hold_request_record">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Hold ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Hold Target" name="target" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Hold Request Type" name="hold_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Target Bib Record" name="bib_record" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="id" reltype="might_have" key="id" map="" class="ahr"/>
- <link field="bib_record" reltype="has_a" key="id" map="" class="bre"/>
- </links>
- </class>
- <class id="rxbt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::xact_billing_totals" oils_persist:tablename="reporter.xact_billing_totals">
- <fields oils_persist:primary="xact">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Transaction ID" name="xact" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Unvoided Billing Amount" name="unvoided" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Voided Billing Amount" name="voided" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Total Billing Amount" name="total" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="xact" reltype="might_have" key="id" map="" class="mbt"/>
- </links>
- </class>
- <class id="rxpt" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::xact_paid_totals" oils_persist:tablename="reporter.xact_paid_totals">
- <fields oils_persist:primary="xact">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Transaction ID" name="xact" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Unvoided Paid Amount" name="unvoided" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Voided (Returned) Paid Amount" name="voided" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Total Paid Amount" name="total" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="xact" reltype="might_have" key="id" map="" class="mbt"/>
- </links>
- </class>
-
- <class id="erfcc" controller="open-ils.reporter-store" oils_obj:fieldmapper="extend_reporter::full_circ_count" oils_persist:tablename="extend_reporter.full_circ_count" reporter:label="Total Circulation Count, Including Legacy">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Copy ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Total Circulation Count" name="circ_count" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="int" />
- </fields>
- <links>
- <link field="id" reltype="has_a" key="id" map="" class="acp"/>
- </links>
- </class>
-
- <!-- ********************************************************************************************************************* -->
- <!-- What follows is a set of example extensions that are useful for PINES. Comment out or remove if you don't want them. -->
- <!-- ********************************************************************************************************************* -->
- <class id="rccc" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::classic_current_circ" oils_persist:tablename="reporter.classic_current_circ" reporter:core="true" reporter:label="Classic Circulation View">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulation" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Library Circulation Location Short (Policy) Name" name="circ_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Library Circulation Location Link" name="circ_lib_id" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulation Date/Time" name="xact_start" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Copy Link" name="copy_id" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circ Modifier" name="circ_modifier" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Owning Library Short (Policy) Name" name="owning_lib_name" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Item Language" name="language" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Literary Form" name="lit_form" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="MARC Form" name="item_form" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="MARC Type" name="item_type" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Shelving Location" name="shelving_location" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron Profile Group" name="profile_group" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron Age Demographic" name="demographic_general_division" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Call Number Link" name="call_number" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Call Number Label" name="call_number_label" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Call Number Dewey/Prefix" name="dewey" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron Link" name="patron_id" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron Home Library Link" name="patron_home_lib" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron Home Library Short (Policy) Name" name="patron_home_lib_shortname" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron County" name="patron_county" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron City" name="patron_city" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron ZIP Code" name="patron_zip" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy CAT1 Link" name="stat_cat_1" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Legacy CAT2 Link" name="stat_cat_2" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Dewey Range -- Tens" name="dewey_range_tens" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Dewey Range -- Hundreds" name="dewey_range_hundreds" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Dewey Block -- Tens" name="dewey_block_tens" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Dewey Block -- Hundreds" name="dewey_block_hundreds" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy CAT1 Value" name="stat_cat_1_value" oils_obj:array_position="33" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy CAT2 Value" name="stat_cat_2_value" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="id" reltype="has_a" key="id" map="" class="circ"/>
- <link field="copy_id" reltype="has_a" key="id" map="" class="acp"/>
- <link field="patron_id" reltype="has_a" key="id" map="" class="au"/>
- <link field="circ_lib_id" reltype="has_a" key="id" map="" class="aou"/>
- <link field="call_number" reltype="has_a" key="id" map="" class="acn"/>
- <link field="patron_home_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="stat_cat_1" reltype="has_a" key="id" map="" class="rsce1"/>
- <link field="stat_cat_2" reltype="has_a" key="id" map="" class="rsce2"/>
- </links>
- </class>
-
- <class id="rsce1" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::legacy_cat1" oils_persist:tablename="reporter.legacy_cat1" reporter:label="CAT1 Entry">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="id" />
- <field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Entry Value" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rsce2" controller="open-ils.reporter-store open-ils.cstore" oils_obj:fieldmapper="reporter::legacy_cat2" oils_persist:tablename="reporter.legacy_cat2" reporter:label="CAT2 Entry">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Entry ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:selector="value" reporter:datatype="id" />
- <field reporter:label="Entry Owner" name="owner" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Entry Value" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="owner" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rccbs" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::classic_current_billing_summary" oils_persist:tablename="reporter.classic_current_billing_summary" reporter:core="true" reporter:label="Classic Open Transaction Summary">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Transaction ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" />
-
- <field reporter:label="Billing Location Short (Policy) Name" name="billing_location_shortname" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billing Location Name" name="billing_location_name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Billing Location Link" name="billing_location" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-
- <field reporter:label="User Home Library Short (Policy) Name" name="usr_home_ou_shortname" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User Home Library Name" name="usr_home_ou_name" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User Home Library Link" name="usr_home_ou" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="org_unit"/>
-
- <field reporter:label="User Barcode" name="barcode" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User Link" name="usr" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
-
- <field reporter:label="Transaction Start Date/Time" name="xact_start" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction End Date/Time" name="xact_finish" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transaction Type" name="xact_type" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
-
- <field reporter:label="Total Paid" name="total_paid" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Total Billed" name="total_owed" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="money"/>
-
- <field reporter:label="Last Payment Date/Time" name="last_payment_ts" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Payment Note" name="last_payment_note" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Last Payment Type" name="last_payment_type" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="text"/>
-
- <field reporter:label="Last Billing Date/Time" name="last_billing_ts" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Last Billing Note" name="last_billing_note" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Last Billing Type" name="last_billing_type" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
-
- <field reporter:label="User Age Demographic" name="demographic_general_division" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User County" name="patron_county" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User City" name="patron_city" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="User ZIP Code" name="patron_zip" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="text"/>
-
- <field reporter:label="Balance Owed" name="balance_owed" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="User Profile Group" name="profile_group" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="text"/>
-
- </fields>
- <links>
- <link field="id" reltype="has_a" key="id" map="" class="mbt"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="billing_location" reltype="has_a" key="id" map="" class="aou"/>
- <link field="usr_home_ou" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="iatc" controller="open-ils.reporter-store" oils_obj:fieldmapper="action::intersystem_transit_copy" oils_persist:readonly="true" reporter:core="true" reporter:label="Inter-system Copy Transit">
- <oils_persist:source_definition>
-
- SELECT t.*
- FROM action.transit_copy t
- JOIN actor.org_unit AS s ON (t.source = s.id)
- JOIN actor.org_unit AS d ON (t.dest = d.id)
- WHERE s.parent_ou <> d.parent_ou
-
- </oils_persist:source_definition>
- <fields oils_persist:primary="id" oils_persist:sequence="action.transit_copy_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Pretransit Copy Status" name="copy_status" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Destination" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Is Persistent? (unused)" name="persistant_transfer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Previous Hop (unused)" name="prev_hop" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Source" name="source" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Transited Copy" name="target_copy" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Hold Transit" name="hold_transit_copy" oils_obj:array_position="12" oils_persist:virtual="true" reporter:datatype="link"/>
- </fields>
- <links>
- <link field="hold_transit_copy" reltype="might_have" key="id" map="" class="ahtc"/>
- <link field="source" reltype="has_a" key="id" map="" class="aou"/>
- <link field="copy_status" reltype="has_a" key="id" map="" class="ccs"/>
- <link field="dest" reltype="has_a" key="id" map="" class="aou"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- </links>
- </class>
-
- <class id="rodcirc" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::overdue_circs" oils_persist:tablename="reporter.overdue_circs" reporter:core="true" reporter:label="Overdue Circulation">
- <fields oils_persist:primary="id" oils_persist:sequence="money.billable_xact_id_seq">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Check In Library" name="checkin_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Check In Staff" name="checkin_staff" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Check In Date/Time" name="checkin_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Circulating Staff" name="circ_staff" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Desk Renewal" name="desk_renewal" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Due Date/Time" name="due_date" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulation Duration" name="duration" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ Duration Rule" name="duration_rule" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Fine Interval" name="fine_interval" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="interval"/>
- <field reporter:label="Circ ID" name="id" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="id" />
- <field reporter:label="Max Fine Amount" name="max_fine" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
- <field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
- <field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Circulating Item" name="target_copy" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Patron" name="usr" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Transaction Finish Date/Time" name="xact_finish" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Check Out Date/Time" name="xact_start" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="timestamp" />
- <field reporter:label="Transaction Billings" name="billings" oils_obj:array_position="27" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Transaction Payments" name="payments" oils_obj:array_position="28" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Base Transaction" name="billable_transaction" oils_obj:array_position="29" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Circulation Type" name="circ_type" oils_obj:array_position="30" oils_persist:virtual="true" reporter:datatype="text"/>
- <field reporter:label="Billing Totals" name="billing_total" oils_obj:array_position="31" oils_persist:virtual="true" reporter:datatype="money"/>
- <field reporter:label="Payment Totals" name="payment_total" oils_obj:array_position="32" oils_persist:virtual="true" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="billable_transaction" reltype="might_have" key="id" map="" class="mbt"/>
- <link field="circ_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="checkin_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="target_copy" reltype="has_a" key="id" map="" class="acp"/>
- <link field="checkin_staff" reltype="has_a" key="id" map="" class="au"/>
- <link field="usr" reltype="has_a" key="id" map="" class="au"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="payments" reltype="has_many" key="xact" map="" class="mp"/>
- <link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
- <link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
- <link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
- <link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
- <link field="circ_type" reltype="might_have" key="id" map="" class="rcirct"/>
- <link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
- <link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
- </links>
- </class>
-
- <class id="rocit" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::classic_item_list" oils_persist:tablename="reporter.classic_item_list" reporter:core="true" reporter:label="Classic Item List">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Title" name="title" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Author" name="author" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Pubdate" name="pubdate" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Copy ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="id"/>
- <field reporter:label="Price" name="price" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
- <field reporter:label="Barcode" name="barcode" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Callnumber Label" name="call_number_label" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Dewy Tens" name="dewey_block_tens" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Dewy Hundreds" name="dewey_block_hundreds" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Use Count" name="use_count" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="int"/>
- <field reporter:label="Circ Modifier" name="circ_modifier" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Shelving Location Name" name="shelving_location" oils_obj:array_position="14" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy Stat Cat 1" name="stat_cat_1" oils_obj:array_position="15" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy Stat Cat 2" name="stat_cat_2" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy Stat Cat 1 Value" name="stat_cat_1_value" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Legacy Stat Cat 2 Value" name="stat_cat_2_value" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Edit Date" name="edit_date" oils_obj:array_position="19" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Create Date" name="create_date" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Owning Lib Name" name="owning_lib_name" oils_obj:array_position="21" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Circ Lib Name" name="circ_lib_name" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Owning Lib" name="owning_lib" oils_obj:array_position="23" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circ Lib" name="circ_lib" oils_obj:array_position="24" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Creator" name="creator" oils_obj:array_position="25" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Age Protection" name="age_protect" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="OPAC Visible" name="opac_visible" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Reference" name="ref" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="Deposit Amount" name="deposit_amount" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Deleted" name="deleted" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="bool"/>
- <field reporter:label="TCN" name="tcn_value" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Status" name="status" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Stop Fines Reason" name="stop_fines" oils_obj:array_position="33" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Due Date" name="due_date" oils_obj:array_position="34" oils_persist:virtual="false" reporter:datatype="timestamp"/>
- <field reporter:label="Patron Barcode" name="patron_barcode" oils_obj:array_position="35" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Patron Name" name="patron_name" oils_obj:array_position="36" oils_persist:virtual="false" reporter:datatype="text"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="creator" reltype="has_a" key="id" map="" class="au"/>
- <link field="age_protect" reltype="has_a" key="id" map="" class="crahp"/>
- <link field="status" reltype="has_a" key="id" map="" class="ccs"/>
- </links>
- </class>
-
- <class id="rmocbbol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_circ_balance_by_owning_lib" oils_persist:tablename="money.open_circ_balance_by_owning_lib" reporter:core="true" reporter:label="Open Circulation Billing by Owning Library">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Total Billed" name="billed" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="id" reltype="has_a" key="id" map="" class="circ"/>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rmobbol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_balance_by_owning_lib" oils_persist:tablename="money.open_balance_by_owning_lib" reporter:core="true" reporter:label="Open Circulation Balance by Owning Library">
- <fields oils_persist:primary="owning_lib">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Types" name="billing_types" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Balance" name="balance" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rmocbbcol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_circ_balance_by_circ_and_owning_lib" oils_persist:tablename="money.open_circ_balance_by_circ_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Billing by Circulating Library and Owning Library">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Total Billed" name="billed" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="id" reltype="has_a" key="id" map="" class="circ"/>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rmobbcol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_balance_by_circ_and_owning_lib" oils_persist:tablename="money.open_balance_by_circ_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Balance by Circulating Library and Owning Library">
- <fields oils_persist:primary="circ_lib">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulating Library" name="circ_lib" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Types" name="billing_types" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Balance" name="balance" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="circ_lib" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rmocbbhol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_circ_balance_by_usr_home_and_owning_lib" oils_persist:tablename="money.open_circ_balance_by_usr_home_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Billing by User Home Library and Owning Library">
- <fields oils_persist:primary="id">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="Circulation ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="link"/>
- <field reporter:label="User Home Library" name="home_ou" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Type" name="billing_type" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Total Billed" name="billed" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="id" reltype="has_a" key="id" map="" class="circ"/>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="home_ou" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
- <class id="rmobbhol" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::money::open_balance_by_usr_home_and_owning_lib" oils_persist:tablename="money.open_balance_by_usr_home_and_owning_lib" reporter:core="true" reporter:label="Open Circulation Balance by User Home Library and Owning Library">
- <fields oils_persist:primary="home_ou">
- <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
- <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
- <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
- <field reporter:label="User Home Library" name="home_ou" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Owning Library" name="owning_lib" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="org_unit"/>
- <field reporter:label="Billing Types" name="billing_types" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
- <field reporter:label="Balance" name="balance" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="money"/>
- </fields>
- <links>
- <link field="owning_lib" reltype="has_a" key="id" map="" class="aou"/>
- <link field="home_ou" reltype="has_a" key="id" map="" class="aou"/>
- </links>
- </class>
-
-
- <!-- ********************************************************************************************************************* -->
-
-</IDL>
+HTTP/1.1 200 OK
+Date: Tue, 13 Jul 2010 20:42:08 GMT
+Server: Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0
+Accept-Ranges: bytes
+Cache-Control: max-age=2592000
+Expires: Thu, 12 Aug 2010 20:42:08 GMT
+Content-Type: text/xml; charset=utf-8
+
Modified: servres/trunk/conifer/libsystems/evergreen/item_status.py
===================================================================
--- servres/trunk/conifer/libsystems/evergreen/item_status.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/libsystems/evergreen/item_status.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -32,4 +32,8 @@
if __name__ == '__main__':
support.initialize('http://www.concat.ca/')
- print url_to_marcxml('http://www.concat.ca/opac/en-US/skin/default/xml/rdetail.xml?r=1082665&t=dylan%20thomas%20ralph&tp=keyword&d=0&hc=14&rt=keyword')
+ #print url_to_marcxml('http://www.concat.ca/opac/en-US/skin/default/xml/rdetail.xml?r=1082665&t=dylan%20thomas%20ralph&tp=keyword&d=0&hc=14&rt=keyword')
+ from xml.etree import ElementTree as ET
+ for t in ET.fromstring(bib_id_to_marcxml('2081089')).getiterator():
+ print t.text
+
Modified: servres/trunk/conifer/libsystems/evergreen/support.py
===================================================================
--- servres/trunk/conifer/libsystems/evergreen/support.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/libsystems/evergreen/support.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -22,6 +22,7 @@
fields_for_class.update(dict(_fields()))
def _fields():
+ return
fm_IDL_location = BASE + 'reports/fm_IDL.xml'
tree = ElementTree.parse(urllib2.urlopen(fm_IDL_location))
NS = '{http://opensrf.org/spec/IDL/base/v1}'
Modified: servres/trunk/conifer/libsystems/z3950/marcxml.py
===================================================================
--- servres/trunk/conifer/libsystems/z3950/marcxml.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/libsystems/z3950/marcxml.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -65,8 +65,9 @@
extract some Dublin Core elements from it. Fixme, I'm sure this
could be way improved."""
out = {}
- meta = [('245a', 'dc:title'), ('100a', 'dc:creator'),
- ('260c', 'dc:date'), ('700a', 'dc:contributor')]
+ meta = [('245a', 'dc:title'),
+ ('260c', 'dc:date'),
+ ('700a', 'dc:contributor')]
for marc, dc in meta:
value = dct.get(marc)
if value:
@@ -79,12 +80,18 @@
title = [v.strip() for k,v in sorted(dct.items()) if k in ('245a', '245b')]
if title:
out['dc:title'] = strip_punct(' '.join(title))
+
+ for k in ('100a', '110a', '700a', '710a'):
+ if dct.get(k):
+ out['dc:creator'] = strip_punct(dct[k])
+ break
+
return out
def strip_punct(s):
# strip whitespace and trailing single punctuation characters
s = s.strip()
- if s and s[-1] in ',.;:/':
+ if s and (s[-1] in ',.;:/'):
s = s[:-1]
return s.strip()
Modified: servres/trunk/conifer/libsystems/z3950/pyz3950_search.py
===================================================================
--- servres/trunk/conifer/libsystems/z3950/pyz3950_search.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/libsystems/z3950/pyz3950_search.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -76,6 +76,8 @@
# TODO: fix this ascii/replace, once our z3950/marc encoding
# issues are sorted out.
rec = unicode(rec, 'ascii', 'replace')
+ # replace multiple 'unknown' characters with a single one.
+ rec = re.sub(u'\ufffd+', u'\ufffd', rec)
assert isinstance(rec, unicode) # this must be true.
parsed.append(ET.fromstring(rec.encode('utf-8')))
Deleted: servres/trunk/conifer/middleware/__init__.py
===================================================================
Deleted: servres/trunk/conifer/middleware/genshi_locals.py
===================================================================
--- servres/trunk/conifer/middleware/genshi_locals.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/middleware/genshi_locals.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,20 +0,0 @@
-# see http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser
-
-# threadlocals middleware
-
-try:
- from threading import local
-except ImportError:
- from django.utils._threading_local import local
-
-_thread_locals = local()
-
-class ThreadLocals(object):
- """Middleware that gets various objects from the
- request object and saves them in thread local storage."""
- def process_request(self, request):
- _thread_locals.request = request
-
-def get_request():
- return getattr(_thread_locals, 'request', None)
-
Copied: servres/trunk/conifer/plumbing/__init__.py (from rev 918, servres/trunk/conifer/middleware/__init__.py)
===================================================================
Added: servres/trunk/conifer/plumbing/genshi_support.py
===================================================================
--- servres/trunk/conifer/plumbing/genshi_support.py (rev 0)
+++ servres/trunk/conifer/plumbing/genshi_support.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,84 @@
+import os
+from django.http import HttpResponse, HttpRequest
+from genshi.template import TemplateLoader
+from genshi.template import NewTextTemplate
+from genshi.builder import tag
+import genshi.output
+from django.conf import settings
+from warnings import warn
+
+try:
+ from threading import local
+except ImportError:
+ from django.utils._threading_local import local
+
+#---------------------------------------------------------------------------
+# Middleware
+
+_THREAD_LOCALS = local()
+
+class GenshiMiddleware(object):
+
+ def process_request(self, request):
+ _THREAD_LOCALS.request = request
+
+def get_request():
+ return getattr(_THREAD_LOCALS, 'request')
+
+
+#---------------------------------------------------------------------------
+# Templating support
+
+class TemplateSet(object):
+
+ def __init__(self, basedir, namespace_module=None):
+ self.basedir = basedir
+ self.dirs = [self.basedir]
+ self.loader = TemplateLoader(self.dirs,
+ auto_reload=True,
+ callback=self.template_loaded)
+ self.namespace_module = namespace_module
+
+ def file(self, name):
+ fn = os.path.join(self.basedir, name)
+ assert os.path.dirname(fn) == self.basedir
+ return file(fn)
+
+ def template_loaded(self, template):
+ pass
+
+ def template(self, tname):
+ return self.loader.load(tname)
+
+ def text_template(self, tname):
+ return self.loader.load(tname, cls=NewTextTemplate)
+
+ #------------------------------------------------------------
+
+ def _inject_django_things_into_namespace(self, request, ns):
+ ns['request'] = request
+ ns['user'] = getattr(request, 'user', None)
+ ns['ROOT'] = request and request.META['SCRIPT_NAME']
+ if not 'errors' in ns:
+ ns['errors'] = None
+ if self.namespace_module is not None:
+ ns.update(self.namespace_module.__dict__)
+
+ def render(self, tname, **kwargs):
+ request = get_request()
+ self._inject_django_things_into_namespace(request, kwargs)
+ return HttpResponse(self.template(tname).generate(**kwargs).render('xhtml'))
+
+ def render_xml(self, tname, **kwargs):
+ request = get_request()
+ self._inject_django_things_into_namespace(request, kwargs)
+ content_type = kwargs.get('content_type', 'application/xml')
+ return HttpResponse(self.template(tname).generate(**kwargs).render('xml'),
+ content_type=content_type)
+
+ def plaintext(self, tname, **kwargs):
+ request = get_request()
+ content_type = kwargs.get('content_type', 'text/plain')
+ self._inject_django_things_into_namespace(request, kwargs)
+ txt = self.text_template(tname).generate(**kwargs).render('text')
+ return txt
Copied: servres/trunk/conifer/plumbing/hooksystem.py (from rev 918, servres/trunk/conifer/integration/_hooksystem.py)
===================================================================
--- servres/trunk/conifer/plumbing/hooksystem.py (rev 0)
+++ servres/trunk/conifer/plumbing/hooksystem.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,21 @@
+# TODO: decide whether or not to use this!
+
+import warnings
+import conifer.syrup.integration as HOOKS
+
+__all__ = ['callhook', 'callhook_required', 'gethook']
+
+def gethook(name, default=None):
+ print dir(HOOKS)
+ print (name, getattr(HOOKS, name))
+ return getattr(HOOKS, name) or default
+
+def callhook_required(name, *args, **kwargs):
+ f = getattr(HOOKS, name)
+ assert f, 'implementation for hook %r required but not found' % name
+ return f(*args, **kwargs)
+
+def callhook(name, *args, **kwargs):
+ f = getattr(HOOKS, name)
+ if f:
+ return f(*args, **kwargs)
Modified: servres/trunk/conifer/settings.py
===================================================================
--- servres/trunk/conifer/settings.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/settings.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -67,7 +67,7 @@
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'conifer.middleware.genshi_locals.ThreadLocals',
+ 'conifer.plumbing.genshi_support.GenshiMiddleware',
'django.middleware.locale.LocaleMiddleware',
'babeldjango.middleware.LocaleMiddleware',
'django.middleware.transaction.TransactionMiddleware',
@@ -120,7 +120,7 @@
if EVERGREEN_AUTHENTICATION:
AUTHENTICATION_BACKENDS.append(
- 'conifer.custom.auth_evergreen.EvergreenAuthBackend')
+ 'conifer.integration.auth_evergreen.django.EvergreenAuthBackend')
#----------
Modified: servres/trunk/conifer/static/main.css
===================================================================
--- servres/trunk/conifer/static/main.css 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/static/main.css 2010-07-15 00:55:37 UTC (rev 919)
@@ -21,8 +21,9 @@
/* remember to define focus styles! */
:focus {
- outline: 0;
+ outline: gray 1px solid;
}
+
body {
line-height: 1;
color: black;
@@ -178,9 +179,11 @@
.itemtree li { padding-left: 0; margin-left: 0; }
-.itemtree li { margin: 12px 8px; }
+.itemtree li { margin: 12px 8px; line-height: 115%; }
.itemtree li .mainline { padding-left: 8px; }
+.itemtree li .author_pub { padding-left: 8px; font-size: 90%; margin: 4px 0 16px 0; color: #111; }
+
.itemtree .metalink { padding-left: 8px; color: gray; }
.itemtree .metalink a {
color: gray;
@@ -281,8 +284,10 @@
font-size: 80%; color: navy;
}
-.menublockopener { margin-left: 0.25em; color: #bbb !important; font-weight: normal !important; }
-.menublock { background-color: #f2e4cc; font-size: 95%; padding: 1px 4px; }
+.menublockopener { margin-left: 0.25em; color: #d44 !important; font-weight: normal !important; }
+.menublock { color: gray; background-color: #844; font-size: 85%; padding: 4px 4px; margin-top: 2px; display: inline-block; }
+.menublock a { color: white; padding: 8px; }
+.menublock a:hover { color: yellow; }
#sitebanner { background-color: #f2e4cc; margin: -12px -12px 12px -12px; padding: 8px; }
#sitesearch { float: right; }
Modified: servres/trunk/conifer/syrup/admin.py
===================================================================
--- servres/trunk/conifer/syrup/admin.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/admin.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,6 +1,3 @@
-# to run standalone: From conifer directory:
-# DJANGO_SETTINGS_MODULE=conifer.settings PYTHONPATH=.. python syrup/admin.py
-
from django.contrib import admin
import django.db.models
from conifer.syrup.models import *
Deleted: servres/trunk/conifer/syrup/fuzzy_match.py
===================================================================
--- servres/trunk/conifer/syrup/fuzzy_match.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/fuzzy_match.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,53 +0,0 @@
-from conifer.syrup import models
-from django.db.models import Q
-
-#http://www.poromenos.org/node/87. Credit to Poromenos. It's under BSD.
-def levenshtein_distance(first, second):
- """Find the Levenshtein distance between two strings."""
- if len(first) > len(second):
- first, second = second, first
- if len(second) == 0:
- return len(first)
- first_length = len(first) + 1
- second_length = len(second) + 1
- distance_matrix = [range(second_length) for x in range(first_length)]
- for i in xrange(1, first_length):
- for j in range(1, second_length):
- deletion = distance_matrix[i-1][j] + 1
- insertion = distance_matrix[i][j-1] + 1
- substitution = distance_matrix[i-1][j-1]
- if first[i-1] != second[j-1]:
- substitution += 1
- distance_matrix[i][j] = min(insertion, deletion, substitution)
-
- return distance_matrix[first_length-1][second_length-1]
-
-def rank_pending_items(dct):
- title = dct.get('dc:title','')
- author = dct.get('dc:creator','')
- publisher = dct.get('dc:publisher','')
- pubdate = dct.get('dc:pubdate','')
-
- # not right... also, prefetch metadata
- all_items = models.Item.objects.select_related('metadata')
- all_pending_items = all_items.filter(Q(item_type='PHYS'),
- ~Q(metadata__name='syrup:barcode'))
- all_pending_items = all_items.filter(Q(item_type='PHYS'),
- ~Q(metadata__name='syrup:barcode',
- metadata__value__in=[p.barcode for p in models.PhysicalObject.live_objects()]))
- results = []
- # not sure I like these weights, but let's play a bit.
- METRICS = (('dc:title', 1), ('dc:creator', 1), ('dc:publisher', 0.5), ('dc:pubdate', 0.25))
- for item in all_pending_items:
- scores = []
- for heading, weight in METRICS:
- try:
- ival = item.metadata_set.get(name=heading).value or ''
- except:
- ival = ''
- dist = levenshtein_distance(dct.get(heading) or '', ival)
- scores.append(dist/weight)
- score = sum(scores)
- results.append((score, item))
- results.sort()
- return results
Modified: servres/trunk/conifer/syrup/integration.py
===================================================================
--- servres/trunk/conifer/syrup/integration.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/integration.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -15,7 +15,6 @@
allowed to create new course-reserve sites. Note that users marked
as 'staff' are always allowed to create new sites.
"""
- pass
@disable
@@ -25,7 +24,6 @@
the departments to which they belong. Each row should be a tuple
in the form: ('Department name', 'course-code', 'Course name').
"""
- pass
@disable
@@ -36,7 +34,6 @@
'start-date', 'end-date'), where the dates are instances of the
datetime.date class.
"""
- pass
@disable
@@ -69,3 +66,37 @@
the item. The ServiceDesk object has an 'external_id' attribute
which should represent the desk in the ILS.
"""
+
+
+ at disable
+def bib_id_to_marcxml(bib_id):
+ """
+ Given a bib_id, return a MARC record in MARCXML format. Return
+ None if the bib_id does not exist.
+ """
+
+
+ at disable
+def get_better_copy_of_marc(marc_string):
+ """
+ This function takes a MARCXML record and returns either the same
+ record, or another instance of the same record from a different
+ source.
+
+ This is a hack. There is currently at least one Z39.50 server that
+ returns a MARCXML record with broken character encoding. This
+ function declares a point at which we can work around that server.
+ """
+
+
+ at disable
+def marcxml_to_url(marc_string):
+ """
+ Given a MARC record, return either a URL (representing the
+ electronic resource) or None.
+
+ Typically this will be the 856$u value; but in Conifer, 856$9 and
+ 856$u form an associative array, where $9 holds the institution
+ codes and $u holds the URLs.
+ """
+
Modified: servres/trunk/conifer/syrup/models.py
===================================================================
--- servres/trunk/conifer/syrup/models.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/models.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -7,9 +7,9 @@
import re
import random
from django.utils import simplejson
-from conifer.middleware import genshi_locals
+from conifer.plumbing.genshi_support import get_request
# campus and library integration
-from conifer.integration._hooksystem import *
+from conifer.plumbing.hooksystem import *
from django.conf import settings
campus = settings.CAMPUS_INTEGRATION
# TODO: fixme, not sure if conifer.custom is a good parent.
@@ -183,13 +183,10 @@
return u'%s: %s (%s, %s)' % (
self.course.code, self.course.name,
self.owner.last_name or self.owner.username,
- self.term)
+ self.term.name)
def list_display(self):
- if self.code:
- return '%s: %s [%s]' % (self.term, self.title, self.code)
- else:
- return '%s: %s' % (self.term, self.title)
+ return '%s [%s, %s]' % (self.course.name, self.course.code, self.term.name)
def items(self):
return self.item_set.all()
@@ -232,7 +229,7 @@
def site_url(self, suffix=''):
# I'm not fond of this being here. I think I'll leave this and
# item_url non-implemented, and monkey-patch them in views.py.
- req = genshi_locals.get_request()
+ req = get_request()
prefix = req.META['SCRIPT_NAME']
return '%s/site/%d/%s' % (prefix, self.id, suffix)
@@ -292,6 +289,12 @@
user.id == self.owner_id \
or bool(self.members().filter(user=user)))
+ def is_open_to(self, user):
+ return self.access == 'ANON' \
+ or (self.access == 'LOGIN' and user.is_authenticated()) \
+ or user.is_staff \
+ or self.is_member(user)
+
#------------------------------------------------------------
# User membership in sites
@@ -499,7 +502,7 @@
def item_url(self, suffix='', force_local_url=False):
# I'm not fond of this being here. I think I'll leave this and
# site_url non-implemented, and monkey-patch them in views.py.
- req = genshi_locals.get_request()
+ req = get_request()
prefix = req.META['SCRIPT_NAME']
if self.item_type == 'ELEC' and suffix == '':
return '%s/site/%d/item/%d/dl/%s' % (
@@ -542,7 +545,7 @@
return hl_title
def author_hl(self, terms):
- hl_author = self.author()
+ hl_author = self.author
for term in terms:
hl_author = highlight(hl_author,term)
Modified: servres/trunk/conifer/syrup/urls.py
===================================================================
--- servres/trunk/conifer/syrup/urls.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/urls.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -52,11 +52,11 @@
(r'^admin/update_depts_courses/$', 'admin_update_depts_courses'),
(r'^admin/update_terms/$', 'admin_update_terms'),
- (r'^phys/$', 'phys_index'),
- (r'^phys/checkout/$', 'phys_checkout'),
- (r'^phys/mark_arrived/$', 'phys_mark_arrived'),
- (r'^phys/mark_arrived/match/$', 'phys_mark_arrived_match'),
- (r'^phys/circlist/$', 'phys_circlist'),
+ # (r'^phys/$', 'phys_index'),
+ # (r'^phys/checkout/$', 'phys_checkout'),
+ # (r'^phys/mark_arrived/$', 'phys_mark_arrived'),
+ # (r'^phys/mark_arrived/match/$', 'phys_mark_arrived_match'),
+ # (r'^phys/circlist/$', 'phys_circlist'),
(r'^site/(?P<site_id>\d+)/reseq$', 'site_reseq'),
(ITEM_PREFIX + r'reseq', 'item_heading_reseq'),
Deleted: servres/trunk/conifer/syrup/user_lookup.py
===================================================================
--- servres/trunk/conifer/syrup/user_lookup.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/user_lookup.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,32 +0,0 @@
-from django.contrib.auth.models import User
-from django.contrib.auth import get_backends
-
-#----------------------------------------------------------------------
-# Initializing an external user account
-
-# TODO: does it make sense to put maybe_initialize_user on the
-# authentication backends, or does it belong somewhere else?
-
-# For usernames that come from external authentication sources (LDAP,
-# Evergreen, etc.) we need a general way to look up a user who may not
-# yet have a Django account. For example, you might want to add user
-# 'xsmith' as the instructor for a course. If 'xsmith' is in LDAP but
-# not yet in Django, it would be nice if a Django record were lazily
-# created for him upon lookup.
-
-# That's what 'maybe_initialize_user' is for: participating backends
-# provide a 'maybe_initialize_user' method which creates a new User
-# record if one doesn't exist. Otherwise, 'maybe_initialize_user' is
-# equivalent to 'User.objects.get(username=username)'.
-
-_backends_that_can_initialize_users = [
- be for be in get_backends() if hasattr(be, 'maybe_initialize_user')]
-
-def maybe_initialize_user(username):
- try:
- return User.objects.get(username=username)
- except User.DoesNotExist:
- for be in _backends_that_can_initialize_users:
- user = be.maybe_initialize_user(username, look_local=False)
- if user:
- return user
Modified: servres/trunk/conifer/syrup/views/__init__.py
===================================================================
--- servres/trunk/conifer/syrup/views/__init__.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/__init__.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -4,3 +4,4 @@
from search import *
from admin import *
from feeds import *
+from auth import *
Modified: servres/trunk/conifer/syrup/views/_common.py
===================================================================
--- servres/trunk/conifer/syrup/views/_common.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/_common.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,129 +1,49 @@
-import warnings
-from conifer.syrup import models
-from datetime import datetime
+#----------------------------------------------------------------------
+# Initialize the Genshi templating system. 'g' is the 'templating
+# system object' used to render Genshi templates. 'genshi_namespace'
+# is a module which acts as a global namespace when expanding a Genshi
+# template.
+
+from conifer.here import HERE
+from conifer.plumbing.genshi_support import TemplateSet
+from . import genshi_namespace
+
+g = TemplateSet(HERE('templates'), genshi_namespace)
+
+#----------------------------------------------------------------------
+# Common imports shared by all view functions.
+
import django.conf
-from django.contrib.auth import authenticate, login, logout
-from django.contrib.auth.decorators import login_required
-from django.contrib.auth.models import User, SiteProfileNotAvailable
-from django.core.paginator import Paginator
-from django.db.models import Q
-from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotFound
-from django.http import HttpResponseForbidden
-from django.shortcuts import get_object_or_404
-from django.utils import simplejson
-from generics import *
-#from gettext import gettext as _ # fixme, is this the right function to import?
-from django.utils.translation import ugettext as _
-import conifer.genshi_support as g
import django.forms
import re
import sys
-from django.forms.models import modelformset_factory
-from conifer.libsystems.z3950.marcxml import (marcxml_to_dictionary,
- marcxml_dictionary_to_dc)
-from conifer.syrup.fuzzy_match import rank_pending_items
-from django.core.urlresolvers import reverse
-from conifer.here import HERE
+import warnings
import pdb
-#-----------------------------------------------------------------------------
-# Z39.50 Support
-#
-# This is experimental at this time, and requires some tricky Python
-# imports as far as I can tell. For that reason, let's keep the Z39.50
-# support optional for now. If you have Ply and PyZ3950, we'll load
-# and use it; if not, no worries, everything else will workk.
+from conifer.syrup import models
+from datetime import datetime
+from django.contrib.auth import authenticate, login, logout
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth.models import User, SiteProfileNotAvailable
+from django.core.paginator import Paginator
+from django.core.urlresolvers import reverse
+from django.db.models import Q
+from django.forms.models import modelformset_factory
+from django.http import (HttpResponse, HttpResponseRedirect,
+ HttpResponseNotFound,
+ HttpResponseForbidden)
+from django.shortcuts import get_object_or_404
+from django.utils import simplejson
+from django.utils.translation import ugettext as _
+from _generics import * # TODO: should not import-star
-try:
- # Graham needs this import hackery to get PyZ3950 working. Presumably
- # Art can 'import profile; import lex', so this hack won't run for
- # him.
- try:
- import profile
- import lex
- import yacc
- except ImportError:
- sys.modules['profile'] = sys # just get something called 'profile';
- # it's not actually used.
- import ply.lex
- import ply.yacc # pyz3950 thinks these are toplevel modules.
- sys.modules['lex'] = ply.lex
- sys.modules['yacc'] = ply.yacc
+from conifer.libsystems.z3950.marcxml import (marcxml_to_dictionary,
+ marcxml_dictionary_to_dc)
- # for Z39.50 support, not sure whether this is the way to go yet but
- # as generic as it gets
- from PyZ3950 import zoom, zmarc
-except:
- warnings.warn('Could not load Z39.50 support.')
#-----------------------------------------------------------------------------
-# poor-man's logging. Not sure we need more yet.
-
-def log(level, msg):
- print >> sys.stderr, '[%s] %s: %s' % (datetime.now(), level.upper(), msg)
-
-#-----------------------------------------------------------------------------
-# Authentication
-
-def auth_handler(request, path):
- default_url = request.META['SCRIPT_NAME'] + '/'
- if path == 'login/':
- if request.method == 'GET':
- next=request.GET.get('next', default_url)
- if request.user.is_authenticated():
- return HttpResponseRedirect(next)
- else:
- return g.render('auth/login.xhtml',
- next=request.GET.get('next'))
- else:
- userid, password = request.POST['userid'], request.POST['password']
- next = request.POST['next']
- user = authenticate(username=userid, password=password)
- def _error_page(msg):
- return g.render('auth/login.xhtml', err=msg, next=next)
- if user is None:
- return _error_page(
- _('Invalid username or password. Please try again.'))
- elif not user.is_active:
- return _error_age(
- _('Sorry, this account has been disabled.'))
- else:
- login(request, user)
- # initialize the profile if it doesn't exist.
- try:
- user.get_profile()
- except models.UserProfile.DoesNotExist:
- profile = models.UserProfile.objects.create(user=user)
- profile.save()
- return HttpResponseRedirect(
- request.POST.get('next', default_url))
- elif path == 'logout':
- logout(request)
- return HttpResponseRedirect(default_url)
- else:
- return HttpResponse('auth_handler: ' + path)
-
-#-----------------------------------------------------------------------------
# Authorization
-# TODO: this _fast_user_membership_query is broken.
-
-def _fast_user_membership_query(user_id, site_id, where=None):
- # I use a raw SQL query here because I want the lookup to be as
- # fast as possible. Caching would help too, but let's try this
- # first. (todo, review later.)
- return True # TODO: fixme!!!!
- query = ('select count(*) from syrup_member '
- 'where user_id=%s and site_id=%s ')
- if where:
- query += (' and ' + where)
- cursor = django.db.connection.cursor()
- cursor.execute(query, [user_id, int(site_id)])
- res = cursor.fetchall()
- cursor.close()
- allowed = bool(res[0][0])
- return allowed
-
def _access_denied(request, message):
if request.user.is_anonymous():
# then take them to login screen....
@@ -139,10 +59,8 @@
# decorator
def instructors_only(handler):
def hdlr(request, site_id, *args, **kwargs):
- allowed = request.user.is_superuser
- if not allowed:
- allowed = _fast_user_membership_query(
- request.user.id, site_id, "role in ('INSTR','ASSIST')")
+ site = get_object_or_404(models.Site, pk=site_id)
+ allowed = site.can_edit(request.user)
if allowed:
return handler(request, site_id, *args, **kwargs)
else:
@@ -154,13 +72,8 @@
def members_only(handler):
def hdlr(request, site_id, *args, **kwargs):
user = request.user
- allowed = user.is_superuser
- if not allowed:
- site = models.Site.objects.get(pk=site_id)
- allowed = site.access=='ANON' or \
- (user.is_authenticated() and site.access=='LOGIN')
- if not allowed:
- allowed = _fast_user_membership_query(user.id, site_id)
+ site = get_object_or_404(models.Site, pk=site_id)
+ allowed = site.is_open_to(request.user)
if allowed:
return handler(request, site_id, *args, **kwargs)
else:
@@ -190,6 +103,7 @@
# that are supposed to be public.
return handler
+
#-----------------------------------------------------------------------------
# Simple Message: just a quick title-and-message web page.
@@ -230,8 +144,8 @@
# have explicit Member-ship.
filters = {
'items': (Q(site__access__in=('LOGIN','ANON')) \
- | Q(site__member__user=user)),
- 'sites': (Q(access__in=('LOGIN','ANON')) | Q(member__user=user)),
+ | Q(site__group__membership__user=user)),
+ 'sites': (Q(access__in=('LOGIN','ANON')) | Q(group__membership__user=user)),
'instructors': Q(), # TODO: do we really need a filter here?
}
return filters
Copied: servres/trunk/conifer/syrup/views/_generics.py (from rev 918, servres/trunk/conifer/syrup/views/generics.py)
===================================================================
--- servres/trunk/conifer/syrup/views/_generics.py (rev 0)
+++ servres/trunk/conifer/syrup/views/_generics.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,55 @@
+from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponseForbidden
+from django.shortcuts import get_object_or_404
+from django.forms import ModelForm, ValidationError
+
+from _common import g # the Genshi templating system
+
+def generic_handler(form, decorator=lambda x: x):
+ def handler(request, obj_id=None, action=None):
+ if obj_id is None and action is None:
+ return generic_index(form)
+ elif action is None:
+ return generic_edit(form, request, obj_id)
+ elif action == 'delete':
+ return generic_delete(form, request, obj_id)
+ return decorator(handler)
+
+
+def generic_index(form):
+ assert hasattr(form, 'Index')
+ return g.render('generic/index.xhtml', form=form)
+
+def generic_edit(form, request, obj_id):
+ if obj_id == '0':
+ instance = None
+ else:
+ instance = get_object_or_404(form.Meta.model, pk=obj_id)
+ if request.method != 'POST':
+ form = form(instance=instance)
+ return g.render('generic/edit.xhtml', **locals())
+ else:
+ form = form(request.POST, instance=instance)
+ if not form.is_valid():
+ return g.render('generic/edit.xhtml', **locals())
+ else:
+ form.save()
+ return HttpResponseRedirect('../')
+
+def generic_delete(form, request, obj_id):
+ instance = get_object_or_404(form.Meta.model, pk=obj_id)
+ if request.method != 'POST':
+ form = form(instance=instance)
+ return g.render('generic/delete.xhtml', **locals())
+ else:
+ instance.delete()
+ return HttpResponseRedirect('../')
+
+
+def strip_and_nonblank(fieldname):
+ def clean(self):
+ v = self.cleaned_data.get(fieldname) or ''
+ if not v.strip():
+ raise ValidationError('Cannot be blank.')
+ return v.strip()
+ return clean
Modified: servres/trunk/conifer/syrup/views/admin.py
===================================================================
--- servres/trunk/conifer/syrup/views/admin.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/admin.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,6 +1,6 @@
from _common import *
from django.utils.translation import ugettext as _
-from conifer.integration._hooksystem import *
+from conifer.plumbing.hooksystem import *
from datetime import date
#-----------------------------------------------------------------------------
Added: servres/trunk/conifer/syrup/views/auth.py
===================================================================
--- servres/trunk/conifer/syrup/views/auth.py (rev 0)
+++ servres/trunk/conifer/syrup/views/auth.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,42 @@
+from _common import *
+
+#-----------------------------------------------------------------------------
+# Authentication
+
+def auth_handler(request, path):
+ default_url = request.META['SCRIPT_NAME'] + '/'
+ if path == 'login/':
+ if request.method == 'GET':
+ next=request.GET.get('next', default_url)
+ if request.user.is_authenticated():
+ return HttpResponseRedirect(next)
+ else:
+ return g.render('auth/login.xhtml',
+ next=request.GET.get('next'))
+ else:
+ userid, password = request.POST['userid'], request.POST['password']
+ next = request.POST['next']
+ user = authenticate(username=userid, password=password)
+ def _error_page(msg):
+ return g.render('auth/login.xhtml', err=msg, next=next)
+ if user is None:
+ return _error_page(
+ _('Invalid username or password. Please try again.'))
+ elif not user.is_active:
+ return _error_age(
+ _('Sorry, this account has been disabled.'))
+ else:
+ login(request, user)
+ # initialize the profile if it doesn't exist.
+ try:
+ user.get_profile()
+ except models.UserProfile.DoesNotExist:
+ profile = models.UserProfile.objects.create(user=user)
+ profile.save()
+ return HttpResponseRedirect(
+ request.POST.get('next', default_url))
+ elif path == 'logout':
+ logout(request)
+ return HttpResponseRedirect(default_url)
+ else:
+ return HttpResponse('auth_handler: ' + path)
Modified: servres/trunk/conifer/syrup/views/feeds.py
===================================================================
--- servres/trunk/conifer/syrup/views/feeds.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/feeds.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -15,7 +15,7 @@
def render_title(item):
return item.title
if feed_type == 'top-level':
- items = items.filter(parent_heading=None).order_by('-sort_order')
+ items = items.filter(parent_heading=None).order_by('title')
elif feed_type == 'recent-changes':
items = items.order_by('-last_modified')
elif feed_type == 'tree':
Deleted: servres/trunk/conifer/syrup/views/generics.py
===================================================================
--- servres/trunk/conifer/syrup/views/generics.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/generics.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,55 +0,0 @@
-import conifer.genshi_support as g
-from django.http import HttpResponse, HttpResponseRedirect
-from django.http import HttpResponseForbidden
-from django.shortcuts import get_object_or_404
-from django.forms import ModelForm, ValidationError
-
-
-def generic_handler(form, decorator=lambda x: x):
- def handler(request, obj_id=None, action=None):
- if obj_id is None and action is None:
- return generic_index(form)
- elif action is None:
- return generic_edit(form, request, obj_id)
- elif action == 'delete':
- return generic_delete(form, request, obj_id)
- return decorator(handler)
-
-
-def generic_index(form):
- assert hasattr(form, 'Index')
- return g.render('generic/index.xhtml', form=form)
-
-def generic_edit(form, request, obj_id):
- if obj_id == '0':
- instance = None
- else:
- instance = get_object_or_404(form.Meta.model, pk=obj_id)
- if request.method != 'POST':
- form = form(instance=instance)
- return g.render('generic/edit.xhtml', **locals())
- else:
- form = form(request.POST, instance=instance)
- if not form.is_valid():
- return g.render('generic/edit.xhtml', **locals())
- else:
- form.save()
- return HttpResponseRedirect('../')
-
-def generic_delete(form, request, obj_id):
- instance = get_object_or_404(form.Meta.model, pk=obj_id)
- if request.method != 'POST':
- form = form(instance=instance)
- return g.render('generic/delete.xhtml', **locals())
- else:
- instance.delete()
- return HttpResponseRedirect('../')
-
-
-def strip_and_nonblank(fieldname):
- def clean(self):
- v = self.cleaned_data.get(fieldname) or ''
- if not v.strip():
- raise ValidationError('Cannot be blank.')
- return v.strip()
- return clean
Copied: servres/trunk/conifer/syrup/views/genshi_namespace.py (from rev 918, servres/trunk/conifer/genshi_namespace.py)
===================================================================
--- servres/trunk/conifer/syrup/views/genshi_namespace.py (rev 0)
+++ servres/trunk/conifer/syrup/views/genshi_namespace.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -0,0 +1,38 @@
+# genshi_namespace
+
+# Toplevel definitions in this module will be available in when
+# rendering a Genshi template.
+
+from conifer.integration._hooksystem import gethook, callhook
+import itertools
+from itertools import cycle
+from conifer.syrup import models
+import django.forms
+from django.utils import translation
+
+_ = translation.ugettext
+
+# this probably ought to be a method on User, or another model class.
+def instructor_url(instructor, suffix=''):
+ return '/instructor/%d/%s' % (instructor.id, suffix)
+
+# added to make department browse
+def department_url(department, suffix=''):
+ return '/department/%d/%s' % (department.id, suffix)
+
+
+def call_or_value(obj, dflt=None):
+ # This is used by the generics templates.
+ if callable(obj):
+ return obj() or dflt
+ else:
+ return obj or dflt
+
+
+def instructs(user, site):
+ try:
+ mbr = models.Member.objects.get(user=user, site=site)
+ return mbr.role in ('INSTR', 'PROXY')
+ except:
+ return False
+
Modified: servres/trunk/conifer/syrup/views/items.py
===================================================================
--- servres/trunk/conifer/syrup/views/items.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/items.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,7 +1,8 @@
from _common import *
from django.utils.translation import ugettext as _
-from xml.etree import ElementTree as E
+from xml.etree import ElementTree as ET
from conifer.syrup import integration
+from conifer.plumbing.hooksystem import *
@members_only
@@ -173,9 +174,13 @@
if not site.can_edit(request.user):
return _access_denied(_('You are not an editor.'))
- pickitem = marcxml_to_dictionary(raw_pickitem)
+ if gethook('get_better_copy_of_marc'):
+ pickitem_xml = callhook('get_better_copy_of_marc', raw_pickitem)
+ raw_pickitem = unicode(ET.tostring(pickitem_xml))
+ pickitem = marcxml_to_dictionary(pickitem_xml)
+ else:
+ pickitem = marcxml_to_dictionary(raw_pickitem)
dublin = marcxml_dictionary_to_dc(pickitem)
-
assert dublin
#TODO: this data munging does not belong here.
@@ -183,8 +188,9 @@
# one last thing. If this picked item has an 856$9 field, then
# it's an electronic resource, not a physical item. In that
# case, we add it as a URL, not a PHYS.
- if '8569' in pickitem:
- dct = dict(item_type='URL', url=pickitem.get('856u'))
+ url = callhook('marcxml_to_url', raw_pickitem)
+ if url:
+ dct = dict(item_type='URL', url=url)
else:
dct = dict(item_type='PHYS')
Modified: servres/trunk/conifer/syrup/views/search.py
===================================================================
--- servres/trunk/conifer/syrup/views/search.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/search.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,5 +1,5 @@
from _common import *
-from django.utils.translation import ugettext as _
+from PyZ3950 import zoom, zmarc
def normalize_query(query_string,
findterms=re.compile(r'"([^"]+)"|(\S+)').findall,
@@ -38,7 +38,6 @@
#-----------------------------------------------------------------------------
# Search and search support
-
def search(request, in_site=None, with_instructor=None):
''' Need to work on this, the basic idea is
- put an entry point for instructor and site listings
@@ -88,7 +87,7 @@
else:
if not with_instructor:
# Textual (non-numeric) queries.
- item_query = get_query(query_string, ['title', 'metadata__value'])
+ item_query = get_query(query_string, ['title', 'author', 'publisher', 'marcxml'])
#need to think about sort order here, probably better by author (will make sortable at display level)
results_list = models.Item.objects.filter(item_query)
@@ -103,7 +102,7 @@
else:
results_list = results_list.filter(user_filter_for_items)
- results_list = results_list.distinct().order_by('title')
+ results_list = results_list.distinct() #.order_by('title')
results_len = len(results_list)
paginator = Paginator(results_list, count)
@@ -112,10 +111,10 @@
# then no site search is necessary.
site_list = []; site_len = 0
else:
- site_query = get_query(query_string, ['title', 'department__name'])
+ site_query = get_query(query_string, ['course__name', 'course__department__name'])
# apply the search-filter and the user-filter
site_results = models.Site.objects.filter(site_query).filter(user_filter_for_sites)
- site_list = site_results.order_by('title')
+ site_list = site_results.order_by('course__name')
site_len = len(site_results)
#instructor search
@@ -123,7 +122,7 @@
instructor_list = []; instr_len = 0
else:
instr_query = get_query(query_string, ['user__last_name'])
- instructor_results = models.Member.objects.filter(instr_query).filter(role='INSTR')
+ instructor_results = models.Membership.objects.filter(instr_query).filter(role='INSTR')
if in_site:
instructor_results = instructor_results.filter(site=in_site)
instructor_list = instructor_results.order_by('user__last_name')[0:5]
@@ -137,7 +136,7 @@
paginator = Paginator( results_list,
count)
site_results = models.Site.objects.filter(active=True)
- site_list = site_results.order_by('title')[0:5]
+ site_list = site_results.order_by('course__name')[0:5]
site_len = len(site_results)
instructor_results = models.Member.objects.filter(role='INSTR')
instructor_list = instructor_results.order_by('user__last_name')[0:5]
@@ -180,7 +179,7 @@
tquery = request.POST['ztitle']
search_target= models.Z3950Target.objects.get(name=target)
conn = zoom.Connection (search_target.host, search_target.port)
- conn.databaseName = search_target.db
+ conn.databaseName = search_target.database
conn.preferredRecordSyntax = search_target.syntax
query = zoom.Query ('CCL', '%s="%s"' % ('ti',tquery))
res = conn.search (query)
@@ -201,7 +200,7 @@
raw = r.data
# Convert to MARC
- marcdata = zmarc.MARC(raw)
+ marcdata = zmarc.MARC(raw, strict=False)
#print marcdata
# Convert to MARCXML
Modified: servres/trunk/conifer/syrup/views/sites.py
===================================================================
--- servres/trunk/conifer/syrup/views/sites.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/syrup/views/sites.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -220,8 +220,6 @@
# invitation failures? They should be captured somehow, I
# think. Should we temporarily disable accounts after
# multiple failures?
- log('WARN', 'Invitation failure, user %r gave code %r' % \
- (request.user.username, code))
error = _('The code you provided is not valid.')
return g.render('site_invitation.xhtml', **locals())
Modified: servres/trunk/conifer/templates/auth/login.xhtml
===================================================================
--- servres/trunk/conifer/templates/auth/login.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/auth/login.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,5 +1,5 @@
<?python
-title = _('Syrup E-Reserves: Please log in')
+title = _('Please log in')
?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -7,8 +7,8 @@
<xi:include href="../master.xhtml"/>
<head>
<title>${title}</title>
- <script>
- $(function() {$('#userid').focus();});
+ <script type="text/javascript">
+ $(function() { $('#userid').focus(); });
</script>
</head>
<body>
@@ -23,7 +23,7 @@
</tr>
<tr>
<th>Password:</th>
- <td><input type="password" name="password" style="width: 200px;"/></td>
+ <td><input type="password" id="pwd" name="password" style="width: 200px;"/></td>
</tr>
<tr><th style="background-color: white; border: none;"/>
<td><input type="submit" value="Log in" style="width: 200px;"/></td></tr>
Modified: servres/trunk/conifer/templates/browse_index.xhtml
===================================================================
--- servres/trunk/conifer/templates/browse_index.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/browse_index.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -29,6 +29,7 @@
<div style="background-color: #dcc; margin: 16px; padding: 8px;">
<h2>Choose from one of the options below:</h2>
+ (currently broken)
<div class="itemadd">
<ul>
<li><a href="courses">Browse by Course Name</a></li>
Modified: servres/trunk/conifer/templates/components/site.xhtml
===================================================================
--- servres/trunk/conifer/templates/components/site.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/components/site.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -55,9 +55,12 @@
<!-- !I'm really sorry, this is ugly, but I want
non-breaking spaces here, so that on long-named items,
the links will stay togeter. A better way? -->
- <span py:if="item.needs_meta_link()"><a href="${item.item_url('meta')}">about</a> </span><span py:if="edit">• <a href="${item.item_url('edit/')}">edit</a></span><span py:if="edit"> • <a href="${item.item_url('relocate/')}">relocate</a></span>
+ <span py:if="item.needs_meta_link()"><a href="${item.item_url('meta')}">about this item</a> </span><span py:if="edit"><a href="${item.item_url('edit/')}">edit</a></span><span py:if="edit"> <a href="${item.item_url('relocate/')}">relocate</a> <a href="${item.item_url('delete/')}">delete</a></span>
</span>
</div>
+ <div class="author_pub" py:if="item.author or item.publisher">
+ ${item.author}. ${item.publisher}.
+ </div>
<!-- !to show a full tree, uncomment the following: -->
${show_tree(subs, edit)}
</li>
Modified: servres/trunk/conifer/templates/edit_site.xhtml
===================================================================
--- servres/trunk/conifer/templates/edit_site.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/edit_site.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,6 +1,6 @@
<?python
if instance.id:
- title = _('Edit site details')
+ title = _('Configure this site')
else:
title = _('Create a new site')
?>
Modified: servres/trunk/conifer/templates/feeds/site_atom.xml
===================================================================
--- servres/trunk/conifer/templates/feeds/site_atom.xml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/feeds/site_atom.xml 2010-07-15 00:55:37 UTC (rev 919)
@@ -2,7 +2,7 @@
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:py="http://genshi.edgewall.org/">
- <title>Reserves (${feed_type}) for ${site.list_display()}</title>
+ <title>Reserves (${feed_type}) for ${site}</title>
<link href="${root}${site.site_url()}"
rel="alternate"/>
<link href="${root}${site.site_url('feeds/' + feed_type)}"
Modified: servres/trunk/conifer/templates/item/item_add_cat_search.xhtml
===================================================================
--- servres/trunk/conifer/templates/item/item_add_cat_search.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/item/item_add_cat_search.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -63,7 +63,7 @@
${dc.get('dc:title', '???')}
<a href="javascript:$('#full_${resultnum}').toggle(); void(0);">details</a>
<p py:if="dct.get('8569')" style="margin: 8px 0; font-size: 90%; color: darkred;">
- Electronic resource. <a href="${dct.get('856u')}">view</a>
+ Electronic resource. <a href="${callhook('marcxml_to_url', res)}">view</a>
</p>
</td>
<td py:for="k in dc_keys[1:]">${dc.get(k) or '—'}</td>
Modified: servres/trunk/conifer/templates/master.xhtml
===================================================================
--- servres/trunk/conifer/templates/master.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/master.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -21,9 +21,6 @@
-->
<script type="text/javascript" src="${ROOT}/static/jquery/js/jquery.js"/>
<script type="text/javascript" src="${ROOT}/static/common.js"/>
- <!--
- <script type="text/javascript" src="${ROOT}/static/jquery/js/jquery-1.3.2.min.js"/>
- -->
<script type="text/javascript" src="${ROOT}/static/jquery/js/jquery-ui-1.7.1.custom.min.js"/>
<script type="text/javascript" src="${ROOT}/static/jquery/js/jquery.tablesorter.min.js"/>
${select('*[local-name()!="title"]')}
Modified: servres/trunk/conifer/templates/search_results.xhtml
===================================================================
--- servres/trunk/conifer/templates/search_results.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/search_results.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,7 +1,7 @@
<?python
title = _('Search Results')
instructors = instructor_list
-courses = course_list
+sites = site_list
?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -24,48 +24,48 @@
<!-- not sure if this is the best way to do this -->
<!--
- probably need a simple css option to hide instructors and course info
+ probably need a simple css option to hide instructors and site info
-->
- <table py:if="instructors or courses" width="100%">
- <tr>
+ <table py:if="instructors or sites" width="100%">
+ <tr>
<!-- instructors -->
<td py:if="instructors" valign="top" class="topbox">
- <table class="topheading">
- <tr>
- <!--
- <th>Last Name</th><th>First Name</th>
- -->
- <th>Instructors</th>
- </tr>
- <tr py:for="instructor in instructors">
- <td> ${Markup(instructor.instr_name_hl(norm_query))},
- ${instructor.user.first_name}</td>
- </tr>
- <tr py:if="instr_len > count">
- <!-- will tap into open list here -->
- <td>(${instr_len - count} more...)</td>
- </tr>
- </table>
+ <table class="topheading">
+ <tr>
+ <!--
+ <th>Last Name</th><th>First Name</th>
+ -->
+ <th>Instructors</th>
+ </tr>
+ <tr py:for="instructor in instructors">
+ <td> ${Markup(instructor.instr_name_hl(norm_query))},
+ ${instructor.user.first_name}</td>
+ </tr>
+ <tr py:if="instr_len > count">
+ <!-- will tap into open list here -->
+ <td>(${instr_len - count} more...)</td>
+ </tr>
+ </table>
</td>
-
- <!-- courses -->
- <td py:if="courses" valign="top" class="topbox">
- <table class="topheading">
- <tr>
- <th align="left">Course</th>
- </tr>
- <tr py:for="course in courses">
- <!-- will highlight this, probably pull in dept info -->
- <td><a href="../course/${course.id}/">${course.title}</a></td>
- </tr>
- <tr py:if="course_len > count">
- <td></td>
- <!-- will tap into open list here -->
- <td>(${course_len - count} more...)</td>
- </tr>
- </table>
+
+ <!-- sites -->
+ <td py:if="sites" valign="top" class="topbox">
+ <table class="topheading">
+ <tr>
+ <th align="left">Site</th>
+ </tr>
+ <tr py:for="site in sites">
+ <!-- will highlight this, probably pull in dept info -->
+ <td><a href="../site/${site.id}/">${site}</a></td>
+ </tr>
+ <tr py:if="site_len > count">
+ <td></td>
+ <!-- will tap into open list here -->
+ <td>(${site_len - count} more...)</td>
+ </tr>
+ </table>
</td>
- </tr>
+ </tr>
</table>
<tr py:if="results_len > 0" py:def="pageheader()">
@@ -75,7 +75,7 @@
<span py:def="pagerow(item)">
<td>${Markup(item.author_hl(norm_query))}</td>
<td><a href="${item.item_url('meta')}">${Markup(item.title_hl(norm_query))}</a></td>
- <td><a href="${item.site.site_url()}">${item.site.title}</a></td>
+ <td><a href="${item.site.site_url()}">${item.site}</a></td>
<td><span py:if="item.item_type=='PHYS'">${item.smallint()} • ${item.barcode()}</span></td>
</span>
${pagetable(paginator, count, pagerow, pageheader, query=query_string)}
Modified: servres/trunk/conifer/templates/site_detail.xhtml
===================================================================
--- servres/trunk/conifer/templates/site_detail.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/site_detail.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -15,21 +15,20 @@
</head>
<body>
${site_banner(site)}
- <p py:if="not item_tree">
- There are no items associated with this site yet.
- </p>
<div id="sidepanel">
<div py:if="is_editor" id="edit_site" class="little_action_panel">
- <a href="${site.site_url()}edit/">Edit site details</a>
+ <a href="${site.site_url()}edit/">Configure site</a>
</div>
<div py:if="is_joinable">
<a href="${site.site_url()}join/">Join this site</a>
</div>
- <div id="showtree_panel" class="little_action_panel">
- <a href="javascript:doToggleItemTree();">Show/hide tree</a>
+ <div py:if="is_editor" id="feeds" class="little_action_panel">
+ <a href="${site.site_url()}feeds/">Feeds</a>
</div>
- <div py:if="is_editor">${item_resequence_panel()}</div>
</div>
+ <p py:if="not item_tree">
+ There are no items associated with this site yet.
+ </p>
<div id="treepanel">
${show_tree(item_tree, edit=is_editor)}
</div>
Modified: servres/trunk/conifer/templates/tabbar.xhtml
===================================================================
--- servres/trunk/conifer/templates/tabbar.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/tabbar.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -7,13 +7,12 @@
use one for now
-->
<ul id="tabbar">
- <!-- <li><a href="${ROOT}/">Home</a></li> -->
+ <!-- !<li><a href="${ROOT}/">Home</a></li> -->
<li><a href="${ROOT}/browse/">Browse</a></li>
<li class="active"><a href="${ROOT}/site/">My Reserves</a></li>
<div py:strip="True"
py:if="request.user.is_staff">
<li><a href="${ROOT}/admin/">Admin Options</a></li>
- <li><a href="${ROOT}/phys/">Physical Items</a></li>
</div>
</ul>
</html>
Modified: servres/trunk/conifer/templates/tabbar_anonymous.xhtml
===================================================================
--- servres/trunk/conifer/templates/tabbar_anonymous.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/tabbar_anonymous.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -7,7 +7,7 @@
use one for now
-->
<ul id="tabbar">
- <li><a href="${ROOT}/">Home</a></li>
+ <!-- !<li><a href="${ROOT}/">Home</a></li> -->
<li><a href="${ROOT}/browse/">Browse</a></li>
</ul>
</html>
Modified: servres/trunk/conifer/templates/zsearch.xhtml
===================================================================
--- servres/trunk/conifer/templates/zsearch.xhtml 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/templates/zsearch.xhtml 2010-07-15 00:55:37 UTC (rev 919)
@@ -12,8 +12,8 @@
<body>
<h1>${title}</h1>
<form py:if="targets" action="." method="POST">
- <select name="target" py:for="target in targets">
- <option>${target.name}</option>
+ <select name="target">
+ <option py:for="target in targets">${target.name}</option>
</select>
Title: <input id="ztitle" name="ztitle" maxlength="100" size="100" type="text"/>
<p><input type="submit" value="Search target"/></p>
Modified: servres/trunk/conifer/urls.py
===================================================================
--- servres/trunk/conifer/urls.py 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/conifer/urls.py 2010-07-15 00:55:37 UTC (rev 919)
@@ -3,8 +3,8 @@
import django
import os
-# I know it's not recommended, but this lets us mount django-admin's
-# media through Django, through mod_python.
+# I know it's not recommended, but this lets us serve django-admin's
+# media through Django.
ADMIN_MEDIA_ROOT = os.path.join(os.path.dirname(django.__file__), 'contrib/admin/media/')
Deleted: servres/trunk/rfc_sql/reserves.sql
===================================================================
--- servres/trunk/rfc_sql/reserves.sql 2010-07-15 00:55:26 UTC (rev 918)
+++ servres/trunk/rfc_sql/reserves.sql 2010-07-15 00:55:37 UTC (rev 919)
@@ -1,151 +0,0 @@
-
-
-DROP SCHEMA reserves CASCADE;
-
-BEGIN;
-
-CREATE SCHEMA reserves;
-
-
-CREATE TABLE reserves.course (
- id SERIAL PRIMARY KEY,
- name TEXT NOT NULL,
- code TEXT NOT NULL,
- term INTEGER REFERENCES config.reserves_term (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- location INTEGER REFERENCES asset.copy_location (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- default_loan INTEGER REFERENCES config.circ_modifer (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- owner INTEGER NOT NULL REFERENCES actor.usr (id) DEFERABLE INITIALLY DEFERRED,
- note TEXT DEFAULT 'na',
- archive BOOLEAN NOT NULL DEFAULT FALSE
-);
-
-CREATE INDEX reserves_course_name_idx ON reserves.course (name);
-CREATE INDEX reserves_course_code_idx ON reserves.course (code);
-CREATE INDEX reserves_course_owner_idx ON reserves.course (owner);
-CREATE INDEX reserves_course_owner_name_idx ON reserves.course (owner_name);
-CREATE INDEX reserves_course_term_idx ON reserves.course (term);
-CREATE INDEX reserves_course_archive_idx ON reserves.course (archive);
-
-
-CREATE TABLE reserves.course_container (
- id SERIAL PRIMARY KEY,
- name TEXT NOT NULL,
- parent INTEGER REFERENCES reserves.course_container (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- course_id INTEGER REFERENCES reserves.course (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- item_id INTEGER REFERENCES reserves.item (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- note TEXT DEFAULT 'na'
-);
-
-
-CREATE TABLE reserves.item (
--- almost none of the fields in this table check back against evergreen because of
--- the necessity of accommodating none cataloged resources (ie a website)
--- one way around this might be to create a stub cataloging record for everything,
--- including websites
-
- id SERIAL PRIMARY KEY,
- cat_id INTEGER NOT NULL DEFAULT 0,
- title TEXT NOT NULL,
- author TEXT NOT NULL,
- call_number TEXT NOT NULL DEFAULT 'na',
- url TEXT NOT NULL DEFAULT 'na',
- original_circ_modifier INTEGER REFERENCES config.circ_modifer (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- reserves_circ_modifier INTEGER REFERENCES config.circ_modifer (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- original_location INTEGER REFERENCES asset.copy_location (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- reserves_location INTEGER REFERENCES asset.copy_location (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- copyright_notice TEXT NOT NULL DEFAULT 'na',
- copyright_fee NUMERIC(6,2) DEFAULT 000000.00,
- media_type INTEGER REFERENCES config.reserves_media_types (id) DEFERABLE INITIALLY DEFERRED,
- note TEXT DEFAULT 'na',
- archive BOOLEAN NOT NULL DEFAULT FALSE
-);
-CREATE INDEX reserves_item_title ON reserves.item (title);
-CREATE INDEX reserves_item_author ON reserves.item (author);
-CREATE INDEX reserves_item_archive ON reserves.item (archive);
-
-
-CREATE TABLE reserves.course_members_map (
- id SERIAL PRIMARY KEY,
- course_id INTEGER REFERENCES reserves.course (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- member_id INTEGER REFERENCES actor.usr (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- member_access INTEGER REFERENCES permission.grp_tree (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- receive_email BOOLEAN DEFAULT TRUE
-);
-
-
-CREATE TABLE reserves.event_log (
-/*
-It was originally intended for this table to be populated via triggers
-A better way is the action_trigger system built into evergreen as it
-allows administrators to add events for logging at run time
-*/
- id SERIAL PRIMARY KEY,
- entity_id INTEGER REFERENCES reserves.item (id) DEFERABLE INITIALLY DEFERRED,
- entity_type INTEGER REFERENCES config.reserves_log_types (id) DEFERABLE INITIALLY DEFERRED,
- action INTEGER REFERENCES config.reserves_actions (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- time_stamp TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
-);
-CREATE INDEX reserves_stat_log_action_idx ON reserves.stat_log (action);
-CREATE INDEX reserves_stat_log_time_stamp_idx ON reserves.stat_log (time_stamp);
-
-
-CREATE TABLE config.reserves (
- id SERIAL PRIMARY KEY,
- ou INTEGER REFERENCES actor.ou (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- default_transit_status INTEGER REFERENCES config.copy_status (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- default_copyright TEXT NOT NULL DEFAULT 'na',
- default_copyright_fee NUMERIC(6,2) DEFAULT 000000.00,
- default_original_circ_modifier INTEGER REFERENCES config.circ_modifer (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- default_original_location INTEGER REFERENCES asset.copy_location (id) DEFERABLE INITIALLY DEFERRED ON DELETE SET NULL,
- reserves_email TEXT NOT NULL DEFAULT 'na'
-);
-
-
-/*
-Mostly likely:
-config.reserves_terms,
-config.reserves_actions
-config.reserves_log_type
-
-will be depricated. They won't be necessary with the action_trigger logic
-
-*/
-
-CREATE TABLE config.reserves_terms (
- id SERIAL PRIMARY KEY,
- ou INTEGER REFERENCES actor.ou (id) DEFERABLE INITIALLY DEFERRED,
- academic_year DATE NOT NULL,
- term TEXT NOT NULL
-);
-
-
-CREATE TABLE config.reserves_actions (
---trigger event logic could replace this table
-
- id SERIAL PRIMARY KEY,
- action TEXT NOT NULL
-);
-
-CREATE TABLE config.reserves_log_types (
- id SERIAL PRIMARY KEY,
- type TEXT NOT NULL
-);
-
-INSERT INTO config.reserves_log_types (type) VALUES ('item');
-INSERT INTO config.reserves_log_types (type) VALUES ('course');
-INSERT INTO config.reserves_log_types (type) VALUES ('container');
-
-
-CREATE TABLE config.reserves_media_types (
- id SERIAL PRIMARY KEY,
- type TEXT NOT NULL
-);
-
-INSERT INTO config.reserves_media_types (type) VALUES ('Library book');
-INSERT INTO config.reserves_media_types (type) VALUES ('Professor copy');
-INSERT INTO config.reserves_media_types (type) VALUES ('Library online resource');
-INSERT INTO config.reserves_media_types (type) VALUES ('3rd party online resource');
-
-COMMIT;
-
-
More information about the open-ils-commits
mailing list