def GetDetailsConfigTree(protoEntityId): lDetails = [] try: pEntity = Entity.objects.get(id=protoEntityId) except: return lDetails # Details for pDetail in pEntity.refEntity_set.all(): detail = { "detailField": "info__" + slugify(pDetail.code) + "_id", "conceptDetail": PROTO_PREFIX + getViewCode(pDetail.entity), "detailName": slugify(pDetail.entity.code), "menuText": pDetail.entity.code, "masterField": "pk", "id": slugify(pDetail.entity.code), "leaf": True } lDetails.append(detail) return lDetails
def GetDetailsConfigTree( protoEntityId ): lDetails = [] try: pEntity = Entity.objects.get( id = protoEntityId ) except: return lDetails # Details for pDetail in pEntity.refEntity_set.all(): detail = { "detailField": "info__" + slugify( pDetail.code ) + "_id", "conceptDetail": PROTO_PREFIX + getViewCode( pDetail.entity ), "detailName": slugify( pDetail.entity.code ), "menuText": pDetail.entity.code , "masterField": "pk", "id" : slugify( pDetail.entity.code ) , "leaf" : True } lDetails.append( detail ) return lDetails
def getEntities( queryset , request, viewTitle ): """ Recorre las entidades para generar las vistas en bache por modelo """ userProfile = getUserProfile( request.user, 'prototype', '' ) returnMsg = '' # Recorre los registros selccionados for pEntity in queryset: returnMsg += pEntity.code + ',' createView( pEntity , getViewCode( pEntity, viewTitle ) , userProfile ) return returnMsg
def getEntities(queryset, request, viewTitle): """ Recorre las entidades para generar las vistas en bache por modelo """ userProfile = getUserProfile(request.user, 'prototype', '') returnMsg = '' # Recorre los registros selccionados for pEntity in queryset: returnMsg += pEntity.code + ',' createView(pEntity, getViewCode(pEntity, viewTitle), userProfile) return returnMsg
def addProtoFiedToList(fieldList, pEntity, fieldBase, zoomName): """ Recorre los campos e itera con los fk ( solo un nivel 'fieldBase' ) """ for pProperty in pEntity.property_set.all(): fName = 'info__' + slugify(pProperty.code) field = property2Field(fName, pProperty.__dict__, True, fieldBase) # Si es un campo heredado ( Se maneja ahora en la pci generada if len(fieldBase) > 0: field["cpFromZoom"] = fieldBase field["cpFromField"] = fName field["required"] = False field["readOnly"] = True field["leaf"] = True elif pProperty.isForeign: # Agrega el Id fieldList.append(getFkId(fName, True, fieldBase)) # Agrega los parametros del zoom zoomEntity = pProperty.relationship.refEntity field["zoomModel"] = PROTO_PREFIX + getViewCode(zoomEntity) field["fkId"] = fName + "_id" field["type"] = "foreigntext" fkFieldList = [] addProtoFiedToList(fkFieldList, zoomEntity, fName, slugify(zoomEntity.code)) field["leaf"] = False field["children"] = fkFieldList fieldList.append(field) # agrega las props de seguridad if len(fieldBase) == 0: for fName in [ 'smOwningUser', 'smOwningTeam', 'smCreatedBy', 'smModifiedBy', 'smWflowStatus', 'smRegStatus', 'smCreatedOn', 'smModifiedOn', 'smUUID' ]: propDict = {"name": fName, "readOnly": True} field = property2Field(fName, propDict, True) fieldList.append(field)
def addProtoFiedToList( fieldList, pEntity , fieldBase, zoomName ): """ Recorre los campos e itera con los fk ( solo un nivel 'fieldBase' ) """ for pProperty in pEntity.property_set.all(): fName = 'info__' + slugify( pProperty.code ) field = property2Field( fName, pProperty.__dict__ , True, fieldBase ) # Si es un campo heredado ( Se maneja ahora en la pci generada if len( fieldBase ) > 0 : field["cpFromZoom"] = fieldBase field["cpFromField"] = fName field["required"] = False field["readOnly"] = True field["leaf"] = True elif pProperty.isForeign: # Agrega el Id fieldList.append( getFkId( fName , True, fieldBase )) # Agrega los parametros del zoom zoomEntity = pProperty.relationship.refEntity field["zoomModel"]= PROTO_PREFIX + getViewCode( zoomEntity ) field["fkId"] = fName + "_id" field["type"] = "foreigntext" fkFieldList= [] addProtoFiedToList( fkFieldList, zoomEntity, fName, slugify( zoomEntity.code ) ) field["leaf"] = False field["children"] = fkFieldList fieldList.append( field ) # agrega las props de seguridad if len( fieldBase ) == 0 : for fName in ['smOwningUser','smOwningTeam','smCreatedBy','smModifiedBy','smWflowStatus','smRegStatus','smCreatedOn','smModifiedOn', 'smUUID']: propDict = { "name" : fName, "readOnly": True } field = property2Field( fName, propDict, True ) fieldList.append( field )
def getViewDefinition( pEntity, viewTitle ): entityName = getViewCode( pEntity ) infoEntity = baseDefinition( pEntity, entityName, viewTitle ) infoEntity['gridConfig']['baseFilter'] = [ { 'property':'entity', 'filterStmt' : '=' + str( pEntity.id ) } ] #para crear el campo __str__: se arma con las llaves definidas como primarias o unicas __str__Base = [] #infoEntity['gridConfig']['listDisplay'].append( '__str__' ) for pProperty in pEntity.property_set.order_by('id'): fName = 'info__' + slugify( pProperty.code ) field = property2Field( fName, pProperty.__dict__ ) if pProperty.isForeign: field["zoomModel"]= PROTO_PREFIX + getViewCode( pProperty.relationship.refEntity ) field["fkId"] = fName + "_id" field["type"] = "foreigntext" infoEntity['fields'].append( getFkId( fName ) ) infoEntity['fields'].append( field ) # hace las veces de __str__ if pProperty.isPrimary or pProperty.isLookUpResult: __str__Base.append( fName ) # DP solicito se generaran todos los campos en la grilla 130308 ) if pProperty.isEssential or len( infoEntity['gridConfig']['listDisplay'] ) <= 7 : infoEntity['gridConfig']['listDisplay'].append( fName ) # forma y ordenamiento infoEntity['gridConfig']['sortFields'].append( fName ) infoEntity['formConfig']['items'][0]['items'].append( { "name": fName, "__ptType": "formField" } ) # Al menos incluye el str if len ( infoEntity['gridConfig']['listDisplay'] ) == 0: infoEntity['gridConfig']['listDisplay'].append( '__str__' ) # __str__, __unicode__ field = { "flex": 1, "sortable": True, "name": "__str__", "fkId": "id", "zoomModel": PROTO_PREFIX + slugify( viewTitle ), "cellLink": True, "header": viewTitle, "readOnly": True, "type": "string", "physicalName" : '@myStr("' + '","'.join(__str__Base) + '")' } fName = '__str__' infoEntity['fields'].append( field ) infoEntity['gridConfig']['sortFields'].append( fName ) # Details for pDetail in pEntity.refEntity_set.all(): detail = { "detailField": "info__" + slugify( pDetail.code ) + "_id", "conceptDetail": PROTO_PREFIX + getViewCode( pDetail.entity ), "detailName": slugify( pDetail.entity.code ), "menuText": pDetail.entity.code , "masterField": "pk" } infoEntity['detailsConfig'].append( detail ) return infoEntity
def getViewDefinition(pEntity, viewTitle): entityName = getViewCode(pEntity) infoEntity = baseDefinition(pEntity, entityName, viewTitle) infoEntity['gridConfig']['baseFilter'] = [{ 'property': 'entity', 'filterStmt': '=' + str(pEntity.id) }] #para crear el campo __str__: se arma con las llaves definidas como primarias o unicas __str__Base = [] #infoEntity['gridConfig']['listDisplay'].append( '__str__' ) for pProperty in pEntity.property_set.order_by('id'): fName = 'info__' + slugify(pProperty.code) field = property2Field(fName, pProperty.__dict__) if pProperty.isForeign: field["zoomModel"] = PROTO_PREFIX + getViewCode( pProperty.relationship.refEntity) field["fkId"] = fName + "_id" field["type"] = "foreigntext" infoEntity['fields'].append(getFkId(fName)) infoEntity['fields'].append(field) # hace las veces de __str__ if pProperty.isPrimary or pProperty.isLookUpResult: __str__Base.append(fName) # DP solicito se generaran todos los campos en la grilla 130308 ) if pProperty.isEssential or len( infoEntity['gridConfig']['listDisplay']) <= 7: infoEntity['gridConfig']['listDisplay'].append(fName) # forma y ordenamiento infoEntity['gridConfig']['sortFields'].append(fName) infoEntity['formConfig']['items'][0]['items'].append({ "name": fName, "__ptType": "formField" }) # Al menos incluye el str if len(infoEntity['gridConfig']['listDisplay']) == 0: infoEntity['gridConfig']['listDisplay'].append('__str__') # __str__, __unicode__ field = { "flex": 1, "sortable": True, "name": "__str__", "fkId": "id", "zoomModel": PROTO_PREFIX + slugify(viewTitle), "cellLink": True, "header": viewTitle, "readOnly": True, "type": "string", "physicalName": '@myStr("' + '","'.join(__str__Base) + '")' } fName = '__str__' infoEntity['fields'].append(field) infoEntity['gridConfig']['sortFields'].append(fName) # Details for pDetail in pEntity.refEntity_set.all(): detail = { "detailField": "info__" + slugify(pDetail.code) + "_id", "conceptDetail": PROTO_PREFIX + getViewCode(pDetail.entity), "detailName": slugify(pDetail.entity.code), "menuText": pDetail.entity.code, "masterField": "pk" } infoEntity['detailsConfig'].append(detail) return infoEntity