Ejemplo n.º 1
0
def save_object(request):
    print 'BEGIN def save_object(request)'
    
    objectName = None
    objectFilename = None 
    objectContent = None
    objectType = None
    objectFlat = None
    objectApiurl = None
    
    if ('uploadObjectValid' in request.session and request.session['uploadObjectValid'] == True and
        'uploadObjectName' in request.session and request.session['uploadObjectName'] is not None and
        'uploadObjectFilename' in request.session and request.session['uploadObjectFilename'] is not None and
        'uploadObjectContent' in request.session and request.session['uploadObjectContent'] is not None and
        'uploadObjectType' in request.session and request.session['uploadObjectType'] is not None):    
        objectName = request.session['uploadObjectName']
        objectFilename = request.session['uploadObjectFilename'] 
        objectContent = request.session['uploadObjectContent']
        objectType = request.session['uploadObjectType']      
        if 'uploadObjectFlat' in request.session and request.session['uploadObjectFlat'] is not None:
            objectFlat = request.session['uploadObjectFlat']
        else:
            objectFlat = None
        if 'uploadObjectAPIurl' in request.session and request.session['uploadObjectAPIurl'] is not None:
            objectApiurl = request.session['uploadObjectAPIurl']
        else:
            objectApiurl = None
        if 'uploadDependencies' in request.session and request.session['uploadDependencies'] is not None:
            dependencies = request.session['uploadDependencies']
        else:
            dependencies = None
            
        hash = XSDhash.get_hash(objectContent)
        # save the object
        if objectType == "Template":            
            objectVersions = TemplateVersion(nbVersions=1, isDeleted=False).save()
            object = Template(title=objectName, filename=objectFilename, content=objectContent, version=1, templateVersion=str(objectVersions.id), hash=hash).save()
            #We add default exporters
            try:
                exporters = Exporter.objects.filter(available_for_all=True)
                object.exporters = exporters
            except:
                pass
        elif objectType == "Type":                                                                                    
            objectVersions = TypeVersion(nbVersions=1, isDeleted=False).save()
            object = Type(title=objectName, filename=objectFilename, content=objectContent, version=1, typeVersion=str(objectVersions.id), hash=hash).save()
            buckets = request.POST.getlist('buckets[]')
            for bucket_id in buckets:
                bucket = Bucket.objects.get(pk=bucket_id)
                bucket.types.append(str(objectVersions.id))
                bucket.save()
        
        objectVersions.versions = [str(object.id)]
        objectVersions.current = str(object.id)
        objectVersions.save()    
        object.save()
        
        if objectFlat is not None and objectApiurl is not None and dependencies is not None:
            MetaSchema(schemaId=str(object.id), flat_content=objectFlat, api_content=objectApiurl).save()
            object.dependencies = dependencies
            object.save()
            
        clear_object(request)      
    else:
        response_dict = {'errors': 'True'}
        return HttpResponse(json.dumps(response_dict), content_type='application/javascript')

    return HttpResponse(json.dumps({}), content_type='application/javascript')
Ejemplo n.º 2
0
        xmlSchema = etree.XMLSchema(flatTree)
    except Exception, e:
        response_dict['errors'] = e.message.replace("'","")
        return HttpResponse(json.dumps(response_dict), content_type='application/javascript')
    
    hash = XSDhash.get_hash(content) 
    dependencies = []
    for uri in request.session["includedTypesCompose"]:
        url = urlparse(uri)
        id = url.query.split("=")[1]
        dependencies.append(id)
    template = Template(title=template_name, filename=template_name, content=content, hash=hash, user=str(request.user.id), dependencies=dependencies)
    #We add default exporters
    try:
        exporters = Exporter.objects.filter(available_for_all=True)
        template.exporters = exporters
    except:
        pass

    template.save()
    
    MetaSchema(schemaId=str(template.id), flat_content=flatStr, api_content=content).save()
    
    return HttpResponse(json.dumps(response_dict), content_type='application/javascript')


################################################################################
# 
# Function Name: save_type(request)
# Inputs:        request - HTTP request
# Outputs:       JSON 
Ejemplo n.º 3
0
def save_object(request):
    print 'BEGIN def save_object(request)'

    objectName = None
    objectFilename = None
    objectContent = None
    objectType = None
    objectFlat = None
    objectApiurl = None

    if ('uploadObjectValid' in request.session
            and request.session['uploadObjectValid'] == True
            and 'uploadObjectName' in request.session
            and request.session['uploadObjectName'] is not None
            and 'uploadObjectFilename' in request.session
            and request.session['uploadObjectFilename'] is not None
            and 'uploadObjectContent' in request.session
            and request.session['uploadObjectContent'] is not None
            and 'uploadObjectType' in request.session
            and request.session['uploadObjectType'] is not None):
        objectName = request.session['uploadObjectName']
        objectFilename = request.session['uploadObjectFilename']
        objectContent = request.session['uploadObjectContent']
        objectType = request.session['uploadObjectType']
        if 'uploadObjectFlat' in request.session and request.session[
                'uploadObjectFlat'] is not None:
            objectFlat = request.session['uploadObjectFlat']
        else:
            objectFlat = None
        if 'uploadObjectAPIurl' in request.session and request.session[
                'uploadObjectAPIurl'] is not None:
            objectApiurl = request.session['uploadObjectAPIurl']
        else:
            objectApiurl = None
        if 'uploadDependencies' in request.session and request.session[
                'uploadDependencies'] is not None:
            dependencies = request.session['uploadDependencies']
        else:
            dependencies = None

        hash = XSDhash.get_hash(objectContent)
        # save the object
        if objectType == "Template":
            objectVersions = TemplateVersion(nbVersions=1,
                                             isDeleted=False).save()
            object = Template(title=objectName,
                              filename=objectFilename,
                              content=objectContent,
                              version=1,
                              templateVersion=str(objectVersions.id),
                              hash=hash).save()
            #We add default exporters
            try:
                exporters = Exporter.objects.filter(available_for_all=True)
                object.exporters = exporters
            except:
                pass
        elif objectType == "Type":
            objectVersions = TypeVersion(nbVersions=1, isDeleted=False).save()
            object = Type(title=objectName,
                          filename=objectFilename,
                          content=objectContent,
                          version=1,
                          typeVersion=str(objectVersions.id),
                          hash=hash).save()
            buckets = request.POST.getlist('buckets[]')
            for bucket_id in buckets:
                bucket = Bucket.objects.get(pk=bucket_id)
                bucket.types.append(str(objectVersions.id))
                bucket.save()

        objectVersions.versions = [str(object.id)]
        objectVersions.current = str(object.id)
        objectVersions.save()
        object.save()

        if objectFlat is not None and objectApiurl is not None and dependencies is not None:
            MetaSchema(schemaId=str(object.id),
                       flat_content=objectFlat,
                       api_content=objectApiurl).save()
            object.dependencies = dependencies
            object.save()

        clear_object(request)
    else:
        response_dict = {'errors': 'True'}
        return HttpResponse(json.dumps(response_dict),
                            content_type='application/javascript')

    return HttpResponse(json.dumps({}), content_type='application/javascript')
Ejemplo n.º 4
0
    hash = XSDhash.get_hash(content)
    dependencies = []
    for uri in request.session["includedTypesCompose"]:
        url = urlparse(uri)
        id = url.query.split("=")[1]
        dependencies.append(id)
    template = Template(title=template_name,
                        filename=template_name,
                        content=content,
                        hash=hash,
                        user=str(request.user.id),
                        dependencies=dependencies)
    #We add default exporters
    try:
        exporters = Exporter.objects.filter(available_for_all=True)
        template.exporters = exporters
    except:
        pass

    template.save()

    MetaSchema(schemaId=str(template.id),
               flat_content=flatStr,
               api_content=content).save()

    return HttpResponse(json.dumps(response_dict),
                        content_type='application/javascript')


################################################################################
#