added a pile of new models from the config. schema
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 11 Apr 2007 16:49:35 +0000 (16:49 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 11 Apr 2007 16:49:35 +0000 (16:49 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@7141 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/admin/ils_admin/setup/ils_data/models.py

index 3b9b63e..1206faa 100644 (file)
@@ -2,18 +2,22 @@ from django.db import models
 from django.db.models import signals
 from django.dispatch import dispatcher
 
-# ?i18n?
-INTERVAL_HELP_TEXT = 'examples: "1 hour", "14 days", "3 months", "DD:HH:MM:SS.ms"'
+INTERVAL_HELP_TEXT = _('examples: "1 hour", "14 days", "3 months", "DD:HH:MM:SS.ms"')
+CHAR_MAXLEN=200 # just provide a sane default
 
 
 #PG_SCHEMAS = "actor, permission, public, config"
 
 
 
+""" --------------------------------------------------------------
+    Permission tables
+    -------------------------------------------------------------- """
+
 class GrpTree(models.Model):
     name = models.CharField(maxlength=100)
     parent_id = models.ForeignKey('self', null=True, related_name='children', db_column='parent')
-    description = models.CharField(blank=True, maxlength=200)
+    description = models.CharField(blank=True, maxlength=CHAR_MAXLEN)
     perm_interval = models.CharField(blank=True, maxlength=100, help_text=INTERVAL_HELP_TEXT)
     application_perm = models.CharField(blank=True, maxlength=100)
     usergroup = models.BooleanField()
@@ -24,60 +28,27 @@ class GrpTree(models.Model):
     class Meta:
         db_table = 'grp_tree'
         ordering = ['name']
-        verbose_name = 'User Group'
-    def __str__(self):
-        return self.name
-
-class OrgUnitType(models.Model):
-    name = models.CharField(maxlength=100)
-    opac_label = models.CharField(maxlength=100)
-    depth = models.IntegerField()
-    parent_id = models.ForeignKey('self', null=True, related_name='children', db_column='parent')
-    can_have_vols = models.BooleanField()
-    can_have_users = models.BooleanField()
-    class Meta:
-        db_table = 'org_unit_type'
-        verbose_name = 'Library Type'
-    class Admin:
-        list_display = ('name', 'depth')
-        list_filter = ['parent_id']
-        ordering = ['depth']
+        verbose_name = _('User Group')
     def __str__(self):
         return self.name
 
-class OrgUnitSetting(models.Model):
-    org_unit_id = models.ForeignKey('OrgUnit', db_column='org_unit')
-    name = models.CharField(maxlength=200)
-    value = models.CharField(maxlength=200)
-    class Admin:
-        list_display = ('org_unit_id', 'name', 'value')
-        search_fields = ['name', 'value']
-        list_filter = ['name', 'org_unit_id']
-    class Meta:
-        db_table = 'org_unit_setting'
-        ordering = ['org_unit_id', 'name']
-        verbose_name = 'Library Setting'
-    def __str__(self):
-        return "%s:%s=%s" % (self.org_unit_id.shortname, self.name, self.value)
-
-
 class PermList(models.Model):
     code = models.CharField(maxlength=100)
-    description = models.CharField(blank=True, maxlength=200)
+    description = models.CharField(blank=True, maxlength=CHAR_MAXLEN)
     class Admin:
         list_display = ('code','description')
         search_fields = ['code']
     class Meta:
         db_table = 'perm_list'
         ordering = ['code']
-        verbose_name = 'Permission'
+        verbose_name = _('Permission')
     def __str__(self):
         return self.code
 
 class GrpPermMap(models.Model):
     grp_id = models.ForeignKey(GrpTree, db_column='grp')
     perm_id = models.ForeignKey(PermList, db_column='perm')
-    depth_id = models.ForeignKey(OrgUnitType, to_field='depth', db_column='depth')
+    depth_id = models.ForeignKey('OrgUnitType', to_field='depth', db_column='depth')
     grantable = models.BooleanField()
     class Admin:
         list_filter = ['grp_id']
@@ -85,7 +56,7 @@ class GrpPermMap(models.Model):
     class Meta:
         db_table = 'grp_perm_map'
         ordering = ['perm_id', 'grp_id']
-        verbose_name = 'Permission Setting'
+        verbose_name = _('Permission Setting')
     def __str__(self):
         return str(self.grp_id)+' -> '+str(self.perm_id)
 
@@ -98,7 +69,7 @@ class GrpPermMap(models.Model):
 class User(models.Model):
    card_id = models.ForeignKey('Card', db_column='card')
    profile_id = models.ForeignKey(GrpTree, db_column='profile')
-   usrname = models.CharField(blank=False, null=False, maxlength=200)
+   usrname = models.CharField(blank=False, null=False, maxlength=CHAR_MAXLEN)
    def __str__(self):
       return "%s (%s)" % ( str(self.card_id), str(self.usrname))
    class Meta:
@@ -121,7 +92,7 @@ class UsrPermMap(models.Model):
 
 class Card(models.Model):
    usr_id = models.ForeignKey(User, db_column='usr')
-   barcode = models.CharField(blank=False, null=False, maxlength=200)
+   barcode = models.CharField(blank=False, null=False, maxlength=CHAR_MAXLEN)
    active = models.BooleanField()
    def __str__(self): 
       return self.barcode
@@ -132,18 +103,54 @@ class Card(models.Model):
 
    
 
+""" --------------------------------------------------------------
+    Actor tables
+    -------------------------------------------------------------- """
+
+class OrgUnitType(models.Model):
+    name = models.CharField(maxlength=100)
+    opac_label = models.CharField(maxlength=100)
+    depth = models.IntegerField()
+    parent_id = models.ForeignKey('self', null=True, related_name='children', db_column='parent')
+    can_have_vols = models.BooleanField()
+    can_have_users = models.BooleanField()
+    class Meta:
+        db_table = 'org_unit_type'
+        verbose_name = _('Library Type')
+    class Admin:
+        list_display = ('name', 'depth')
+        list_filter = ['parent_id']
+        ordering = ['depth']
+    def __str__(self):
+        return self.name
+
+class OrgUnitSetting(models.Model):
+    org_unit_id = models.ForeignKey('OrgUnit', db_column='org_unit')
+    name = models.CharField(maxlength=CHAR_MAXLEN)
+    value = models.CharField(maxlength=CHAR_MAXLEN)
+    class Admin:
+        list_display = ('org_unit_id', 'name', 'value')
+        search_fields = ['name', 'value']
+        list_filter = ['name', 'org_unit_id']
+    class Meta:
+        db_table = 'org_unit_setting'
+        ordering = ['org_unit_id', 'name']
+        verbose_name = _('Library Setting')
+    def __str__(self):
+        return "%s:%s=%s" % (self.org_unit_id.shortname, self.name, self.value)
+
 
 class OrgAddress(models.Model):
     valid = models.BooleanField()
     org_unit_id = models.ForeignKey('OrgUnit', db_column='org_unit')
-    address_type = models.CharField(blank=False, maxlength=200, default='MAILING')
-    street1 = models.CharField(blank=False, maxlength=200)
-    street2 = models.CharField(maxlength=200)
-    city = models.CharField(blank=False, maxlength=200)
-    county = models.CharField(maxlength=200)
-    state = models.CharField(blank=False, maxlength=200)
-    country = models.CharField(blank=False, maxlength=200)
-    post_code = models.CharField(blank=False, maxlength=200)
+    address_type = models.CharField(blank=False, maxlength=CHAR_MAXLEN, default='MAILING')
+    street1 = models.CharField(blank=False, maxlength=CHAR_MAXLEN)
+    street2 = models.CharField(maxlength=CHAR_MAXLEN)
+    city = models.CharField(blank=False, maxlength=CHAR_MAXLEN)
+    county = models.CharField(maxlength=CHAR_MAXLEN)
+    state = models.CharField(blank=False, maxlength=CHAR_MAXLEN)
+    country = models.CharField(blank=False, maxlength=CHAR_MAXLEN)
+    post_code = models.CharField(blank=False, maxlength=CHAR_MAXLEN)
     class Admin:
         search_fields = ['street1', 'city', 'post_code']   
         list_filter = ['org_unit_id']
@@ -151,17 +158,17 @@ class OrgAddress(models.Model):
     class Meta:
         ordering = ['city']
         db_table = 'org_address'
-        verbose_name = 'Library Address'
+        verbose_name = _('Library Address')
     def __str__(self):
         return self.street1+' '+self.city+', '+self.state+' '+self.post_code
 
 class OrgUnit(models.Model):
     parent_ou_id = models.ForeignKey('self', null=True, related_name='children', db_column='parent_ou')
     ou_type_id = models.ForeignKey(OrgUnitType, db_column='ou_type')
-    shortname = models.CharField(maxlength=200)
-    name = models.CharField(maxlength=200)
+    shortname = models.CharField(maxlength=CHAR_MAXLEN)
+    name = models.CharField(maxlength=CHAR_MAXLEN)
     email = models.EmailField(null=True, blank=True)
-    phone = models.CharField(maxlength=200, null=True, blank=True)
+    phone = models.CharField(maxlength=CHAR_MAXLEN, null=True, blank=True)
     opac_visible = models.BooleanField(blank=True)
     ill_address_id = models.ForeignKey(OrgAddress, 
         db_column='ill_address', related_name='ill_addresses', null=True, blank=True)
@@ -177,16 +184,21 @@ class OrgUnit(models.Model):
     class Meta:
         db_table = 'org_unit'
         ordering = ['shortname']
-        verbose_name = 'Library'
+        verbose_name = _('Library')
     def __str__(self):
         return self.shortname
 
 
+
+""" --------------------------------------------------------------
+    Config tables
+    -------------------------------------------------------------- """
+
 class RuleCircDuration(models.Model):
-    name = models.CharField(maxlength=200)
-    extended = models.CharField(maxlength=200, help_text=INTERVAL_HELP_TEXT);
-    normal = models.CharField(maxlength=200, help_text=INTERVAL_HELP_TEXT);
-    shrt = models.CharField(maxlength=200, help_text=INTERVAL_HELP_TEXT);
+    name = models.CharField(maxlength=CHAR_MAXLEN)
+    extended = models.CharField(maxlength=CHAR_MAXLEN, help_text=INTERVAL_HELP_TEXT);
+    normal = models.CharField(maxlength=CHAR_MAXLEN, help_text=INTERVAL_HELP_TEXT);
+    shrt = models.CharField(maxlength=CHAR_MAXLEN, help_text=INTERVAL_HELP_TEXT);
     max_renewals = models.IntegerField()
     class Admin:
         search_fields = ['name']
@@ -194,13 +206,13 @@ class RuleCircDuration(models.Model):
     class Meta:
         db_table = 'rule_circ_duration'
         ordering = ['name']
-        verbose_name = 'Circ Duration Rule'
+        verbose_name = _('Circ Duration Rule')
     def __str__(self):
         return self.name
 
 
 class RuleMaxFine(models.Model):
-    name = models.CharField(maxlength=200)
+    name = models.CharField(maxlength=CHAR_MAXLEN)
     amount = models.FloatField(max_digits=6, decimal_places=2)
     class Admin:
         search_fields = ['name']
@@ -208,12 +220,12 @@ class RuleMaxFine(models.Model):
     class Meta:
         db_table = 'rule_max_fine'
         ordering = ['name']
-        verbose_name = 'Circ Max Fine Rule'
+        verbose_name = _('Circ Max Fine Rule')
     def __str__(self):
         return self.name
 
 class RuleRecurringFine(models.Model):
-    name = models.CharField(maxlength=200)
+    name = models.CharField(maxlength=CHAR_MAXLEN)
     high = models.FloatField(max_digits=6, decimal_places=2)
     normal = models.FloatField(max_digits=6, decimal_places=2)
     low = models.FloatField(max_digits=6, decimal_places=2)
@@ -228,19 +240,19 @@ class RuleRecurringFine(models.Model):
         return self.name
 
 class IdentificationType(models.Model):
-    name = models.CharField(maxlength=200)
+    name = models.CharField(maxlength=CHAR_MAXLEN)
     class Admin:
         search_fields = ['name']
     class Meta:
         db_table = 'identification_type'
         ordering = ['name']
-        verbose_name = 'Identification Type'
+        verbose_name = _('Identification Type')
     def __str__(self):
         return self.name
 
 
 class RuleAgeHoldProtect(models.Model):
-    name = models.CharField(maxlength=200)
+    name = models.CharField(maxlength=CHAR_MAXLEN)
     age = models.CharField(blank=True, maxlength=100, help_text=INTERVAL_HELP_TEXT)
     prox = models.IntegerField()
     class Admin:
@@ -248,10 +260,12 @@ class RuleAgeHoldProtect(models.Model):
     class Meta:
         db_table = 'rule_age_hold_protect'
         ordering = ['name']
-        verbose_name = 'Hold Age Protection Rule'
+        verbose_name = _('Hold Age Protection Rule')
     def __str__(self):
         return self.name
 
+
+
 class MetabibField(models.Model):
     field_class_choices = (
         ('title', 'Title'),
@@ -260,39 +274,147 @@ class MetabibField(models.Model):
         ('series', 'Series'),
         ('keyword', 'Keyword'),
     )
-    field_class = models.CharField(maxlength=200, choices=field_class_choices, null=False, blank=False)
-    name = models.CharField(maxlength=200, null=False, blank=False)
+    field_class = models.CharField(maxlength=CHAR_MAXLEN, choices=field_class_choices, null=False, blank=False)
+    name = models.CharField(maxlength=CHAR_MAXLEN, null=False, blank=False)
     xpath = models.TextField(null=False, blank=False)
     weight = models.IntegerField(null=False, blank=False)
-    format = models.CharField(maxlength=200, null=False, blank=False)
+    format = models.CharField(maxlength=CHAR_MAXLEN, null=False, blank=False)
     class Admin:
         search_fields = ['name', 'format', 'field_class']
         list_display = ('field_class', 'name', 'format')
     class Meta:
         db_table = 'metabib_field'
         ordering = ['field_class', 'name']
-        verbose_name = 'Metabib Field'
+        verbose_name = _('Metabib Field')
+    def __str__(self):
+        return self.name
+
+
+class CopyStatus(models.Model):
+    name = models.CharField(maxlength=CHAR_MAXLEN)
+    holdable = models.BooleanField()
+    class Admin:
+        search_fields = ['name']
+        list_display = ('name', 'holdable')
+    class Meta:
+        db_table = 'copy_status'
+        ordering = ['name']
+        verbose_name= _('Copy Status')
+    def __str__(self):
+        return self.name
+
+
+class AudienceMap(models.Model):
+    code = models.CharField(maxlength=CHAR_MAXLEN, blank=False, primary_key=True)
+    value = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    description = models.CharField(maxlength=CHAR_MAXLEN)
+    class Admin:
+        search_fields = ['code', 'value', 'description']
+        list_display = ('code', 'value', 'description')
+    class Meta:
+        db_table = 'audience_map'
+        ordering = ['code']
+        verbose_name = _('Audience Map')
+    def __str__(self):
+        return self.code
+
+
+class BibSource(models.Model):
+    quality = models.IntegerField()
+    source = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    transcendant = models.BooleanField()
+    class Admin:
+        search_fields = ['source']
+        list_display = ('source', 'quality', 'transcendant')
+    class Meta:
+        db_table = 'bib_source'
+        ordering = ['source']
+        verbose_name = _('Bib Source')
+    def __str__(self):
+        return self.source
+
+class ItemFormMap(models.Model):
+    code = models.CharField(maxlength=CHAR_MAXLEN, blank=False, primary_key=True)
+    value = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    class Admin:
+        search_fields = ['code', 'value']
+        list_display = ('code', 'value')
+    class Meta:
+        db_table = 'item_form_map'
+        ordering = ['code']
+        verbose_name = _('Item Form Map')
+    def __str__(self):
+        return self.code
+
+class ItemTypeMap(models.Model):
+    code = models.CharField(maxlength=CHAR_MAXLEN, blank=False, primary_key=True)
+    value = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    class Admin:
+        search_fields = ['code', 'value']
+        list_display = ('code', 'value')
+    class Meta:
+        db_table = 'item_form_map'
+        ordering = ['code']
+        verbose_name = _('Item Type Map')
+    def __str__(self):
+        return self.code
+
+
+
+class LanguageMap(models.Model):
+    code = models.CharField(maxlength=CHAR_MAXLEN, blank=False, primary_key=True)
+    value = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    class Admin:
+        search_fields = ['code', 'value']
+        list_display = ('code', 'value')
+    class Meta:
+        db_table = 'language_map'
+        ordering = ['code']
+        verbose_name = _('Language Map')
+    def __str__(self):
+        return self.code
+
+
+class LitFormMap(models.Model):
+    code = models.CharField(maxlength=CHAR_MAXLEN, blank=False, primary_key=True)
+    value = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    description = models.CharField(maxlength=CHAR_MAXLEN)
+    class Admin:
+        search_fields = ['code', 'value', 'description']
+        list_display = ('code', 'value', 'description')
+    class Meta:
+        db_table = 'lit_form_map'
+        ordering = ['code']
+        verbose_name = _('Lit Form Map')
+    def __str__(self):
+        return self.code
+
+class NetAccessLevel(models.Model):
+    name = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    class Admin:
+        search_fields = ['name']
+    class Meta:
+        db_table = 'net_access_level'
+        ordering = ['name']
+        verbose_name = _('Net Access Level')
+    def __str__(self):
+        return self.name
+
+
+class XmlTransform(models.Model):
+    name = models.CharField(maxlength=CHAR_MAXLEN, blank=False, primary_key=True)
+    namespace_uri = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    prefix = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    xslt = models.CharField(maxlength=CHAR_MAXLEN, blank=False)
+    class Admin:
+        search_fields = ['name', 'namespace_uri', 'prefix' ]
+        list_display = ('name', 'prefix', 'namespace_uri', 'xslt')
+    class Meta:
+        db_table = 'xml_transform'
+        ordering = ['name']
+        verbose_name = _('XML Transform')
     def __str__(self):
         return self.name
 
 
-# register the alternate DB
-"""
-settings.OTHER_DATABASES['main_db']['MODELS'] = [
-    'GrpTree',
-    'OrgUnitType',
-    'OrgUnitSetting',
-    'PermList',
-    'GrpPermMap',
-    'User',
-    'UsrPermMap',
-    'Card',
-    'OrgAddress',
-    'OrgUnit',
-    'RuleCircDuration',
-    'RuleMaxFine',
-    'RuleRecurringFine',
-    'IdentificationType',
-    'RuleAgeHoldProtect' ]
-"""