コード例 #1
0
 def test_getListNameFromDependencies_Type(self):
     Type(title='testType',
          filename='filename',
          content='content',
          hash='hash').save()
     self.assertEquals(
         'testType',
         getListNameFromDependencies(list(Type.objects(title='testType'))))
コード例 #2
0
 def createType(self, title='test', filename='test', user=None):
     countType = len(Type.objects())
     hash = XSDhash.get_hash('<test>test xmldata</test>')
     objectVersions = self.createTypeVersion()
     type = Type(title=title,
                 filename=filename,
                 content='<test>test xmldata</test>',
                 version=1,
                 typeVersion=str(objectVersions.id),
                 hash=hash,
                 user=str(user)).save()
     self.assertEquals(len(Type.objects()), countType + 1)
     return type
コード例 #3
0
 def test_delete_type_with_dependencies(self):
     type = self.createType()
     Type(title='testType',
          filename='filename',
          content='content',
          hash='hash',
          dependencies=[str(type.id)]).save()
     Template(title='testTemplate',
              filename='filename',
              content='content',
              hash='hash',
              dependencies=[str(type.id)]).save()
     listDependencies = delete_type(str(type.id))
     self.assertEquals(len(Type.objects()), 2)
     self.assertEquals(len(TypeVersion.objects()), 1)
     self.assertEquals(listDependencies, 'testType, testTemplate')
コード例 #4
0
def save_version(request):
    print 'BEGIN def saveVersion(request, objectType)'

    versionFilename = None
    versionContent = None
    objectVersionID = None
    objectType = None

    if ('uploadVersionValid' in request.session
            and request.session['uploadVersionValid'] == True
            and 'uploadVersionID' in request.session
            and request.session['uploadVersionID'] is not None
            and 'uploadVersionType' in request.session
            and request.session['uploadVersionType'] is not None
            and 'uploadVersionFilename' in request.session
            and request.session['uploadVersionFilename'] is not None
            and 'uploadVersionContent' in request.session
            and request.session['uploadVersionContent'] is not None):
        versionFilename = request.session['uploadVersionFilename']
        versionContent = request.session['uploadVersionContent']
        objectVersionID = request.session['uploadVersionID']
        objectType = request.session['uploadVersionType']
        if 'uploadVersionFlat' in request.session and request.session[
                'uploadVersionFlat'] is not None:
            versionFlat = request.session['uploadVersionFlat']
        else:
            versionFlat = None
        if 'uploadVersionAPIurl' in request.session and request.session[
                'uploadVersionAPIurl'] is not None:
            versionApiurl = request.session['uploadVersionAPIurl']
        else:
            versionApiurl = None
        if 'uploadDependencies' in request.session and request.session[
                'uploadDependencies'] is not None:
            dependencies = request.session['uploadDependencies']
        else:
            dependencies = None

        hash = XSDhash.get_hash(versionContent)
        # save the object
        if objectType == "Template":
            objectVersions = TemplateVersion.objects.get(pk=objectVersionID)
            objectVersions.nbVersions += 1
            object = Template.objects.get(pk=objectVersions.current)
            newObject = Template(title=object.title,
                                 filename=versionFilename,
                                 content=versionContent,
                                 version=objectVersions.nbVersions,
                                 templateVersion=objectVersionID,
                                 hash=hash).save()
        elif objectType == "Type":
            objectVersions = TypeVersion.objects.get(pk=objectVersionID)
            objectVersions.nbVersions += 1
            object = Type.objects.get(pk=objectVersions.current)
            newObject = Type(title=object.title,
                             filename=versionFilename,
                             content=versionContent,
                             version=objectVersions.nbVersions,
                             typeVersion=objectVersionID,
                             hash=hash).save()

        objectVersions.versions.append(str(newObject.id))
        objectVersions.save()

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

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

    return HttpResponse(json.dumps({}), content_type='application/javascript')
コード例 #5
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')
コード例 #6
0
ファイル: ajax.py プロジェクト: hzhao1230/NanoMine
        xmlSchema = etree.XMLSchema(flatTree)
    except Exception, e:
        response_dict['errors'] = "Not a valid XML document."
        response_dict['message'] = 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)
    type = Type(title=type_name,
                filename=type_name,
                content=content,
                user=str(request.user.id),
                hash=hash,
                dependencies=dependencies)
    type.save()
    MetaSchema(schemaId=str(type.id),
               flat_content=flatStr,
               api_content=content).save()

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


################################################################################
#
# Function Name: get_occurrences(request)
# Inputs:        request - HTTP request
コード例 #7
0
    flattener = XSDFlattenerMDCS(content)
    flatStr = flattener.get_flat()
    flatTree = etree.fromstring(flatStr)

    try:
        # is it a valid XML schema ?
        xmlSchema = etree.XMLSchema(flatTree)
    except Exception, e:
        dajax.script("""
            $("#new-type-error").html("<font color='red'>Not a valid XML schema.</font><br/>"""
                     + e.message.replace("'", "") + """ ");
        """)
        return dajax.json()

    type = Type(title=typeName,
                filename=typeName,
                content=content,
                user=request.user.id)
    type.save()
    MetaSchema(schemaId=str(type.id),
               flat_content=flatStr,
               api_content=content).save()

    dajax.script("""
        saveTemplateCallback();
        $("#dialog-save-type").dialog("close");
    """)
    return dajax.json()


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