File:  [Repository] / OSAS / OSA_system / OSAS_ids.py
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Sun Dec 28 17:11:05 2003 UTC (20 years, 6 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
 im archiverVS: ----------------------------------------------------------------------

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

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