Annotation of OSAS/OSA_system/OSAS_ids.py, revision 1.1
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
! 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>