Esempio n. 1
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)
Esempio n. 2
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)
Esempio n. 3
0
 def _save(self, form):
     # Save treatment.
     try:
         xsl_transformation_api.upsert(self.object)
     except NotUniqueError:
         form.add_error(
             None,
             "An object with the same name already exists. Please choose "
             "another name.")
     except Exception, e:
         form.add_error(None, e.message)
Esempio n. 4
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))
Esempio n. 5
0
    def test_xsl_transformation_upsert_raises_exception_if_bad_namespace(
            self, mock_save):
        # Arrange
        mock_name = "xslt_name"
        mock_filename = "xslt_filename"
        mock_content = "<root></root>"

        mock_xslt = _create_xsl_transformation(name=mock_name,
                                               filename=mock_filename,
                                               content=mock_content)

        mock_save.return_value = mock_xslt

        # Act + Assert
        with self.assertRaises(exceptions.ApiError):
            xsl_transformation_api.upsert(mock_xslt)
Esempio n. 6
0
    def test_xsl_transformation_upsert_return_xsl_transformation(
            self, mock_save):
        # Arrange
        mock_name = "xslt_name"
        mock_filename = "xslt_filename"
        mock_content = "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> " \
                       "<xsl:output method='html' indent='yes' encoding='UTF-8' /><root></root></xsl:stylesheet>"

        mock_xslt = _create_xsl_transformation(name=mock_name,
                                               filename=mock_filename,
                                               content=mock_content)

        mock_save.return_value = mock_xslt

        # Act
        result = xsl_transformation_api.upsert(mock_xslt)

        # Assert
        self.assertIsInstance(result, XslTransformation)
Esempio n. 7
0
 def update(self, instance, validated_data):
     instance.name = validated_data.get('name', instance.name)
     instance.content = validated_data.get('content', instance.content)
     instance.filename = validated_data.get('filename', instance.filename)
     return xsl_api.upsert(instance)
Esempio n. 8
0
 def create(self, validated_data):
     return xsl_api.upsert(XslTransformation(**validated_data))
Esempio n. 9
0
 def update(self, instance, validated_data):
     instance.name = validated_data.get("name", instance.name)
     instance.content = validated_data.get("content", instance.content)
     instance.filename = validated_data.get("filename", instance.filename)
     return xsl_api.upsert(instance)