コード例 #1
0
ファイル: __init__.py プロジェクト: certae/django-softmachine
def doModelGraph(modeladmin, request, queryset, parameters):
    """ 
    funcion para crear el modelo grafico 
    a partir de Model ( doModel )   
    el proyecto enviara la el QSet de todos los modelos 
    """

#   El QSet viene con la lista de Ids  
    if queryset.count() != 1:
        return  {'success':False, 'message' : 'No record selected' }

    try:

        from graphModel import GraphModel 
        gModel = GraphModel()
    
        gModel.getDiagramDefinition( queryset  )
        dotData = gModel.generateDotModel( )

#   Recorre los registros selccionados   
    except Exception as e:
        traceback.print_exc()
        return  {'success':False, 'message' : 'Load error' }
        pass


#   Genera el archvivo dot     
    fileName = 'gm_' + slugify( queryset[0].code ) + '.dot'
    fullPath = getFullPath( request, fileName )
 
    fo = open( fullPath , "wb")
    fo.write( dotData.encode('utf-8'))
    fo.close()
 
    try:
        import pygraphviz
        fileNamePdf = fileName.replace( '.dot', '.pdf') 
        fullPathPdf = getFullPath( request, fileNamePdf )
 
        graph = pygraphviz.AGraph( fullPath )
        graph.layout( prog= 'dot' )
        graph.draw( fullPathPdf, format ='pdf')
 
        fileName = fileNamePdf
    except ImportError:
        pass

    return  {'success':True , 'message' : fileName,  'fileName' : fileName }
コード例 #2
0
def doModelGraph(modeladmin, request, queryset, parameters):
    """ 
    funcion para crear el modelo grafico 
    a partir de Model ( doModel )   
    el proyecto enviara la el QSet de todos los modelos 
    """

    #   El QSet viene con la lista de Ids
    if queryset.count() != 1:
        return {'success': False, 'message': 'No record selected'}

    try:

        from graphModel import GraphModel
        gModel = GraphModel()

        gModel.getDiagramDefinition(queryset)
        dotData = gModel.generateDotModel()

#   Recorre los registros selccionados
    except Exception as e:
        traceback.print_exc()
        return {'success': False, 'message': 'Load error'}
        pass


#   Genera el archvivo dot
    fileName = 'gm_' + slugify(queryset[0].code) + '.dot'
    fullPath = getFullPath(request, fileName)

    fo = open(fullPath, "wb")
    fo.write(dotData.encode('utf-8'))
    fo.close()

    try:
        import pygraphviz
        fileNamePdf = fileName.replace('.dot', '.pdf')
        fullPathPdf = getFullPath(request, fileNamePdf)

        graph = pygraphviz.AGraph(fullPath)
        graph.layout(prog='dot')
        graph.draw(fullPathPdf, format='pdf')

        fileName = fileNamePdf
    except ImportError:
        pass

    return {'success': True, 'message': fileName, 'fileName': fileName}
コード例 #3
0
def doExportProtoJson( modeladmin, request, queryset, parameters):

    from prototype.actions.exportViews  import exportProtoJson
    

#   El QSet viene con la lista de Ids  
    if queryset.count() != 1:
        return  {'success':False, 'message' : 'No record selected' }

            
#   Envia el QSet con la lista de modelos, 
    try:
        strModel = exportProtoJson ( request, queryset[0] )
    except Exception as e:
        traceback.print_exc()
        return  {'success':False, 'message' : 'Load error' }

        
#   Genera el archvivo py      
    fileName = 'proto_{0}.json'.format( slugify( queryset[0].code ) )
    fullPath = getFullPath( request, fileName )

    fo = open( fullPath , "w")
    fo.write( strModel.encode('utf-8'))
    fo.close()

    return  {'success':True , 'message' : fileName,  'fileName' : fileName }
コード例 #4
0
def doExportPrototype(modeladmin, request, queryset, parameters):

    from prototype.actions.exportProto.exportProtoype import exportPrototypeModel

    #   El QSet viene con la lista de Ids
    if queryset.count() != 1:
        return {'success': False, 'message': 'No record selected'}


#   Envia el QSet con la lista de modelos,
    strModel = exportPrototypeModel(request, queryset[0])

    #   Genera el archvivo py
    fileName = 'model_{0}.py'.format(slugify(queryset[0].code))
    fullPath = getFullPath(request, fileName)

    fo = open(fullPath, "w")
    fo.write(strModel.encode('utf-8'))
    fo.close()

    return {'success': True, 'message': fileName, 'fileName': fileName}
コード例 #5
0
def doExport2Json( modeladmin, request, queryset, parameters):

    
    from prototype.actions.export2json  import exportPrototype2Json
    

#   El QSet viene con la lista de Ids  
    if queryset.count() != 1:
        return  {'success':False, 'message' : 'No record selected' }

            
#   Envia el QSet con la lista de modelos, 
    strModel = exportPrototype2Json( request, queryset[0] )
        
#   Genera el archvivo py      
    fileName = 'model_{0}.jex'.format( slugify( queryset[0].code ) )
    fullPath = getFullPath( request, fileName )

    fo = open( fullPath , "w")
    fo.write( strModel.encode('utf-8'))
    fo.close()

    return  {'success':True , 'message' : fileName,  'fileName' : fileName }
コード例 #6
0
def doExportProtoJson(modeladmin, request, queryset, parameters):

    from prototype.actions.exportViews import exportProtoJson

    #   El QSet viene con la lista de Ids
    if queryset.count() != 1:
        return {'success': False, 'message': 'No record selected'}

#   Envia el QSet con la lista de modelos,
    try:
        strModel = exportProtoJson(request, queryset[0])
    except Exception as e:
        traceback.print_exc()
        return {'success': False, 'message': 'Load error'}

#   Genera el archvivo py
    fileName = 'proto_{0}.json'.format(slugify(queryset[0].code))
    fullPath = getFullPath(request, fileName)

    fo = open(fullPath, "w")
    fo.write(strModel.encode('utf-8'))
    fo.close()

    return {'success': True, 'message': fileName, 'fileName': fileName}
コード例 #7
0
ファイル: racMatrix.py プロジェクト: victorette/certae-rai
def doMatrixRaccordement(modelAdmin, request, selectedKeys, detKeys,
                         parameters):
    def expandRaccordment(matrixDef, rowRacc):
        lineRacc = []
        for sKey in matrixDef:
            lineRacc.append(rowRacc.get(sKey, ''))

        return lineRacc

    def getLineCsv(line):
        sAux = u''
        for e in line:
            sAux = sAux + ',"' + smart_unicode(e) + '"'
        return sAux[1:] + '\n'

    from rai.models import ModeleRaccordement, Raccordement

    # Definicion de las cols
    matrixDef = ['MR', 'MR_ENT', 'MR_EDN']

    # matrix dispersa compuesta por eltos de cada tupla
    matrixRac = []

    try:
        QsMR = ModeleRaccordement.objects.filter(pk__in=detKeys['mod_modrac1'])
        for dMRac in QsMR:
            MR = 'MR'
            ML = 'M{0:03d}'.format(dMRac.mod_modrac2.pk)

            matrixDef.extend([ML, ML + '_ENT', ML + '_EDN'])

            QsR = Raccordement.objects.filter(modrac_rac=dMRac.pk)

            for dRac in QsR:

                if dRac.eledon_rac1 is None or dRac.eledon_rac2 is None:
                    continue

                if dRac.eledon_rac1.entite_elem is None or dRac.eledon_rac2.entite_elem is None:
                    continue

                linRac = {
                    MR: dMRac.mod_modrac1.nom_modele,
                    ML: dMRac.mod_modrac2.nom_modele,
                    MR + '_ENT': dRac.eledon_rac1.entite_elem.nom_entite,
                    ML + '_ENT': dRac.eledon_rac2.entite_elem.nom_entite,
                    MR + '_EDN': dRac.eledon_rac1.nom_element_donnee,
                    ML + '_EDN': dRac.eledon_rac2.nom_element_donnee
                }
                matrixRac.append(linRac)

    except Exception as e:
        traceback.print_exc()
        return {'success': False, 'message': 'Load error'}

    fileName = 'mraccordement.csv'
    fullpath = getFullPath(request, fileName)

    import codecs
    with codecs.open(fullpath, 'w', 'utf-8') as outfile:
        outfile.write(getLineCsv(matrixDef))
        for row in matrixRac:
            lineRacc = expandRaccordment(matrixDef, row)
            outfile.write(getLineCsv(lineRacc))

    return {'success': True, 'message': fileName, 'fileName': fileName}