コード例 #1
0
def _add_template():
    """Add the registry template.

    Returns:

    """
    xsd_filepath = REGISTRY_XSD_FILEPATH
    xsd_filename = REGISTRY_XSD_FILENAME
    if xsd_filename == "":
        raise Exception(
            "Please configure the REGISTRY_XSD_FILENAME setting in your project."
        )
    if xsd_filepath == "":
        raise Exception(
            "Please configure the REGISTRY_XSD_FILEPATH setting in your project."
        )
    try:
        version_manager_api.get_active_global_version_manager_by_title(
            xsd_filename)
    except exceptions.DoesNotExist:
        default_xsd_path = finders.find(xsd_filepath)
        xsd_data = read_file_content(default_xsd_path)
        template = Template(filename=xsd_filename, content=xsd_data)
        template_version_manager = TemplateVersionManager(title=xsd_filename)
        template_version_manager_api.insert(template_version_manager, template)
    except Exception as e:
        logger.error("Impossible to add the template: {0}".format(str(e)))
コード例 #2
0
    def test_version_manager_get_raises_exception_if_object_does_not_exist(
            self, mock_get_active_global):
        # Arrange
        mock_absent_title = "Schema"
        mock_get_active_global.side_effect = mongoengine_errors.DoesNotExist

        # Act + Assert
        with self.assertRaises(mongoengine_errors.DoesNotExist):
            version_manager_api.get_active_global_version_manager_by_title(
                mock_absent_title)
コード例 #3
0
def start_curate(request, role):
    """ Start curate with role parameter.

    Args:
        request:
        role:

    Returns:

    """
    assets = {
        "js": [
            {
                "path": 'core_curate_app/user/js/select_template.js',
                "is_raw": False
            },
            {
                "path": 'core_curate_registry_app/user/js/start_curate.js',
                "is_raw": False
            },

        ],
        "css": ['core_curate_app/user/css/style.css']
    }

    context = {
        'template_id': version_manager_api.get_active_global_version_manager_by_title(REGISTRY_XSD_FILENAME).current,
        'role': role,
    }
    return render(request,
                  'core_curate_app/user/curate.html',
                  assets=assets,
                  context=context)
コード例 #4
0
    def get(self, request, role):
        """Start curate with role parameter.
        Args:
            request:
            role:

        Returns:
        """
        try:
            # Get custom resources for the current template
            custom_resource = custom_resource_api.get_by_current_template_and_slug(
                role, request=request)
        except exceptions.DoesNotExist:
            custom_resource = None

        context = {
            "template_id":
            version_manager_api.get_active_global_version_manager_by_title(
                REGISTRY_XSD_FILENAME, request=request).current,
            "role":
            role,
            "custom_resource":
            custom_resource,
        }
        return render(
            request,
            "core_curate_app/user/curate.html",
            assets=self.assets,
            modals=self.modals,
            context=context,
        )
コード例 #5
0
def get_xsd(request, title, version_number):
    """ Page that allows to retrieve an XML Schema by its title and version number.
    Args:
        request: Request.
        title: Schema title.
        version_number: Version of the schema.

    Returns:
        Flatten Schema.

    """
    try:
        template_version = version_manager_api.get_active_global_version_manager_by_title(
            title)
        template = template_api.get(
            version_manager_api.get_version_by_number(template_version,
                                                      int(version_number)))
        flatten = XSDFlattenerDatabaseOrURL(template.content.encode('utf-8'))
        content_encoded = flatten.get_flat()
        file_obj = StringIO(content_encoded)

        return HttpResponse(file_obj, content_type='text/xml')
    except (exceptions.DoesNotExist, exceptions.ModelError, Exception):
        return HttpResponseBadRequest(
            'Impossible to retrieve the schema with the given name and version.'
        )
コード例 #6
0
def get_xsd(request, title, version_number):
    """Page that allows to retrieve an XML Schema by its title and version
    number.

    Args:
        request: Request.
        title: Schema title.
        version_number: Version of the schema.

    Returns:
        Flatten Schema.

    """
    try:
        template_version = (
            version_manager_api.get_active_global_version_manager_by_title(
                title, request=request))
        template = template_api.get(
            version_manager_api.get_version_by_number(template_version,
                                                      int(version_number),
                                                      request=request),
            request=request,
        )
        content_encoded = XSDFlattenerDatabaseOrURL(
            template.content, request=request).get_flat()
        file_obj = StringIO(content_encoded)

        return HttpResponse(file_obj, content_type="text/xml")
    except Exception as e:
        return HttpResponseBadRequest(
            "Impossible to retrieve the schema with the given name and "
            "version: %s" % escape(str(e)))
コード例 #7
0
def _get_registry_template():
    """ Get the registry template.

    Returns:
        Registry Template.

    """
    try:
        return version_manager_api.get_active_global_version_manager_by_title(
            REGISTRY_XSD_FILENAME)
    except Exception, e:
        raise Exception("Impossible to get the template {0} : {1} ".format(
            REGISTRY_XSD_FILENAME, e.message))
コード例 #8
0
    def test_version_manager_get_returns_version_manager(
            self, mock_get_active_global):
        # Arrange
        title = "Schema"
        mock_version_manager = _create_mock_version_manager(title=title)

        mock_get_active_global.return_value = mock_version_manager

        # Act
        result = version_manager_api.get_active_global_version_manager_by_title(
            title)

        # Assert
        self.assertIsInstance(result, VersionManager)
コード例 #9
0
def _get_current_template(request):
    """Get the current template.

    Args:
        request:

    Returns:
    """
    current_template_version = (
        version_manager_api.get_active_global_version_manager_by_title(
            REGISTRY_XSD_FILENAME, request=request))
    current_template = template_api.get(current_template_version.current,
                                        request=request)
    return current_template
コード例 #10
0
def _get_current_template():
    """Get the current template.

    Returns:
    """
    current_template_version = (
        version_manager_api.get_active_global_version_manager_by_title(
            REGISTRY_XSD_FILENAME
        )
    )
    current_template = template_api.get(
        version_manager_api.get_current(current_template_version)
    )
    return current_template
コード例 #11
0
def get_current_registry_template():
    """Get the current template used for the registry.

    Returns:
        Template:

    """
    try:
        template_version = (
            version_manager_api.get_active_global_version_manager_by_title(
                REGISTRY_XSD_FILENAME))
        return template_api.get(
            version_manager_api.get_current(template_version))
    except Exception as e:
        raise exceptions.ModelError(str(e))
コード例 #12
0
def get_current_registry_template(request):
    """Get the current template used for the registry.

    Args:
        request:

    Returns:

    """
    try:
        template_version = (
            version_manager_api.get_active_global_version_manager_by_title(
                REGISTRY_XSD_FILENAME, request=request))
        return template_api.get(template_version.current, request=request)
    except Exception as e:
        raise exceptions.ModelError(str(e))
コード例 #13
0
    def test_version_manager_get_returns_version_manager(
            self, mock_get_active_global):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(mock_user)
        title = "Schema"
        mock_version_manager = _create_mock_version_manager(title=title)

        mock_get_active_global.return_value = mock_version_manager

        # Act
        result = version_manager_api.get_active_global_version_manager_by_title(
            title, request=mock_request)

        # Assert
        self.assertIsInstance(result, VersionManager)
コード例 #14
0
def _init_custom_registry():
    """Init the custom registry.

    Returns:
    """

    try:
        current_template_version = (
            version_manager_api.get_active_global_version_manager_by_title(
                REGISTRY_XSD_FILENAME))
        current_template = template_api.get(
            version_manager_api.get_current(current_template_version))
    except:
        raise Exception("Can't get the current template.")

    if len(custom_resource_api.get_all_by_template(current_template)) > 0:
        print('**********')
        print(custom_resource_api.get_all_by_template(current_template))
        print('**********')
        logger.info(
            "Custom resources related to current template already exist.")
    else:
        json_path = CUSTOM_REGISTRY_FILE_PATH
        if json_path == "":
            raise Exception(
                "Please configure the CUSTOM_REGISTRY_FILE_PATH setting in your project."
            )

        try:
            default_json_path = finders.find(json_path)
            with open(default_json_path) as json_file:
                data = json.load(json_file)
                print('**********')
                print(f'parsing json: {data}')
                print('**********')
                custom_resource_api.parse_and_save(data, current_template)
        except Exception as e:
            logger.error(
                "Impossible to use the custom registry json file: {0}".format(
                    str(e)))