Esempio n. 1
0
def resolve_dependencies(request):
    """Resolve import/includes to avoid local references.

    Args:
        request:

    Returns:

    """
    try:
        # Get the parameters
        name = request.POST.get('name', None)
        version_manager_id = request.POST.get('version_manager_id', '')
        filename = request.POST['filename']
        xsd_content = request.POST['xsd_content']
        schema_locations = request.POST.getlist('schemaLocations[]')
        dependencies = request.POST.getlist('dependencies[]')

        # create new object
        template = Template(filename=filename,
                            content=_get_xsd_content_from_html(xsd_content))
        init_template_with_dependencies(
            template, _get_dependencies_dict(schema_locations, dependencies))

        # get the version manager or create a new one
        if version_manager_id != '':
            template_version_manager = version_manager_api.get(
                version_manager_id)
        else:
            template_version_manager = TemplateVersionManager(title=name)
        template_version_manager_api.insert(template_version_manager, template)
    except Exception, e:
        return HttpResponseBadRequest(e.message)
Esempio n. 2
0
    def create(self, validated_data):
        """
        Create and return a new `Type` instance, given the validated data.
        """
        type_object = Type(
            filename=validated_data["filename"],
            content=validated_data["content"],
            user=validated_data["user"],
        )
        type_version_manager_object = validated_data["type_version_manager"]

        # load dependencies
        dependencies_dict = load_dependencies(validated_data)

        # Update the content of the template with dependencies
        init_template_with_dependencies(type_object,
                                        dependencies_dict,
                                        request=self.context["request"])

        # Create the template and its template version manager
        type_version_manager_api.insert(type_version_manager_object,
                                        type_object,
                                        request=self.context["request"])

        return type_object
Esempio n. 3
0
    def create(self, validated_data):
        """
        Create and return a new `Type` instance, given the validated data.
        """
        type_object = Type(filename=validated_data['filename'],
                           content=validated_data['content'])
        type_version_manager_object = validated_data['type_version_manager']

        # load dependencies
        dependencies_dict = load_dependencies(validated_data)

        # Update the content of the template with dependencies
        init_template_with_dependencies(type_object, dependencies_dict)

        # Create the template and its template version manager
        type_version_manager_api.insert(type_version_manager_object, type_object)

        return type_object
Esempio n. 4
0
def resolve_dependencies(request):
    """Resolve import/includes to avoid local references.

    Args:
        request:

    Returns:

    """
    try:
        # Get the parameters
        name = request.POST.get("name", None)
        version_manager_id = request.POST.get("version_manager_id", "")
        filename = request.POST["filename"]
        xsd_content = request.POST["xsd_content"]
        schema_locations = request.POST.getlist("schemaLocations[]")
        dependencies = request.POST.getlist("dependencies[]")
        buckets = request.POST.getlist("buckets[]")

        # create new object
        type_object = Type(filename=filename,
                           content=_get_xsd_content_from_html(xsd_content))
        init_template_with_dependencies(
            type_object,
            _get_dependencies_dict(schema_locations, dependencies),
            request=request,
        )

        # get the version manager or create a new one
        if version_manager_id != "":
            type_version_manager = version_manager_api.get(version_manager_id,
                                                           request=request)
        else:
            type_version_manager = TypeVersionManager(title=name)
        type_version_manager_api.insert(type_version_manager,
                                        type_object,
                                        request=request,
                                        list_bucket_ids=buckets)
    except Exception as e:
        return HttpResponseBadRequest(escape(str(e)),
                                      content_type="application/javascript")

    return HttpResponse(json.dumps({}), content_type="application/javascript")