예제 #1
0
def saveProperty( dEntity, pProperty, defValues, userProfile, prpName, seq   ):

    try: 
        dProperty =  dEntity.property_set.create( code = prpName, smOwningTeam = userProfile.userTeam )

        setDefaults2Obj( dProperty, pProperty, ['code'] )    
        setDefaults2Obj( dProperty, defValues )    
        dProperty.save()
        transaction.commit()

    except Exception as e:
        transaction.rollback()
        prpName = '{0}.{1}'.format( prpName.split('.')[0] , seq ) 
        saveProperty( dEntity, pProperty, defValues, userProfile, prpName,  seq +1 )
        return 
예제 #2
0
def saveProperty( dEntity, pProperty, defValues, userProfile, prpName, seq   ):

    try: 
        dProperty =  dEntity.property_set.create( code = prpName, smOwningTeam = userProfile.userTeam )

        setDefaults2Obj( dProperty, pProperty, ['code'] )    
        setDefaults2Obj( dProperty, defValues )    
        dProperty.save()
        transaction.commit()

    except Exception as e:
        transaction.rollback()
        prpName = '{0}.{1}'.format( prpName.split('.')[0] , seq ) 
        saveProperty( dEntity, pProperty, defValues, userProfile, prpName,  seq +1 )
        return 
예제 #3
0
def saveRelation( dProject, dEntity, dModel, pProperty,  defValues, userProfile, prpName, seq   ):

    refName = pProperty['refEntity']                
    if refName in  ['self', "'self'"]:
        refName = dEntity.code 
    
    pRefEntity =  pEntities.get(  refName , None )
    if pRefEntity is None:
        if not 'notes' in pProperty:
            pProperty[ 'notes' ] = ''  
        pProperty[ 'notes' ] += 'refEntity ( {0} ) not found;'.format( refName )   
        saveProperty( dEntity, pProperty, defValues, userProfile, prpName,  seq  )
        return 

    dRefEntity =  pRefEntity['dataEntity']

    try: 
        dRelation =  Relationship(  
                         code = prpName ,
                         entity = dEntity , 
                         refEntity = dRefEntity ,  
                         smOwningTeam = userProfile.userTeam 
                         )

        setDefaults2Obj( dRelation, pProperty, ['refEntity', 'code'] )    
        setDefaults2Obj( dRelation, defValues )    
        dRelation.save()
        transaction.commit()

    except IntegrityError:
        transaction.rollback()
        prpName = '{0}.{1}'.format( prpName.split('.')[0] , seq ) 
        if not 'notes' in pProperty:
            pProperty[ 'notes' ] = ''  
        pProperty[ 'notes' ] += 'duplicate field {0} rename to {1};'.format( prpName.split('.')[0], prpName )
           
        saveRelation( dProject, dEntity, dModel, pProperty,  defValues, userProfile, prpName, seq + 1 )
        return 

    except Exception as e:  
        transaction.rollback()
        #log 
        return