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 }
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}
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 }
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}
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 }
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}
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}