Annotation of OSAS/OSA_system/OSAS_ids.py, revision 1.2

1.1       dwinter     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
1.2     ! dwinter     9: #from pyPgSQL import PgSQL
1.1       dwinter    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>