Beispiel #1
0
    def generate_xslt(self):
        """Generate xsl transformation .

        Returns:

        """

        content = '<?xml version="1.0" encoding="UTF-8"?> \
                <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> \
                    <xsl:template match="@* | node()">   \
                        <xsl:copy> \
                            <xsl:apply-templates select="@* | node()"/> \
                        </xsl:copy> \
                    </xsl:template> \
                    <xsl:template match="test"> \
                        <xsl:copy-of select="."/> \
                        <element>new_element</element> \
                    </xsl:template> \
                </xsl:stylesheet>'

        xsl_transformation = XslTransformation(
            name="xsl_transformation",
            filename="xsl_transformation.xsl",
            content=content,
        )

        self.xsl_transformation = xsl_transformation.save()
Beispiel #2
0
def _set_template_xsl_rendering_fields(template_xsl_rendering):
    """ Sets TemplateXslRendering fields.

    Returns:
        TemplateXslRendering with assigned fields.

    """
    template_xsl_rendering.template = Template()
    template_xsl_rendering.template.id = ObjectId()
    template_xsl_rendering.list_xslt = XslTransformation()
    template_xsl_rendering.detail_xslt = XslTransformation()

    return template_xsl_rendering
Beispiel #3
0
def _create_xsl_transform():
    """Create xsl transform

    Args:


    Returns:
    """
    content = (
        '<?xml version="1.0" encoding="UTF-8"?>'
        '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">'
        "<!-- Identity transform -->"
        '<xsl:template match="@* | node()">'
        "<xsl:copy>"
        '         <xsl:apply-templates select="@* | node()"/>'
        "      </xsl:copy>"
        " </xsl:template>"
        ' <xsl:template match="test">'
        '     <xsl:copy-of select="."/>'
        "         <additional>34</additional>"
        "</xsl:template>"
        "</xsl:stylesheet>")

    return XslTransformation(name="test_trans",
                             filename="test_trans.xsl",
                             content=content)
Beispiel #4
0
    def _save_xslt(self, request):
        """Save an XSLT.

        Args:
            request: Request.

        """
        try:
            # get the XSLT name
            name = request.POST['name']
            # get the file from the form
            xsd_file = request.FILES['upload_file']
            # read the content of the file
            xsd_data = read_xsd_file(xsd_file)
            xslt = XslTransformation(name=name,
                                     filename=xsd_file.name,
                                     content=xsd_data)
            xslt_transformation_api.upsert(xslt)

            return HttpResponseRedirect(reverse("core_main_app_xslt"))
        except Exception, e:
            self.context.update({'errors': html_escape(e.message)})
            return render(request,
                          'core_main_app/common/xslt/upload.html',
                          context=self.context)
Beispiel #5
0
def _get_or_create_xslt(filename):
    """ Get or create an xslt.

    Args:
        filename: XSLT filename.

    Returns:
        XSLT.

    """
    try:
        return xslt_transformation_api.get_by_name(filename)
    except exceptions.ApiError:
        # Get XSLT.
        list_xslt_path = finders.find(join(XSL_FOLDER_PATH, filename))
        # Read content.
        list_xsl_data = read_file_content(list_xslt_path)
        # Create the XSLT.
        list_xslt = XslTransformation(name=filename,
                                      filename=filename,
                                      content=list_xsl_data)
        return xslt_transformation_api.upsert(list_xslt)
    except Exception, e:
        raise Exception("Impossible to add the xslt {0} : {1} ".format(
            filename, e.message))
Beispiel #6
0
    def generate_template_xsl_rendering_collection(self):
        """Generate a TemplateXslRendering collection.

        Returns:

        """
        # NOTE: no real file to avoid using unsupported GridFS mock

        self.template_1 = Template(filename="template_1.xsd",
                                   content="content1",
                                   hash="hash1").save()
        self.template_2 = Template(filename="template_2.xsd",
                                   content="content2",
                                   hash="hash2").save()
        self.template_xsl_rendering_1 = TemplateXslRendering(
            template=str(self.template_1.id)).save()
        self.xsl_transformation_3 = XslTransformation(
            name="xsl_transformation_3",
            filename="xsl_transformation_3",
            content="content_3",
        ).save()

        self.template_xsl_rendering_2 = TemplateXslRendering(
            template=str(self.template_2.id),
            default_detail_xslt=str(self.xsl_transformation_3.id),
            list_detail_xslt=[str(self.xsl_transformation_3.id)],
        ).save()

        self.template_xsl_rendering_collection = [
            self.template_xsl_rendering_1,
            self.template_xsl_rendering_2,
        ]
Beispiel #7
0
    def _save_xslt(self, request):
        """Saves an XSLT.

        Args:
            request: Request.

        """
        try:
            # get the XSLT name
            name = request.POST["name"]
            # get the file from the form
            xsd_file = request.FILES["upload_file"]
            # read the content of the file
            xsd_data = read_xsd_file(xsd_file)
            xslt = XslTransformation(name=name,
                                     filename=xsd_file.name,
                                     content=xsd_data)
            xslt_transformation_api.upsert(xslt)

            return HttpResponseRedirect(reverse("admin:core_main_app_xslt"))
        except exceptions.NotUniqueError:
            self.context.update(
                {"errors": html_escape("This name already exists.")})
            return admin_render(request,
                                "core_main_app/admin/xslt/upload.html",
                                context=self.context)
        except Exception as e:
            self.context.update({"errors": html_escape(str(e))})
            return admin_render(request,
                                "core_main_app/admin/xslt/upload.html",
                                context=self.context)
Beispiel #8
0
def get_by_name(xslt_name):
    """ Get an XSLT document.

    Returns:
    """
    try:
        return XslTransformation.get_by_name(xslt_name)
    except:
        raise exceptions.ApiError(
            "No transformation can be found with the given name")
Beispiel #9
0
    def generate_data_collection(self):
        """ Generate a Data collection.

        Returns:

        """
        content = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' \
                  '<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">' \
                  '<xsl:template></xsl:template></xsl:stylesheet>'
        self.data_1 = XslTransformation(name="name_1", filename='filename_1.xsd', content=content).save()
        self.data_collection = [self.data_1]
Beispiel #10
0
def get_by_id(xslt_id):
    """ Get an XSLT document by its id.

    Args:
        xslt_id: Id.

    Returns:
        XslTransformation object.

    """
    return XslTransformation.get_by_id(xslt_id)
Beispiel #11
0
    def test_is_staff_returns_http_204(self, xslt_serializer_data,
                                       xslt_get_by_id, xslt_delete):
        xslt_get_by_id.return_value = XslTransformation("mock", "mock", "mock")
        xslt_serializer_data.return_value = True

        response = RequestMock.do_request_delete(
            xslt_views.XslTransformationDetail.as_view(),
            create_mock_user('1', is_staff=True),
            param={'pk': self.fake_id})

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
def _set_oai_xsl_template_fields(oai_xsl_template):
    """ Set OaiXslTemplate fields.

    Returns:
        OaiXslTemplate with assigned fields.

    """
    oai_xsl_template.template = Template()
    oai_xsl_template.template.id = ObjectId()
    oai_xsl_template.xslt = XslTransformation()
    oai_xsl_template.oai_metadata_format = OaiProviderMetadataFormat()

    return oai_xsl_template
Beispiel #13
0
    def generate_xsl_transformation_collection(self):
        """Generate a XslTransformation collection.

        Returns:

        """
        # NOTE: no real file to avoid using unsupported GridFS mock

        self.xsl_transformation_1 = XslTransformation(
            name="xsl_transformation_1",
            filename="xsl_transformation_1",
            content="content1",
        ).save()
        self.xsl_transformation_2 = XslTransformation(
            name="xsl_transformation_2",
            filename="xsl_transformation_2",
            content="content_2",
        ).save()

        self.xsl_transformation_collection = [
            self.xsl_transformation_1,
            self.xsl_transformation_2,
        ]
Beispiel #14
0
    def generate_data_collection(self):
        """Generate a Data collection.

        Returns:

        """
        content = (
            '<?xml version="1.0" encoding="UTF-8"?>'
            '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">'
            '<xsl:template match="/"></xsl:template></xsl:stylesheet>')
        self.data_1 = XslTransformation(name="name_1",
                                        filename="filename_1.xsd",
                                        content=content).save()
        self.data_collection = [self.data_1]
Beispiel #15
0
def _create_xsl_transformation(name=None, filename=None, content=None):
    xsl_transformation = XslTransformation()
    xsl_transformation.name = name
    xsl_transformation.filename = filename
    xsl_transformation.content = content
    return xsl_transformation
Beispiel #16
0
 def create(self, validated_data):
     return xsl_api.upsert(XslTransformation(**validated_data))
Beispiel #17
0
def get_all():
    """ Get list of XSLT document.

    Returns:
    """
    return XslTransformation.get_all()