File:  [Repository] / OSAS / OSA_system / OSAS_ids.py
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Fri Dec 19 15:05:41 2003 UTC (20 years, 6 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD

Added rescale button

    1: """Generate and organize the institutes internal IDs
    2: DW 2003, itgroup """
    3: 
    4: from AccessControl import ClassSecurityInfo
    5: from Globals import InitializeClass
    6: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
    7: from Products.PageTemplates.PageTemplate import PageTemplate
    8: from OFS.SimpleItem import SimpleItem
    9: #from pyPgSQL import PgSQL
   10: from Products.PageTemplates.PageTemplate import PageTemplate
   11: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   12: 
   13: import random
   14: import types
   15: import time
   16: 
   17: class OSAS_idGenerator(SimpleItem):
   18:     """Object zum Erzeugen und Registrieren von ID's"""
   19: 
   20:     def __init__(self, id,title):
   21:         """init"""
   22:         self.id=id
   23:         self.title=title
   24: 
   25:     meta_type="OSAS_idGenerator"
   26: 
   27:     def getOSASId(self):
   28:         """erzeuge ID"""
   29:         id=self.generateId()
   30:         print "ID",id
   31:         while self.idExists(id):
   32:             id=self.generateId()
   33:         return id
   34: 
   35:     def registerID(self,id,date,name):
   36:         """registrieren der id"""
   37: 
   38:         if self.idExists(id):
   39:             return "ERROR: id - %s - already exists" %id
   40:         
   41:         conn=PgSQL.connect("127.0.0.1 dbname=osas_ids user=dwinter")
   42:         curs=conn.cursor()
   43: 
   44:         curs.execute("INSERT INTO institutesIds (id,date,name)  VALUES ('%s','%s','%s')" % (id,date,name))
   45:         
   46:         conn.commit()
   47: 
   48:         return "OK: id - %s - registered" %id
   49:     
   50:     def idExists(self,id):
   51:         """Existiert eine ID"""
   52:         conn=PgSQL.connect("127.0.0.1 dbname=osas_ids user=dwinter")
   53:         curs=conn.cursor()
   54: 
   55:         founds=curs.execute("SELECT id FROM institutesIds WHERE id='%s'"%id) 
   56:         conn.commit()
   57:         
   58:         if not founds==None:
   59:             return True
   60:         else:
   61:             return False
   62:         
   63:     def index_html(self):
   64:         """ID generator"""
   65:         pt=PageTemplateFile("Products/OSA_System/OSAS_ids.zpt").__of__(self)
   66:         return pt()
   67: 
   68:     def giveIdsOut(self,number,RESPONSE=None):
   69:         """Ausgabe von ID's"""
   70:         number=int(number)
   71:         ids=[]
   72: 
   73:         for i in range(number):
   74:             ids.append(self.getOSASId())
   75: 
   76:         if RESPONSE:
   77:             self.REQUEST.SESSION['ids']=ids
   78:             pt=PageTemplateFile("Products/OSA_System/OSAS_printIds.zpt").__of__(self)
   79:             return pt()
   80:         else:
   81:             return ids
   82: 
   83:     def registerIdsOut(self,ids,name=None,IdDate=None,RESPONSE=None):
   84:         """Registriere IDS"""
   85:         #print "TYPES",type(ids)
   86:         #import datetime
   87:         
   88:         if not name:
   89:             name="Anon"
   90: 
   91:         if not IdDate:
   92:             IdDate=time.strftime("%Y%m%d",time.localtime())
   93:             
   94:         if type(ids) is types.ListType:
   95:             
   96:             for id in ids:
   97:                 #print "id",id
   98:                 self.registerID(id,IdDate,name)
   99:             self.REQUEST.SESSION['ids']=ids
  100:         else:
  101:             self.registerID(ids,IdDate,name)
  102:             self.REQUEST.SESSION['ids']=[ids]
  103: 
  104:         if RESPONSE:
  105:             pt=PageTemplateFile("Products/OSA_System/OSAS_registrationIdsDone.zpt").__of__(self)
  106:             return pt()
  107:         else:
  108:             return self.REQUEST.SESSION['ids']
  109: 
  110: 
  111:     def generateId(self):
  112:         """Zufällige ID"""
  113:         driEncode={ 0:'0',
  114:                     1:'1',
  115:                     2:'2',
  116:                     3:'3',
  117:                     4:'4',
  118:                     5:'5',
  119:                     6:'6',
  120:                     7:'7',
  121:                     8:'8',
  122:                     9:'9',
  123:                     10:'A',
  124:                     11:'B',
  125:                     12:'C',
  126:                     13:'D',
  127:                     14:'E',
  128:                     15:'F',
  129:                     16:'G',
  130:                     17:'H',
  131:                     18:'K',
  132:                     19:'M',
  133:                     20:'N',
  134:                     21:'P',
  135:                     22:'Q',
  136:                     23:'R',
  137:                     24:'S',
  138:                     25:'T',
  139:                     26:'U',
  140:                     27:'V',
  141:                     28:'W',
  142:                     29:'X',
  143:                     30:'Y',
  144:                     31:'Z'
  145:                     }
  146:         
  147:         random.seed()
  148:         x=[]
  149:         for i in range(7):
  150:             x.append(random.randint(0,31))
  151: 
  152:         sum=0
  153:         for i in range(7):
  154:             sum+=(i+1)*x[i]
  155:             print i
  156:         c=sum % 31
  157:         id=""
  158:         for i in range(7):
  159:             id+=driEncode[x[i]]
  160:         id+=driEncode[c]
  161:         return id
  162:         
  163: def manage_AddOSAS_idGeneratorForm(self):
  164:     """Erzeuge idGenerator"""
  165:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_idGenerator.zpt').__of__(self)
  166:     return pt()
  167: 
  168: def manage_AddOSAS_idGenerator(self,id,title=None,RESPONSE=None):
  169:     """add the OSAS_root"""
  170:     newObj=OSAS_idGenerator(id,title)
  171:     self._setObject(id,newObj)
  172:     if RESPONSE is not None:
  173:         RESPONSE.redirect('manage_main')
  174: 
  175: 
  176: 
  177: 
  178:     
  179:         
  180: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>