From 32bd4b9e7fd246bade777040d0de64d12b68e667 Mon Sep 17 00:00:00 2001 From: krystofkomanec Date: Thu, 6 Aug 2026 16:36:16 +0200 Subject: [PATCH 1/2] Polish guide wording and links --- docs/about/introduction/knowledge-model.rst | 4 +-- docs/about/introduction/project.rst | 2 +- docs/application/administration/index.rst | 2 +- .../administration/locales/create.rst | 5 ++- .../administration/locales/detail.rst | 2 +- .../administration/locales/import.rst | 4 +-- .../administration/locales/index.rst | 10 +++--- .../administration/roles/index.rst | 6 ++-- .../settings/content/dsw-registry.rst | 6 ++-- .../settings/content/projects.rst | 10 +++--- .../administration/settings/info/index.rst | 2 +- .../administration/settings/info/usage.rst | 2 +- .../settings/system/authentication.rst | 4 +-- .../settings/system/authentication/openid.png | Bin 206043 -> 0 bytes .../administration/settings/system/index.rst | 2 +- .../administration/settings/system/openid.rst | 25 ++++++-------- .../settings/system/organization.rst | 2 +- .../dashboard-and-login-screen.rst | 6 ++-- .../settings/user-interface/index.rst | 2 +- .../settings/user-interface/look-and-feel.rst | 9 +++-- .../administration/users/detail.rst | 4 +-- .../administration/users/index.rst | 4 +-- .../document-templates/editors/index.rst | 2 +- .../document-templates/list/import.rst | 4 +-- .../document-templates/list/index.rst | 2 +- .../knowledge-models/editors/create.rst | 2 +- .../knowledge-models/editors/index.rst | 6 ++-- .../knowledge-models/list/import.rst | 2 +- .../knowledge-models/list/index.rst | 2 +- docs/application/profile/index.rst | 2 +- .../application/profile/settings/api-keys.rst | 2 +- .../profile/settings/connected-accounts.rst | 2 +- .../application/profile/settings/language.rst | 2 +- docs/application/projects/documents.rst | 2 +- docs/application/projects/files.rst | 2 +- .../projects/list/detail/documents.rst | 4 +-- .../projects/list/detail/settings.rst | 6 ++-- .../projects/list/detail/sharing.rst | 8 ++--- docs/application/projects/list/index.rst | 12 +++---- docs/application/projects/list/templates.rst | 6 ++-- docs/conf.py | 16 +++------ docs/index.rst | 14 ++++---- docs/more/development/contributing.rst | 8 ++--- .../document-templates/dev-notes.rst | 3 +- .../document-worker-plugins.rst | 2 +- .../development/document-templates/index.rst | 2 +- .../document-templates/specification.rst | 10 +++--- .../document-templates/steps/excel.rst | 31 +++++++++--------- .../document-templates/steps/jinja.rst | 12 +++---- .../development/document-templates/tdk.rst | 12 +++---- docs/more/development/index.rst | 4 +-- .../integration-questions/index.rst | 4 +-- .../integration-questions/integration-api.rst | 12 +++---- docs/more/development/metamodel-schemas.rst | 12 +++---- docs/more/development/plugins.rst | 8 ++--- docs/more/development/submission-service.rst | 2 +- docs/more/development/vulnerabilities.rst | 2 +- docs/more/miscellaneous/dsw-registry.rst | 4 +-- docs/more/miscellaneous/help.rst | 2 +- docs/more/miscellaneous/index.rst | 2 +- docs/more/miscellaneous/jinja-cheatsheet.rst | 2 +- .../miscellaneous/markdown-cheatsheet.rst | 4 +-- .../configuration/configuration.rst | 19 +++++------ .../configuration/document-templates.rst | 2 +- .../configuration/email-templates.rst | 3 +- .../self-hosted-dsw/configuration/index.rst | 2 +- .../self-hosted-dsw/configuration/plugins.rst | 2 +- docs/more/self-hosted-dsw/deployment.rst | 12 +++---- docs/more/self-hosted-dsw/faq-notes.rst | 14 ++++---- docs/more/self-hosted-dsw/index.rst | 6 ++-- .../self-hosted-dsw/upgrade-guidelines.rst | 12 +++---- 71 files changed, 202 insertions(+), 219 deletions(-) delete mode 100644 docs/application/administration/settings/system/authentication/openid.png diff --git a/docs/about/introduction/knowledge-model.rst b/docs/about/introduction/knowledge-model.rst index c1eee85c..865c8e14 100644 --- a/docs/about/introduction/knowledge-model.rst +++ b/docs/about/introduction/knowledge-model.rst @@ -82,7 +82,7 @@ The value question asks for a single value that users type in. There are many di The input field differs based on the value type (simple input for string, date picker for date, etc.). Some of these have a check whether the entered value is valid (such as valid email or URL) and displays a warning if not. -Value Question also can have validations. Validations differ based on the value type. For example, we can set a minimum and maximum value for a number, or a minimum and maximum length for a string. For text based types (text, email, URL), we can set also use a regular expression to create validations. +Value Question can also have validations. Validations differ based on the value type. For example, we can set a minimum and maximum value for a number, or a minimum and maximum length for a string. For text-based types (text, email, URL), we can also use a regular expression to create validations. .. _integration-question: @@ -241,7 +241,7 @@ Integrations define a connection to an external service or resource where we can API Integration ^^^^^^^^^^^^^^^ -API integration connects to an external service API to search for the answers. We need to provide some **request** and **response** configuration, so |project_name| can use the API. +API integration connects to an external service API to search for the answers. We need to provide some **request** and **response** configuration, so DSW can use the API. .. _annotations: diff --git a/docs/about/introduction/project.rst b/docs/about/introduction/project.rst index a30fbd4c..fab239eb 100644 --- a/docs/about/introduction/project.rst +++ b/docs/about/introduction/project.rst @@ -23,7 +23,7 @@ The questionnaire is part of the project where we fill in our answers. It is gen Documents ========= -The outcome of our endeavors in |project_name| should be the data management plan, the document. Once we have enough answers to the questionnaire, we can generate a document using a document template. These documents are saved within the project. We can create as many as we wish with different document templates and formats. We can also set up a default document template for the project and quickly see a preview of the document. +The outcome of our endeavors in DSW should be the data management plan, the document. Once we have enough answers to the questionnaire, we can generate a document using a document template. These documents are saved within the project. We can create as many as we wish with different document templates and formats. We can also set up a default document template for the project and quickly see a preview of the document. :ref:`Learn how to work with the documents →` diff --git a/docs/application/administration/index.rst b/docs/application/administration/index.rst index 60860398..afa0d166 100644 --- a/docs/application/administration/index.rst +++ b/docs/application/administration/index.rst @@ -3,7 +3,7 @@ Administration ************** -Administration section serves as the name suggests to users with permission to manage the |project_name| instance. By navigating via :guilabel:`Administration` item from the main menu, we can manage the things listed below. +Administration section serves as the name suggests to users with permission to manage the DSW instance. By navigating via :guilabel:`Administration` item from the main menu, we can manage the things listed below. ---- diff --git a/docs/application/administration/locales/create.rst b/docs/application/administration/locales/create.rst index cf52044b..c2d1f8af 100644 --- a/docs/application/administration/locales/create.rst +++ b/docs/application/administration/locales/create.rst @@ -1,7 +1,7 @@ Create Locale ************* -We can create a new locale directly in |project_name| by pressing :guilabel:`Create` from :doc:`./index`. We need to fill the details about the new locale such as name, description, language code (`RFC5646 `__, e.g. ``en`` or ``en-GB``), locale ID, locale version, license, README (with Markdown syntax), and recommended app version. The recommended app version captures for which version of the |project_name| is this locale intended and compatible with (it can be used in other versions as well but may have some untranslated texts). +We can create a new locale directly in DSW by pressing :guilabel:`Create` from :doc:`./index`. We need to fill the details about the new locale such as name, description, language code (`RFC5646 `__, e.g. ``en`` or ``en-GB``), locale ID, locale version, license, README (with Markdown syntax), and recommended app version. The recommended app version captures for which version of the DSW is this locale intended and compatible with (it can be used in other versions as well but may have some untranslated texts). Finally, a PO file is requested from us. We can create such PO file in a standard (`gettext `__-based) way. @@ -9,9 +9,8 @@ Similarly we can create a PO file for the emails. The needed POT files are placed in the localization repository `wizard-locales `__ (select the desired release and there is ``default.pot`` asset). -Recommended tool for creating the localization is the `Poedit `__. +Recommended tool for creating the localization is the `Poedit `__. .. figure:: create/form.png Form for creating a new locale. - diff --git a/docs/application/administration/locales/detail.rst b/docs/application/administration/locales/detail.rst index 804badb0..f97ede4d 100644 --- a/docs/application/administration/locales/detail.rst +++ b/docs/application/administration/locales/detail.rst @@ -1,7 +1,7 @@ Locale Detail ************* -The detail of a locale provides us information about a locale after navigating to it from :doc:`./index`. The detail shows basic information about the locale such as its name, ID, language code (`RFC5646 `__, e.g. ``en`` or ``en-GB``), version, recommended compatible |project_name| version, license, and indication whether the locale is enabled or not. +The detail of a locale provides us information about a locale after navigating to it from :doc:`./index`. The detail shows basic information about the locale such as its name, ID, language code (`RFC5646 `__, e.g. ``en`` or ``en-GB``), version, recommended compatible DSW version, license, and indication whether the locale is enabled or not. The main part of the detail is the README of the locale that should contain basic information and changelog. In the right panel under the basic information, we can navigate to other versions of the locale. diff --git a/docs/application/administration/locales/import.rst b/docs/application/administration/locales/import.rst index 30afc86c..c5f8aba6 100644 --- a/docs/application/administration/locales/import.rst +++ b/docs/application/administration/locales/import.rst @@ -11,7 +11,7 @@ We can import an existing locale by navigating to :menuselection:`Settings → L From DSW Registry ================= -If the |project_name| instance is connected to the `DSW Registry `__, it is possible to import locales from it by entering the **locale ID** of desired template (e.g. ``dsw:cs:0.2.0``) and pressing the :guilabel:`Import` button. +If the DSW instance is connected to the `DSW Registry `__, it is possible to import locales from it by entering the **locale ID** of desired template (e.g. ``dsw:cs:0.2.0``) and pressing the :guilabel:`Import` button. .. NOTE:: @@ -28,7 +28,7 @@ If the |project_name| instance is connected to the `DSW Registry `__ and service for translating using web browser `localize.ds-wizard.org `__. + We support community of DSW translators by managing the repository `ds-wizard/wizard-locales `__ and service for translating using web browser `localize.ds-wizard.org `__. .. figure:: index/list.png @@ -39,4 +39,4 @@ If there is a locale with newer version available in the `DSW Registry Create - Detail \ No newline at end of file + Detail diff --git a/docs/application/administration/roles/index.rst b/docs/application/administration/roles/index.rst index d306579b..6d4fc363 100644 --- a/docs/application/administration/roles/index.rst +++ b/docs/application/administration/roles/index.rst @@ -3,12 +3,12 @@ Roles ***** -Roles define what users can do across the |project_name| instance. Each user has one global role. The role contains a set of permissions, such as whether the user can manage users, configure settings, work with knowledge models, or access all projects. +Roles define what users can do across the DSW instance. Each user has one global role. The role contains a set of permissions, such as whether the user can manage users, configure settings, work with knowledge models, or access all projects. Default Roles ============= -New |project_name| instances include default roles for the usual workflows: +New DSW instances include default roles for the usual workflows: - **Researcher** for users who mainly create and work on their own projects. - **Data Steward** for users who prepare content such as knowledge models, document templates, and project templates. @@ -35,7 +35,7 @@ Custom roles are useful for cases such as: Role Permissions ================ -Permissions are grouped by the type of work they enable. The available groups depend on the |project_name| edition and enabled features. +Permissions are grouped by the type of work they enable. The available groups depend on the DSW edition and enabled features. Project-related permissions can allow a role to: diff --git a/docs/application/administration/settings/content/dsw-registry.rst b/docs/application/administration/settings/content/dsw-registry.rst index 6bcec657..db5fb4e5 100644 --- a/docs/application/administration/settings/content/dsw-registry.rst +++ b/docs/application/administration/settings/content/dsw-registry.rst @@ -3,11 +3,11 @@ DSW Registry ************ -In this settings, we can configure a connection to DSW Registry that will allow import of various content (Knowledge Models, Document Templates, and Locales) to our |project_name| instance. +In these settings, we can configure a connection to DSW Registry that will allow importing various content (Knowledge Models, Document Templates, and Locales) to our DSW instance. -Upon enabling the DSW Registry option, we are prompted to enter a **Token**. It can be obtained either by direct registration in the `DSW Registry__` or through clicking :guilabel:`Sign up` button. After clicking the button, we will need to enter details about organization (it is prefilled from :doc:`../system/organization`) and email address to which the confirmation will be sent (prefilled by email of the current user). Then, after clicking a link in the confirmation email, the token will be prefilled automatically. After having the token filled in either way, we can :guilabel:`Save` the settings. +Upon enabling the DSW Registry option, we are prompted to enter a **Token**. It can be obtained either by direct registration in the `DSW Registry `__ or by clicking the :guilabel:`Sign up` button. After clicking the button, we will need to enter details about the organization (prefilled from :doc:`../system/organization`) and the email address to which the confirmation will be sent (prefilled with the email of the current user). Then, after clicking a link in the confirmation email, the token will be prefilled automatically. After the token has been filled in either way, we can :guilabel:`Save` the settings. -After successfully setting the DSW Registry, we will see option to import from it for :ref:`Knowledge Models`, :ref:`Document Templates`, and :ref:`Locales`. +After successfully setting the DSW Registry, we will see the option to import from it for :ref:`Knowledge Models`, :ref:`Document Templates`, and :ref:`Locales`. .. NOTE:: diff --git a/docs/application/administration/settings/content/projects.rst b/docs/application/administration/settings/content/projects.rst index 2a706ae5..91fb4fc1 100644 --- a/docs/application/administration/settings/content/projects.rst +++ b/docs/application/administration/settings/content/projects.rst @@ -4,7 +4,7 @@ Projects Project Visibility ================== -If we want to let users select visibility of their projects within the |project_name| instance, we can enable **Project Visibility** feature. If it is disabled, the new projects will have the **Default Project Visibility** which is used when creating a new project: +If we want to let users select visibility of their projects within the DSW instance, we can enable **Project Visibility** feature. If it is disabled, the new projects will have the **Default Project Visibility** which is used when creating a new project: * **Private** = the project is visible only to the users with explicit access to the project. * **Visible - View** = the project is visible in view-only mode to all logged-in users, i.e. all users will be able to see the project in their :ref:`projects list` and access it (but not edit or comment anything unless they are invited with different permissions). @@ -19,7 +19,7 @@ If we want to let users select visibility of their projects within the |project_ Project Sharing =============== -If we want to let users select sharing option of their projects within the |project_name| instance, we can enable **Project Sharing** feature. If it is disabled, the new projects will have the **Default Project Sharing** which is used when creating a new project: +If we want to let users select sharing options for their projects within the DSW instance, we can enable the **Project Sharing** feature. If it is disabled, the new projects will have the **Default Project Sharing** which is used when creating a new project: * **Restricted** = only logged-in users can access the project depending on the project visibility (no public access for anonymous users). * **View with the link** = anyone with the link to the project may open it in view mode and browse it. @@ -34,7 +34,7 @@ If we want to let users select sharing option of their projects within the |proj Anonymous Projects ================== -If we have set Knowledge Model as Public, we can also allow anonymous users to create projects where they will be able to fill questionnaires by enabling **Anonymous Projects**. These anonymous project then work as any other projects with public link set to edit permissions. However, if a logged-in user accesses such a project, then such a user may claim the ownership by clicking :guilabel:`Add to my projects` button. Anonymous users cannot create new documents, for that they must register and open the project as a logged-in user. +If we have set Knowledge Model as Public, we can also allow anonymous users to create projects where they will be able to fill questionnaires by enabling **Anonymous Projects**. These anonymous projects then work as any other projects with public link set to edit permissions. However, if a logged-in user accesses such a project, then they may claim the ownership by clicking the :guilabel:`Add to my projects` button. Anonymous users cannot create new documents; for that, they must register and open the project as a logged-in user. Project Creation @@ -42,7 +42,7 @@ Project Creation * **Templates & Custom** = users can create both projects from project templates and custom projects. * **Templates Only** = users can create projects only from project templates. -* **Custom Only** = users can create only custom projects, they have to select knowledge model and everything else by themselves. +* **Custom Only** = users can create only custom projects, they have to select a knowledge model and everything else by themselves. Summary Report @@ -56,4 +56,4 @@ The **Summary Report** shows how many questions are answered and unanswered in e Project Tagging =============== -If enabled, users will be able to tag their projects (using so-called **Project Tags**) and then use those tags to filter the :ref:`projects list`. The users will be always able to write their own tags but we can provide a list of pre-defined **Default Project Tags** (one per line). +If enabled, users will be able to tag their projects (using so-called **Project Tags**) and then use those tags to filter the :ref:`projects list`. The users will always be able to write their own tags, but we can provide a list of pre-defined **Default Project Tags** (one per line). diff --git a/docs/application/administration/settings/info/index.rst b/docs/application/administration/settings/info/index.rst index 7d484c05..7e8f29da 100644 --- a/docs/application/administration/settings/info/index.rst +++ b/docs/application/administration/settings/info/index.rst @@ -1,7 +1,7 @@ Info **** -The info section of settings simply serves to let us check various information and statistics about the |project_name| instance. +The info section of settings simply serves to let us check various information and statistics about the DSW instance. ---- diff --git a/docs/application/administration/settings/info/usage.rst b/docs/application/administration/settings/info/usage.rst index 31cff309..567257a7 100644 --- a/docs/application/administration/settings/info/usage.rst +++ b/docs/application/administration/settings/info/usage.rst @@ -1,7 +1,7 @@ Usage ***** -Usage allows us quickly see numbers of entities in the |project_name| instance such as number of users, active users, knowledge models, KM editors, templates, projects, or documents. Moreover, we can see storage usage, i.e. how much capacity is being used by documents and templates (their files). We cannot perform any actions on this page. +Usage allows us quickly see numbers of entities in the DSW instance such as number of users, active users, knowledge models, KM editors, templates, projects, or documents. Moreover, we can see storage usage, i.e. how much capacity is being used by documents and templates (their files). We cannot perform any actions on this page. .. figure:: usage/usage.png diff --git a/docs/application/administration/settings/system/authentication.rst b/docs/application/administration/settings/system/authentication.rst index cf73af66..4dbf74d8 100644 --- a/docs/application/administration/settings/system/authentication.rst +++ b/docs/application/administration/settings/system/authentication.rst @@ -8,7 +8,7 @@ The **Default Role** settings option allows us to define which :ref:`role .. WARNING:: - It is recommended to set this to the lowest-privilege role that fits new users. Otherwise, new users may be able to change content or settings for other users in the |project_name| instance. + It is recommended to set this to the lowest-privilege role that fits new users. Otherwise, new users may be able to change content or settings for other users in the DSW instance. .. NOTE:: @@ -21,7 +21,7 @@ Internal For internal authentication, we can set: - **Registration** - whether users can sign up on their own or not. -- **Non-Admin Login** - whether non-admin users can log in to the |project_name| instance or not. +- **Non-Admin Login** - whether non-admin users can log in to the DSW instance or not. - **Two-Factor Authentication** - whether users need to confirm their login with a one-time code sent to their email address or not. - **Session Expiration** - how long the user session is valid before the user needs to log in again in hours. - **User Email Link Expiration** - how long the email links (e.g., for password reset) are valid before they expire and cannot be used anymore in hours. diff --git a/docs/application/administration/settings/system/authentication/openid.png b/docs/application/administration/settings/system/authentication/openid.png deleted file mode 100644 index 13a0a5e20322a8f405baa42db4dcd7bc55caea8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206043 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 z 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

-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 diff --git a/docs/application/administration/settings/system/index.rst b/docs/application/administration/settings/system/index.rst index a20193ea..1395fba9 100644 --- a/docs/application/administration/settings/system/index.rst +++ b/docs/application/administration/settings/system/index.rst @@ -1,7 +1,7 @@ System ****** -System settings allow us to configure basics about the organization running the |project_name| instance, how can user register and login, and finally the privacy and support information for the users. +System settings allow us to configure basics about the organization running the DSW instance, how can user register and login, and finally the privacy and support information for the users. ---- diff --git a/docs/application/administration/settings/system/openid.rst b/docs/application/administration/settings/system/openid.rst index 5d17b51d..bfdf200c 100644 --- a/docs/application/administration/settings/system/openid.rst +++ b/docs/application/administration/settings/system/openid.rst @@ -3,9 +3,9 @@ OpenID ****** -Using these settings we can add `OpenID `__ configuration to allow logging into the DSW via external identity provider. +Using these settings, we can add `OpenID `__ configuration to allow logging into DSW via an external identity provider. -DSW supports Microsoft Azure, ORCID, as well as any other OpenID providers. Following are detailed description of the setups for these options. +DSW supports Microsoft Azure, ORCID, and other OpenID providers. The following sections describe the setup for these options. .. NOTE:: @@ -26,18 +26,18 @@ Microsoft Azure Setup 9. Click on ``Manage`` in the left menu → ``Certificates & Secrets``. 10. Click on ``New client secret``. 11. Fill description, set ``Expires`` and note it somewhere, then click on ``Add``. -12. Copy ``Value`` and store it somewhere. You will not able to view it again. +12. Copy ``Value`` and store it somewhere. You will not be able to view it again. 13. Go to OpenID in DSW: ``Settings`` → ``OpenID`` → ``Create``. 14. Fill in a ``Name`` of the service. This name will be used to identify the service in the list of login options, so it should be something descriptive. -15. Open the ``Microsoft`` tab and fill in : +15. Open the ``Microsoft`` tab and fill in: - ``Application (client) ID`` - ``Directory (tenant) ID`` - ``Client Secret`` → ```` -16. (optional) fill Icon (``fab fa-microsoft``, or some other from `Font Awesome `_), ``Background Color`` and ``Text Color``. +16. (optional) Fill in Icon (``fab fa-microsoft``, or another icon from `Font Awesome `_), ``Background Color`` and ``Text Color``. 17. Click on ``Save``. @@ -59,12 +59,7 @@ Microsoft Azure Setup 32. Select ``ID`` and check ``email``, ``family_name`` and ``given_name``. 33. Click on ``Add``. -34. Test your OpenID configuration in DSW (You might need to refresh the login page for the login button to appear). - -.. .. figure:: openid/openid.png -.. :width: 700 - -.. Example configuration of OpenID Microsoft Azure service. +34. Test your OpenID configuration in DSW. You might need to refresh the login page for the login button to appear. ORCID Setup @@ -80,7 +75,7 @@ ORCID requires a redirect URI before it allows us to save the application and ob - ``Client Secret`` → ``placeholder`` - ``URL`` → ``https://orcid.org`` 5. Leave ``Parameters`` empty. -6. (optional) fill Icon (``fab fa-orcid``), ``Background Color`` (``#A6CE39``), and ``Text Color``. +6. (optional) Fill in Icon (``fab fa-orcid``), ``Background Color`` (``#A6CE39``), and ``Text Color``. 7. Click on ``Save``. 8. Copy ``Callback URL`` from DSW. It will look similar to ``https:///wizard/open-id//callback``. @@ -101,7 +96,7 @@ ORCID requires a redirect URI before it allows us to save the application and ob - ``Client Secret`` → ORCID ``Client Secret`` - ``URL`` → keep ``https://orcid.org`` 17. Click on ``Save``. -18. Test your OpenID configuration in DSW (You might need to refresh the login page for the login button to appear). +18. Test your OpenID configuration in DSW. You might need to refresh the login page for the login button to appear. .. NOTE:: @@ -131,9 +126,9 @@ Custom Setup - Configure the client to provide the following details in ID tokens: ``email``, ``given_name``, ``family_name``. 8. Go back to DSW and fill in the real ``Client ID``, ``Client Secret``, and ``URL`` from the OpenID provider. 9. Leave ``Parameters`` empty unless the provider documentation requires an additional parameter. -10. (optional) fill Icon (some from `Font Awesome `_), ``Background Color`` and ``Text Color``. +10. (optional) Fill in Icon (an icon from `Font Awesome `_), ``Background Color`` and ``Text Color``. 11. Click on ``Save``. -12. Test your OpenID configuration in DSW (You might need to refresh the login page for the login button to appear). +12. Test your OpenID configuration in DSW. You might need to refresh the login page for the login button to appear. Advanced Configuration diff --git a/docs/application/administration/settings/system/organization.rst b/docs/application/administration/settings/system/organization.rst index 830638bc..b163a3ca 100644 --- a/docs/application/administration/settings/system/organization.rst +++ b/docs/application/administration/settings/system/organization.rst @@ -3,7 +3,7 @@ Organization ************ -On this page, we can configure **Name**, **Description**, **Organization ID** for our |project_name| instance and **Affiliations**. +On this page, we can configure **Name**, **Description**, **Organization ID** for our DSW instance and **Affiliations**. The organization ID is used as a part of knowledge models and document templates IDs. That ID is also used in the :ref:`dsw-registry` to identify the organization. diff --git a/docs/application/administration/settings/user-interface/dashboard-and-login-screen.rst b/docs/application/administration/settings/user-interface/dashboard-and-login-screen.rst index 2b31e01c..811f7b78 100644 --- a/docs/application/administration/settings/user-interface/dashboard-and-login-screen.rst +++ b/docs/application/administration/settings/user-interface/dashboard-and-login-screen.rst @@ -30,7 +30,7 @@ We can select the **Dashboard Style** to decide whether the user should see a st * **Configure Organization Widget** quickly navigates to :doc:`../system/organization` if it is not yet done. - * **Configure Look and Feel Widget** quickly navigates to :doc:`../user-interface/look-and-feel` to adjust style of the |project_name| instance. + * **Configure Look and Feel Widget** quickly navigates to :doc:`../user-interface/look-and-feel` to adjust style of the DSW instance. * **Connect DSW Registry Widget** quickly navigates to :doc:`../content/dsw-registry` to configure the connection if it has not been configured yet. @@ -42,11 +42,11 @@ We can select the **Dashboard Style** to decide whether the user should see a st Login Info ========== -It is possible to write a message that users will see before logging in the |project_name| instance, using HTML or Markdown. The Login info is placed in the center of the login screen. We can use it to explain users in what cases they can/should use our |project_name| instance, how they should log in (e.g. if we have more authentication services configured), or if there is any news regarding our |project_name| instance. +It is possible to write a message that users will see before logging in the DSW instance, using HTML or Markdown. The Login info is placed in the center of the login screen. We can use it to explain users in what cases they can/should use our DSW instance, how they should log in (e.g. if we have more authentication services configured), or if there is any news regarding our DSW instance. .. WARNING:: - Defining HTML classes in the login info can overwrite |project_name| application classes. It is recommended to use prefixes for classes, if they are used, to avoid conflicts. + Defining HTML classes in the login info can overwrite DSW application classes. It is recommended to use prefixes for classes, if they are used, to avoid conflicts. .. _sidebar-login-info: diff --git a/docs/application/administration/settings/user-interface/index.rst b/docs/application/administration/settings/user-interface/index.rst index ca09eb70..8a6e5d44 100644 --- a/docs/application/administration/settings/user-interface/index.rst +++ b/docs/application/administration/settings/user-interface/index.rst @@ -1,7 +1,7 @@ User Interface Settings *********************** -User Interface (UI) settings allow us to manage how the |project_name| instance looks like: styling, titles, or the dashboard shown when user logs information. +User Interface (UI) settings allow us to manage how the DSW instance looks like: styling, titles, or the dashboard shown when user logs information. ---- diff --git a/docs/application/administration/settings/user-interface/look-and-feel.rst b/docs/application/administration/settings/user-interface/look-and-feel.rst index d8cfd639..b53d6167 100644 --- a/docs/application/administration/settings/user-interface/look-and-feel.rst +++ b/docs/application/administration/settings/user-interface/look-and-feel.rst @@ -1,22 +1,21 @@ Look & Feel *********** -This part of settings allows us to adjust how the |project_name| instance looks like. +This part of settings allows us to adjust how the DSW instance looks like. Application Titles ================== -There are two titles that we can set. First, **Application Title** is the full title that should identify the |project_name| instance, for example, in browser's tab. Second is **Short Application Title** which is visible, for example, at the top of the main (left) menu next to the icon. We should keep **Short Application Title** really short (about 10 characters at maximum) so it fits well. +There are two titles that we can set. First, **Application Title** is the full title that should identify the DSW instance, for example, in browser's tab. Second is **Short Application Title** which is visible, for example, at the top of the main (left) menu next to the icon. We should keep **Short Application Title** really short (about 10 characters at maximum) so it fits well. Custom Menu Links ================= -We can easily add custom links to the main (left) menu by clicking :guilabel:`Add` under **Custom Menu Links**. For each link, we can set **Icon** (from `Font Awesome `_), **Title** and the target **URL**. We can also set whether the link should open in **New Window** (if not, it will navigate user directly in the same window/tab from |project_name| instance). Once the links are there, we can manage them or delete them at this place. +We can easily add custom links to the main (left) menu by clicking :guilabel:`Add` under **Custom Menu Links**. For each link, we can set **Icon** (from `Font Awesome `_), **Title** and the target **URL**. We can also set whether the link should open in **New Window** (if not, it will navigate user directly in the same window/tab from DSW instance). Once the links are there, we can manage them or delete them at this place. .. figure:: look-and-feel/custom-links.png - + Example configuration of a custom menu link. - \ No newline at end of file diff --git a/docs/application/administration/users/detail.rst b/docs/application/administration/users/detail.rst index 8c9f77a2..797440a6 100644 --- a/docs/application/administration/users/detail.rst +++ b/docs/application/administration/users/detail.rst @@ -10,7 +10,7 @@ Users with permission to manage users can edit existing users manually on the de Detail of a user profile. -The password can be also changed (after selecting :guilabel:`Password` from the left navigation of user settings). +The password can also be changed (after selecting :guilabel:`Password` from the left navigation of user settings). .. figure:: detail/password.png @@ -21,7 +21,7 @@ The password can be also changed (after selecting :guilabel:`Password` from the User Roles ========== -Each user has one global :ref:`role`. The role determines which parts of the |project_name| instance the user can access and what actions they can perform. +Each user has one global :ref:`role`. The role determines which parts of the DSW instance the user can access and what actions they can perform. Default roles cover the common researcher, data steward, and admin workflows. Users with permission to manage settings can also create custom roles when they need a different combination of permissions. diff --git a/docs/application/administration/users/index.rst b/docs/application/administration/users/index.rst index 8ee75bce..e4d85b44 100644 --- a/docs/application/administration/users/index.rst +++ b/docs/application/administration/users/index.rst @@ -3,9 +3,9 @@ Users ***** -Users list allows users with permission to manage users to see and manage all users in a |project_name| instance. The list can be filtered using :ref:`roles`, searched based using name or email fragment, and sorted via various properties of users. The list shows the role of a user next to its name and also indicates in case the user is inactive. Next to the email, we can quickly see what authentication services the user uses to log-in. +A users list allows users with permission to manage users to see and manage all users in a DSW instance. The list can be filtered using :ref:`roles`, searched by name or email fragment, and sorted via various user properties. The list shows the role of a user next to their name and also indicates when the user is inactive. Next to the email, we can quickly see what authentication services the user uses to log in. -A :ref:`user detail` can be opened by clicking the name of a user or by selecting :guilabel:`Edit` in the right dropdown menu for the desired row. There, a user can be also deleted via the :guilabel:`Delete` action. Finally, a new user can be :ref:`created` by clicking :guilabel:`Create`. +A :ref:`user detail` can be opened by clicking the name of a user or by selecting :guilabel:`Edit` in the right dropdown menu for the desired row. There, a user can also be deleted via the :guilabel:`Delete` action. Finally, a new user can be :ref:`created` by clicking :guilabel:`Create`. .. figure:: index/list.png diff --git a/docs/application/document-templates/editors/index.rst b/docs/application/document-templates/editors/index.rst index 5e19900a..d2e6db1a 100644 --- a/docs/application/document-templates/editors/index.rst +++ b/docs/application/document-templates/editors/index.rst @@ -14,7 +14,7 @@ We can use the search field to search for a specific document template editor. T We can :doc:`./create` by clicking the :guilabel:`Create` button. -By clicking the triple dots on each of the item in the list we can access some actions: +By clicking the triple dots on each item in the list, we can access some actions: - **Open Editor** - simply open the :doc:`./detail/index` (we can also click the name of the editor) - **Delete** - to delete the document template editor (cannot be undone) diff --git a/docs/application/document-templates/list/import.rst b/docs/application/document-templates/list/import.rst index ce1fbffb..8a318207 100644 --- a/docs/application/document-templates/list/import.rst +++ b/docs/application/document-templates/list/import.rst @@ -10,7 +10,7 @@ We can import an existing document template by navigating to :doc:`./index` (:me From DSW Registry ================= -If the |project_name| instance is connected to the `DSW Registry `__, it is possible to import document templates from it by entering the **document template ID** of desired template (e.g. ``dsw:questionnaire-report:2.7.1``) and pressing the :guilabel:`Import` button. +If the DSW instance is connected to the `DSW Registry `__, it is possible to import document templates from it by entering the **document template ID** of desired template (e.g. ``dsw:questionnaire-report:2.7.1``) and pressing the :guilabel:`Import` button. .. NOTE:: @@ -26,7 +26,7 @@ If the |project_name| instance is connected to the `DSW Registry `__, :guilabel:`update available` badge will appear. +Each item may be marked with :guilabel:`unsupported metamodel` badge when the document template is not compatible with the version of DSW. :doc:`../../../more/development/metamodel-schemas` are used to define structures that developers can interact with. If the template originates from the `DSW Registry `__, :guilabel:`update available` badge will appear. To see how to configure the registry, read the :ref:`FAQ and Deployment Notes`. If your template is not from the registry, you will have to :doc:`../editors/detail/publish` a new version via template editor, which will increase the metamodel version automatically. diff --git a/docs/application/knowledge-models/editors/create.rst b/docs/application/knowledge-models/editors/create.rst index e9d3e080..b069cfe4 100644 --- a/docs/application/knowledge-models/editors/create.rst +++ b/docs/application/knowledge-models/editors/create.rst @@ -17,6 +17,6 @@ Every knowledge model needs to have a **name**, a **knowledge model ID** and **v :: -We can create a new project either from scratch, i.e. the new knowledge model will be empty and we will build it all ourselves, or based on an existing knowledge models, which means that everything from the chosen knowledge model will be copied to ours. We can start from there and add, delete, or modify the existing entities in there. We just need to choose the original knowledge model in the **based on** field. Alternatively, we can open the :ref:`knowledge model detail` and click on :guilabel:`Fork KM` there. +We can create a new knowledge model editor either from scratch, i.e. the new knowledge model will be empty and we will build it all ourselves, or based on an existing knowledge model, which means that everything from the chosen knowledge model will be copied to ours. We can start from there and add, delete, or modify the existing entities in there. We just need to choose the original knowledge model in the **Based on** field. Alternatively, we can open the :ref:`knowledge model detail` and click on :guilabel:`Fork KM` there. We can only have one knowledge model editor with the same knowledge model ID. If we deleted the editor but want to continue working on that knowledge model, we can create a new editor with the same knowledge model ID. Or we can open the :ref:`knowledge model detail` and click on :guilabel:`Create KM editor` there to have the editor create form prefilled. diff --git a/docs/application/knowledge-models/editors/index.rst b/docs/application/knowledge-models/editors/index.rst index baed5448..77958dcd 100644 --- a/docs/application/knowledge-models/editors/index.rst +++ b/docs/application/knowledge-models/editors/index.rst @@ -10,14 +10,14 @@ Users with permission to use knowledge model editors can see a list of all knowl List of knowledge model editors. -We can use the search field to search for a specific KM editor. The editors are sorted by when they were last updated but we can change that. We can order the list by name, creation date, or last update date. The list shows the name, version, id, if editor contains unpublished changes, if it is a fork of different KM and last update. +We can use the search field to search for a specific KM editor. The editors are sorted by when they were last updated, but we can change that. We can order the list by name, creation date, or last update date. The list shows the name, version, id, whether the editor contains unpublished changes, whether it is a fork of a different KM, and last update. We can :ref:`create a new knowledge model editor` by clicking the :guilabel:`Create` button. -By clicking the triple dots on each of the item in the list we can access some actions: +By clicking the triple dots on each item in the list, we can access some actions: - **Open Editor** - simply open the :ref:`editor detail` -- **Update** - if there is a newer version of parent knowledge model, we can use update action to start a :ref:`knowledge model migration`, otherwise the action is not visible +- **Update** - if there is a newer version of the parent knowledge model, we can use the update action to start a :ref:`knowledge model migration`, otherwise the action is not visible - **Delete** - to delete the knowledge model editor (cannot be undone) If there is an ongoing :ref:`knowledge model migration`, there are different actions: diff --git a/docs/application/knowledge-models/list/import.rst b/docs/application/knowledge-models/list/import.rst index 1e95a3b0..0166bf62 100644 --- a/docs/application/knowledge-models/list/import.rst +++ b/docs/application/knowledge-models/list/import.rst @@ -27,7 +27,7 @@ We can import a knowledge model from the `DSW Registry ` can be used to quickly submit the document directly from |project_name| to some external service. +:ref:`Submission services` can be used to quickly submit the document directly from DSW to some external service. .. figure:: documents/submission.png :width: 540 @@ -39,6 +39,6 @@ Document Submission Submission service selection for a document. -If there are any document submission services configured for our |project_name| instance, we should be able to see :guilabel:`Submit` option when we open document menu in the document list by clicking on the triple dots. Then we choose the desired from the list and click on :guilabel:`Submit`. +If there are any document submission services configured for our DSW instance, we should be able to see :guilabel:`Submit` option when we open document menu in the document list by clicking on the triple dots. Then we choose the desired from the list and click on :guilabel:`Submit`. We can see all the submissions for each document in the document list as well. \ No newline at end of file diff --git a/docs/application/projects/list/detail/settings.rst b/docs/application/projects/list/detail/settings.rst index 1b7d88e3..2e8b3b34 100644 --- a/docs/application/projects/list/detail/settings.rst +++ b/docs/application/projects/list/detail/settings.rst @@ -5,11 +5,11 @@ Settings In the :guilabel:`Settings` tab, we can configure some details about the project. First we have a **name** and a **description** to identify the project. -Next, we have **Project Tags**. These can be used for providing some metadata or categorization of the project. In the project list, we can filter the projects by these tags. We can write any text we want as a project tag and |project_name| will suggest us the tags that are there already in use so we can keep them consistent. +Next, we have **Project Tags**. These can be used for providing some metadata or categorization of the project. In the project list, we can filter the projects by these tags. We can write any text we want as a project tag and DSW will suggest us the tags that are there already in use so we can keep them consistent. .. NOTE:: - Project tags might be disabled in some |project_name| instances. + Project tags might be disabled in some DSW instances. .. figure:: settings/settings.png @@ -35,7 +35,7 @@ We can use the project as a :ref:`project template`. If we en Project template options are visible only for users with permission to manage project templates. -:guilabel:`Unsupported metamodel` badge can appear, when the document template is not compatible with the version of |project_name|. Users should contact the person responsible for document templates or instance administration in this case. +:guilabel:`Unsupported metamodel` badge can appear, when the document template is not compatible with the version of DSW. Users should contact the person responsible for document templates or instance administration in this case. Knowledge Model =============== diff --git a/docs/application/projects/list/detail/sharing.rst b/docs/application/projects/list/detail/sharing.rst index 9b5a4c76..bcf8836a 100644 --- a/docs/application/projects/list/detail/sharing.rst +++ b/docs/application/projects/list/detail/sharing.rst @@ -3,7 +3,7 @@ Sharing ******* -We can share a project with other |project_name| users or external collaborators. We can access all sharing options by clicking the :guilabel:`Share` button in the top right. +We can share a project with other DSW users or external collaborators. We can access all sharing options by clicking the :guilabel:`Share` button in the top right. .. figure:: sharing/share-modal.png :width: 540 @@ -141,7 +141,7 @@ There are different project sharing roles that grant access to different project .. NOTE:: - Some of the following options might be globally disabled in the application settings for the whole |project_name| instance, therefore not visible on the project level. + Some of the following options might be globally disabled in the application settings for the whole DSW instance, therefore not visible on the project level. The following video tutorial explains and showcases sharing options and tools that can be used while collaborating with others. Some features mentioned in the video are also explained in the :ref:`project questionnaire`. @@ -154,7 +154,7 @@ The following video tutorial explains and showcases sharing options and tools th Users ===== -We can choose specific users from the |project_name| instance and their project sharing role to grant them access to project features based on the table above. This is a good way to add other collaborators that work together with us on the project. Also, this is the only way to add other project owners. +We can choose specific users from the DSW instance and their project sharing role to grant them access to project features based on the table above. This is a good way to add other collaborators that work together with us on the project. Also, this is the only way to add other project owners. Visible by all other logged-in users @@ -168,4 +168,4 @@ This can be useful, when we want to have an example project accessible by everyb Public link =========== -We can enable the :guilabel:`Public link` toggle to grant access to the project to anyone who has the link. We can again choose what they can do -- **view**, **comment**, or **edit** the project. Also, the public link is visible there, so we can simply copy it and send to whoever we want to collaborate with. Then, they don't need a |project_name| account and still be able to access our project. +We can enable the :guilabel:`Public link` toggle to grant access to the project to anyone who has the link. We can again choose what they can do -- **view**, **comment**, or **edit** the project. Also, the public link is visible there, so we can simply copy it and send to whoever we want to collaborate with. Then, they don't need a DSW account and still be able to access our project. diff --git a/docs/application/projects/list/index.rst b/docs/application/projects/list/index.rst index 79427cc6..77cec9d1 100644 --- a/docs/application/projects/list/index.rst +++ b/docs/application/projects/list/index.rst @@ -3,11 +3,11 @@ Project List ************ -In the project list, we can see a list of all projects we have access to. Those are the projects where we were assigned with a project sharing role, projects that are visible to all logged-in users in the :ref:`project sharing settings`, or projects available through our global :ref:`role` permissions. The projects are filtered to those we are explicitly assigned to by default. +In the project list, we can see a list of all projects we have access to. Those are the projects where we were assigned a project sharing role, projects that are visible to all logged-in users in the :ref:`project sharing settings`, or projects available through our global :ref:`role` permissions. The projects are filtered to those we are explicitly assigned to by default. -We can see projects name, label :guilabel:`Template` if the project is a template, and icon indicating sharing settings: +We can see project names, a :guilabel:`Template` label if the project is a template, and an icon indicating sharing settings: -- **Lock icon** - the project can be only accessed by you +- **Lock icon** - the project can only be accessed by you - **People icon** - the project is shared with other users, hovering on the icon provides additional information - **Globe icon** - anyone with a link can access the project @@ -19,18 +19,18 @@ We can see projects name, label :guilabel:`Template` if the project is a templat We can search for specific projects using the search field or filter them using additional filters: - **Project Template** - if we want to see only :ref:`project templates` or regular projects -- **Project Tags** - show only the projects that has specific tags assigned +- **Project Tags** - show only the projects that have specific tags assigned - **Knowledge Models** - show only the projects created from a specific knowledge model - **Users** - filter only the projects with specific users assigned to them .. NOTE:: - Note that some of the filters can be disabled based on the |project_name| instance settings or user permissions. + Note that some of the filters can be disabled based on the DSW instance settings or user permissions. We can :ref:`create a new project` by clicking the :guilabel:`Create` button. -By clicking the triple dots on each of the item in the list we can access some actions: +By clicking the triple dots on each item in the list, we can access some actions: - **Open project** - will simply open the project - **Create project from this template** - will create a new project from the selected project template (this is only available if the project is also a project template) diff --git a/docs/application/projects/list/templates.rst b/docs/application/projects/list/templates.rst index 5622c27b..5401d410 100644 --- a/docs/application/projects/list/templates.rst +++ b/docs/application/projects/list/templates.rst @@ -9,9 +9,9 @@ Project Templates When creating a new project, we need to choose a knowledge model and optionally select some question tags. After the project is created, we should also choose a :ref:`default document template` and format to enable :ref:`preview`. It can be overwhelming for new researchers to set up everything when they are new to all this. -Project templates are special type of projects where we can set up everything -- choose a knowledge model and question tags, set up default document template, pre-fill some answers, add TODOs, comments or editor notes. Users can then pick from these project templates when :ref:`creating a new project`. The new project will be the exact copy of the project template so they don't have to set those things themselves and they have an easier start to their data management planning. +Project templates are a special type of project where we can set up everything -- choose a knowledge model and question tags, set up a default document template, pre-fill some answers, add TODOs, comments or editor notes. Users can then pick from these project templates when :ref:`creating a new project`. The new project will be an exact copy of the project template, so they don't have to set those things themselves and they have an easier start to their data management planning. -When we want to turn a project into a project template we need to go to the :ref:`project settings` and check the :guilabel:`Project Template` checkbox. +When we want to turn a project into a project template, we need to go to the :ref:`project settings` and check the :guilabel:`Project Template` checkbox. Sharing the Project Templates ============================= @@ -20,7 +20,7 @@ Sharing the Project Templates Project templates follow the same rules for sharing as regular projects. Therefore, to make it available for other users, we need to set up proper :ref:`sharing settings`. -We can either share them with specific users only, or we can simply enable that the project template is **visible by all other logged-in users** and that they can only **view** it (as we do not want them to change it). +We can either share them with specific users only, or we can simply make the project template **visible by all other logged-in users** with **view** access only (as we do not want them to change it). External Resources diff --git a/docs/conf.py b/docs/conf.py index d067fa88..0f3dda2f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,20 +21,9 @@ copyright = '2018 - 2026, DSW Team' author = 'DSW Team' -project_name = 'DSW' -project_name_full = 'Data Stewardship Wizard' - # The full version, including alpha/beta/rc tags version = release = '4.32' -rst_prolog = f""" - -.. |compose_ver| replace:: {release} -.. |project_name| replace:: {project_name} -.. |project_name_full| replace:: {project_name_full} - -""" - # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be @@ -97,6 +86,11 @@ def setup(app): 'epub.unknown_project_files', ] +linkcheck_ignore = [ + r'http://localhost(:\d+)?(/.*)?$', + r'https://localhost(:\d+)?(/.*)?$', +] + redirects = { 'more/roadmap/index': 'https://changelog.ds-wizard.org', diff --git a/docs/index.rst b/docs/index.rst index 198c5dc7..6aa604a3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,15 +1,15 @@ -|project_name| User Guide +DSW User Guide ************************* -The |project_name_full| is a tool that helps researchers and data stewards create data management plans (DMPs) easily, efficiently, and in a FAIR manner. +The Data Stewardship Wizard is a tool that helps researchers and data stewards create data management plans (DMPs) easily, efficiently, and in a FAIR manner. Data stewards can easily capture the knowledge, including required project data and decisions in knowledge models that are then turned into per-project questionnaires to be filled by researchers. The questionnaires guide researchers through the process using recommendations, FAIR metrics indications, and only showing relevant questions based on previous answers. -Once the questionnaire is completed, a DMP can be easily generated using a selected template and output format. The document is then stored in |project_name| for easy access and future reference. This is especially helpful because many funding agencies now require a DMP for their application process. +Once the questionnaire is completed, a DMP can be easily generated using a selected template and output format. The document is then stored in DSW for easy access and future reference. This is especially helpful because many funding agencies now require a DMP for their application process. -But the benefits of using |project_name| go beyond just creating a DMP. Researchers also learn how to handle data correctly, make it FAIR, maintain it throughout the project, and curate it long-term. This intelligent, guided, and efficient approach to composing DMPs is useful for ELIXIR nodes, research institutions, and individual researchers alike. +But the benefits of using DSW go beyond just creating a DMP. Researchers also learn how to handle data correctly, make it FAIR, maintain it throughout the project, and curate it long-term. This intelligent, guided, and efficient approach to composing DMPs is useful for ELIXIR nodes, research institutions, and individual researchers alike. -You are welcome to join the `Discord community `__ where you can ask questions, share your experience, and get help from other users and administrators of |project_name|. +You are welcome to join the `Discord community `__ where you can ask questions, share your experience, and get help from other users and administrators of DSW. .. youtube:: gcSPG_dyVUQ :width: 100% @@ -22,8 +22,8 @@ Structure of the Guide The guide sections are organized into three categories: - **About** contains an introduction to the Data Stewardship Wizard and its content to gain quick insight into how it works at a high level. -- **Application** is structured the same way as |project_name|'s main menu to quickly find the relevant sections about how to use a specific part of the application. -- **More** contains all additional information related to |project_name|, such as development roadmap, how to develop own content, or how to run own instance. +- **Application** is structured the same way as DSW's main menu to quickly find the relevant sections about how to use a specific part of the application. +- **More** contains all additional information related to DSW, such as development roadmap, how to develop own content, or how to run own instance. Here are some recommended sections where to start based on the role: diff --git a/docs/more/development/contributing.rst b/docs/more/development/contributing.rst index 9ef80c08..63519177 100644 --- a/docs/more/development/contributing.rst +++ b/docs/more/development/contributing.rst @@ -2,7 +2,7 @@ Contributing ************ -Interested in contributing to the |project_name| development? +Interested in contributing to the DSW development? ---- @@ -22,7 +22,7 @@ In case you find some bug, please `create an issue `__. However, never include sensitive information in the issue as it is publicly available. Such information (e.g. logs) send to us via e-mail `support@ds-wizard.org `__. +If you find an security issue within DSW, please `create appropriate issue `__. However, never include sensitive information in the issue as it is publicly available. Such information (e.g. logs) send to us via e-mail `support@ds-wizard.org `__. Development =========== @@ -42,9 +42,9 @@ Our projects are open source and you can contribute via GitHub (fork and pull re Test Policy =========== -Testing is essential to ensure the successful construction and implementation of |project_name|. It is necessary to keep tests updated together with new features and other changes in the code. +Testing is essential to ensure the successful construction and implementation of DSW. It is necessary to keep tests updated together with new features and other changes in the code. -Each component may use its own test suite (unit tests, acceptance tests, integration tests), which shall be described in the CONTRIBUTING file within the corresponding repository. To test all components together, we have the `E2E test suite `__ (Cypress) that tests according to various use cases, i.e., what can a user do within |project_name| using its web user interface. +Each component may use its own test suite (unit tests, acceptance tests, integration tests), which shall be described in the CONTRIBUTING file within the corresponding repository. To test all components together, we have the `E2E test suite `__ (Cypress) that tests according to various use cases, i.e., what can a user do within DSW using its web user interface. Whenever a new feature is developed, it must be covered by tests. For the E2E test suite, a specific sub-task is created in our JIRA when applicable. All components must pass all tests before releasing (including release candidate versions). diff --git a/docs/more/development/document-templates/dev-notes.rst b/docs/more/development/document-templates/dev-notes.rst index 62fcd3f4..d39cd062 100644 --- a/docs/more/development/document-templates/dev-notes.rst +++ b/docs/more/development/document-templates/dev-notes.rst @@ -34,7 +34,7 @@ Misplaced Content in PDF **Issue**: It may happen that content is placed over header/footer or incorrectly split between pages. -**Recommendations**: First, avoid incorrect HTML structures such as empty list items, nested paragraphs, tables without ``tbody`` etc. Then also make sure that the page, footer and header sizes are correctly set via CSS. Similarly, you can prevent page break using CSS. In case of issues, also refer to the :ref:`WeasyPrint step ` or directly the `WeasyPrint documentation `_. +**Recommendations**: First, avoid incorrect HTML structures such as empty list items, nested paragraphs, tables without ``tbody`` etc. Then also make sure that the page, footer and header sizes are correctly set via CSS. Similarly, you can prevent page break using CSS. In case of issues, also refer to the :ref:`WeasyPrint step ` or directly the `WeasyPrint documentation `_. Issues with PDF Formatting @@ -73,4 +73,3 @@ Compressing Images in MS Word Documents **Issue**: Uncompressed images in MS Word documents can significantly increase the file size, often making it much larger than the original HTML or PDF version. **Recommendations**: In the ``reference.docx`` document, you can adjust the image compression level to reduce the file size. To do this, open the document ``reference.docx`` and click on an image. Then, navigate to ``Picture Format`` -> ``Compress Pictures`` in the ``Adjust`` group. In the dialog box, you can select the desired compression level. Alternatively, you can set the default compression level for all images in the document. This will ensure that images are compressed when the document is saved. - \ No newline at end of file diff --git a/docs/more/development/document-templates/document-worker-plugins.rst b/docs/more/development/document-templates/document-worker-plugins.rst index 8d891c21..ea264a62 100644 --- a/docs/more/development/document-templates/document-worker-plugins.rst +++ b/docs/more/development/document-templates/document-worker-plugins.rst @@ -3,7 +3,7 @@ Document Worker Plugins ======================= -It is possible to extend functionality of |project_name| by implementing own plugins according to the instructions and thus add new features to the application. This requires technical knowledge and experience with the relevant technologies used in |project_name| (such as Python or Docker). You should not consider developing plugins unless you are familiar with programming and also will be committed to maintaining the plugin in the future. +It is possible to extend functionality of DSW by implementing own plugins according to the instructions and thus add new features to the application. This requires technical knowledge and experience with the relevant technologies used in DSW (such as Python or Docker). You should not consider developing plugins unless you are familiar with programming and also will be committed to maintaining the plugin in the future. .. note:: diff --git a/docs/more/development/document-templates/index.rst b/docs/more/development/document-templates/index.rst index 55a8aa11..bfaa2a74 100644 --- a/docs/more/development/document-templates/index.rst +++ b/docs/more/development/document-templates/index.rst @@ -3,7 +3,7 @@ Document Template Development ***************************** -Document templates allows to specify how to export a questionnaire in form of a textual file. It is a highly flexible element of the tool; however, the development requires basic programming skills with Jinja2 templating language. We can develop the document templates either on our local computer (traditional development with text editor or IDE) with use of the :doc:`./tdk` (TDK) or directly in |project_name| using :doc:`../../../application/document-templates/editors/index`. +Document templates allow us to specify how to export a questionnaire in the form of a textual file. It is a highly flexible element of the tool; however, the development requires basic programming skills with Jinja2 templating language. We can develop the document templates either on our local computer (traditional development with text editor or IDE) with use of the :doc:`./tdk` (TDK) or directly in DSW using :doc:`../../../application/document-templates/editors/index`. Every document template is based on the :doc:`template specification` and typically uses the :doc:`document context` to query information from a project (questionnaire replies, knowledge model, metadata, etc.) to create a document. diff --git a/docs/more/development/document-templates/specification.rst b/docs/more/development/document-templates/specification.rst index 3766c3ef..39a7128e 100644 --- a/docs/more/development/document-templates/specification.rst +++ b/docs/more/development/document-templates/specification.rst @@ -3,7 +3,7 @@ Document Template Specification ******************************* -Each document template in |project_name| has metadata stored. If developing locally with :doc:`./tdk`, you can find and manage them in ``template.json`` file. In case of using :doc:`../../../application/document-templates/editors/index`, you can manage them on **Settings** tab. +Each document template in DSW has metadata stored. If developing locally with :doc:`./tdk`, you can find and manage them in ``template.json`` file. In case of using :doc:`../../../application/document-templates/editors/index`, you can manage them on **Settings** tab. Specification Structure @@ -17,10 +17,10 @@ Specification Structure * ``description`` = short description of the template * ``license`` = name of the used license * ``readme`` = longer description usually containing changelog -* ``metamodelVersion`` = supported version of template metamodel, it affects with which |project_name| version is can be used +* ``metamodelVersion`` = supported version of template metamodel, it affects with which DSW version is can be used * ``allowedPackages`` = list of package filters (see :ref:`document-template-package-filter`) to specify supported packages * ``formats`` = list of available formats (see below :ref:`document-template-format`) with specified steps for generation -* ``_tdk`` = TDK configuration for local development (not stored in |project_name|, see :ref:`tdk-config`) +* ``_tdk`` = TDK configuration for local development (not stored in DSW, see :ref:`tdk-config`) .. NOTE:: @@ -79,7 +79,7 @@ Each step of template produces output based on its (optional) input and options. TDK Config ---------- -Those are local-only metadata used for development of the template. You can use them in versioned ``template.json`` but those are never stored directly in |project_name|. +Those are local-only metadata used for development of the template. You can use them in versioned ``template.json`` but those are never stored directly in DSW. * ``version``: metadata version for needs of migrations * ``readmeFile``: files used to get content for ``readme`` of the template, usually ``README.md`` @@ -222,4 +222,4 @@ Version 2 (since 2.6.0) Version 1 (since 2.5.0) ----------------------- -* Initial version of metamodel, introduced in |project_name| 2.5.0 as start of versioning. +* Initial version of metamodel, introduced in DSW 2.5.0 as start of versioning. diff --git a/docs/more/development/document-templates/steps/excel.rst b/docs/more/development/document-templates/steps/excel.rst index 32a3fe8a..209d7eb4 100644 --- a/docs/more/development/document-templates/steps/excel.rst +++ b/docs/more/development/document-templates/steps/excel.rst @@ -74,7 +74,7 @@ Notes: - ``active_sheet`` is an index of sheet to be active when document is opened. - ``size`` sets the default `window size `__. -- ``tab_ratio`` sets `ratio `__ between the worksheet tabs and the horizontal slider. +- ``tab_ratio`` sets `ratio `__ between the worksheet tabs and the horizontal slider. Definitions ----------- @@ -170,17 +170,17 @@ The possible ``options`` are: `protect `__, `zoom `__, `tab_color `__, - `page_view `__, + `page_view `__, `select `__, `hide `__ - Print: ``orientation`` - (`landspace `__ + (`landscape `__ or - `portrait `__), - `paper `__, - `margins `__, - `header `__, - `footer `__, + `portrait `__), + `paper `__, + `margins `__, + `header `__, + `footer `__, `center_horizontally `__, `center_vertically `__ @@ -207,17 +207,17 @@ The possible ``options`` are: `protect `__, `zoom `__, `tab_color `__, - `page_view `__, + `page_view `__, `select `__, `hide `__ - Print (common): ``orientation`` - (`landspace `__ + (`landscape `__ or - `portrait `__), - `paper `__, - `margins `__, - `header `__, - `footer `__, + `portrait `__), + `paper `__, + `margins `__, + `header `__, + `footer `__, `center_horizontally `__, `center_vertically `__ - Basic: @@ -433,4 +433,3 @@ Example .. |badge-status| image:: https://img.shields.io/badge/status-stable-green .. |badge-metamodel| image:: https://img.shields.io/badge/metamodel%20version-%E2%89%A5%2011-blue - diff --git a/docs/more/development/document-templates/steps/jinja.rst b/docs/more/development/document-templates/steps/jinja.rst index 57c139e5..3d2056a7 100644 --- a/docs/more/development/document-templates/steps/jinja.rst +++ b/docs/more/development/document-templates/steps/jinja.rst @@ -26,7 +26,7 @@ Options Optional: -- ``jinja-ext`` = comma-separated list of `Jinja2 extensions `__ to be enabled (supported values: ``debug``) +- ``jinja-ext`` = comma-separated list of `Jinja2 extensions `__ to be enabled (supported values: ``debug``) - ``i18n-dir`` = location (relative to template root) of translations - ``i18n-domain`` = domain string of translations - ``i18n-lang`` = language code used in the template @@ -113,12 +113,12 @@ Every ``Asset`` object returned by ``assets()`` function has the following attri Filters ------- -Within Jinja templates, you can use so-called `filters `__.Basically, those are functions applied to a first argument using pipe ``|`` symbol. +Within Jinja templates, you can use so-called `filters `__. Basically, those are functions applied to a first argument using pipe ``|`` symbol. Builtin Filters ~~~~~~~~~~~~~~~ -There are several widely used `builtin filters `__ directly in Jinja. +There are several widely used `builtin filters `__ directly in Jinja. Value Conversion ~~~~~~~~~~~~~~~~ @@ -240,7 +240,7 @@ These filters are more complex and add various support to template development. Tests ----- -Within Jinja templates, you can use so-called `tests `__. Basically, those are helpers usable in conditions after ``is`` keyword: +Within Jinja templates, you can use so-called `tests `__. Basically, those are helpers usable in conditions after ``is`` keyword: .. code:: jinja @@ -252,7 +252,7 @@ Within Jinja templates, you can use so-called `tests `__ directly in Jinja. +There are several widely used `builtin tests `__ directly in Jinja. Custom Tests ~~~~~~~~~~~~ @@ -312,7 +312,7 @@ Notes ===== - All paths (e.g. for ``import`` or ``extends`` in Jinja2 templates are relative from the template root, i.e. directory with ``template.json``). -- The ``do`` `Jinja2 extension `__ is enabled. +- The ``do`` `Jinja2 extension `__ is enabled. - Using file extension ``.j2`` or ``.jinja2`` for templates is just a convention. - The :doc:`document context <../document-context>` is provided in ``ctx`` variable, other variables, filters, and tests are documented in other documents. diff --git a/docs/more/development/document-templates/tdk.rst b/docs/more/development/document-templates/tdk.rst index 92154fd0..2334d994 100644 --- a/docs/more/development/document-templates/tdk.rst +++ b/docs/more/development/document-templates/tdk.rst @@ -9,7 +9,7 @@ Template Development Kit * Your favorite text editor or IDE * Template Development Kit (see below) - * |project_name| instance (recommended to have local one) with your admin account + * DSW instance (recommended to have local one) with your admin account * Python 3.10+ (with pip) or Docker Our Template Development Kit (TDK) provides a simple way how to work with templates locally. It is a CLI tool written in Python. @@ -49,11 +49,11 @@ Commands There are these basic commands: * ``config`` = manage shared user configuration (~/.dsw-tdk). -* ``get`` = download a template project with specified template ID from |project_name| -* ``list`` = list all templates (latest versions) from configured |project_name| +* ``get`` = download a template project with specified template ID from DSW +* ``list`` = list all templates (latest versions) from configured DSW * ``new`` = create a new template project, it launches a simple interactive wizard for template metadata -* ``package`` = create a ZIP distribution package from the local template project (ZIP is importable to |project_name| via its web interface) -* ``put`` = upload the local template project to |project_name| (once or continually on-change when ``--watch`` flag is used) +* ``package`` = create a ZIP distribution package from the local template project (ZIP is importable to DSW via its web interface) +* ``put`` = upload the local template project to DSW (once or continually on-change when ``--watch`` flag is used) * ``unpackage`` = extract a ZIP distribution package into the local template project directory * ``verify`` = check the metadata of the local template project @@ -72,7 +72,7 @@ Environment variables and .env file You can use environment variables to authenticate: -* ``DSW_API_URL`` = URL of |project_name| API with which you want to communicate. Hover mouse over your profile name to find the :ref:`About` section where URL is specified. +* ``DSW_API_URL`` = URL of DSW API with which you want to communicate. Hover mouse over your profile name to find the :ref:`About` section where URL is specified. * ``DSW_API_KEY`` = your :ref:`API Key`. Hover mouse over your profile name, click on :guilabel:`User Settings` and then navigate to :guilabel:`API Keys` From there, you can generate a new API Key for the authentication. To make this even easier, you can store those in ``.env`` file in the project root and it will be loaded automatically. Or you can specify the path to a ``.env`` file: diff --git a/docs/more/development/index.rst b/docs/more/development/index.rst index ddc281ae..8349c554 100644 --- a/docs/more/development/index.rst +++ b/docs/more/development/index.rst @@ -1,9 +1,9 @@ Development *********** -|project_name| can be extended in many ways and new components and ways of integrations can be developed to support our needs. Besides the API available for everything that can be done in |project_name|, :ref:`integration questions` and :ref:`plugins` can be implemented to get data from outside to |project_name|, or new :ref:`document templates` and :ref:`submission services` can be created to get the data outside of |project_name| in the desired form. +DSW can be extended in many ways and new components and ways of integrations can be developed to support our needs. Besides the API available for everything that can be done in DSW, :ref:`integration questions` and :ref:`plugins` can be implemented to get data from outside to DSW, or new :ref:`document templates` and :ref:`submission services` can be created to get the data outside of DSW in the desired form. -This section provides information on how to develop custom content for |project_name| to fully tailor the tool to our specific requirements. +This section provides information on how to develop custom content for DSW to fully tailor the tool to our specific requirements. ---- diff --git a/docs/more/development/integration-questions/index.rst b/docs/more/development/integration-questions/index.rst index 88eb26a2..01ebaf5a 100644 --- a/docs/more/development/integration-questions/index.rst +++ b/docs/more/development/integration-questions/index.rst @@ -3,11 +3,11 @@ Integration Questions ********************* -|project_name| can be integrated with other services using so called :ref:`integration question`. The answer to that type of question does not contain only the answer itself but also a link to that external resource (which can be done, for example, using a persistent identifier). Therefore, these answers help clearly understand what the researchers use and promotes interoperability. +DSW can be integrated with other services using so called :ref:`integration question`. The answer to that type of question does not contain only the answer itself but also a link to that external resource (which can be done, for example, using a persistent identifier). Therefore, these answers help clearly understand what the researchers use and promotes interoperability. Examples of such integrations that are used within `Common DSW Knowledge Model `_ is `FAIRsharing `_ or `ROR `_. -There are two ways of how we can connect |project_name| to these services: +There are two ways of how we can connect DSW to these services: - **API** - using an API provided by the external service to search for the results diff --git a/docs/more/development/integration-questions/integration-api.rst b/docs/more/development/integration-questions/integration-api.rst index 7183a884..c23848d7 100644 --- a/docs/more/development/integration-questions/integration-api.rst +++ b/docs/more/development/integration-questions/integration-api.rst @@ -1,7 +1,7 @@ Integration Question - API ************************** -:ref:`Integration question` can be connected to an external resource using its API. We can then search for the results from the external service using the |project_name| questionnaire interface. When we select an answer it is not only the text (such as a name of the database), but also a link to the external service to the selected item. The whole flow is denoted in the following diagram. +:ref:`Integration question` can be connected to an external resource using its API. We can then search for the results from the external service using the DSW questionnaire interface. When we select an answer it is not only the text (such as a name of the database), but also a link to the external service to the selected item. The whole flow is denoted in the following diagram. We can use `Jinja2 templating language `_ to construct everything in integrations. We also have this :ref:`cheatsheet` available. @@ -13,7 +13,7 @@ We can use `Jinja2 templating language `__ | Language field added | 4.33.0 | +| 18.2 | *(not published in dsw-schemas)* | Language field added | 4.33.0 | +-------------------+--------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------+--------+ -| 18.1 | `JSON Schema `__ | Python datetime and zoneinfo support | 4.31.0 | +| 18.1 | *(not published in dsw-schemas)* | Python datetime and zoneinfo support | 4.31.0 | +-------------------+--------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------+--------+ | 18.0 | `JSON Schema `__ | Renaming project and KM package, PluginIntegration | 4.29.0 | +-------------------+--------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------+--------+ @@ -109,14 +109,14 @@ Document Context is provided to the document templates by document worker. It co Template (.json file) ===================== -Each template has its descriptor file ``template.json`` which contains all the information about the template, its format(s) and steps how to produce the document(s). It is also versioned by the Template metamodel version number. This file also contains the actual number of the supported version... With local :doc:`./document-templates/index`, we will need to manage the file according to the schema; however, when :doc:`../../application/document-templates/editors/index` are used, we will define it using forms directly in |project_name|. +Each template has its descriptor file ``template.json`` which contains all the information about the template, its format(s) and steps how to produce the document(s). It is also versioned by the Template metamodel version number. This file also contains the actual number of the supported version... With local :doc:`./document-templates/index`, we will need to manage the file according to the schema; however, when :doc:`../../application/document-templates/editors/index` are used, we will define it using forms directly in DSW. +-------------------+------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+--------+ | Metamodel Version | Schema file | Changes (brief) | Since | +===================+==============================================================================================================================+=============================================================+========+ | 18.2 | `JSON Schema `__ | Language field added | 4.33.0 | +-------------------+------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+--------+ -| 18.1 | `JSON Schema `__ | Python datetime and zoneinfo support | 4.31.0 | +| 18.1 | *(not published in dsw-schemas)* | Python datetime and zoneinfo support | 4.31.0 | +-------------------+------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+--------+ | 18.0 | `JSON Schema `__ | Renaming project and KM package, PluginIntegration | 4.29.0 | +-------------------+------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+--------+ diff --git a/docs/more/development/plugins.rst b/docs/more/development/plugins.rst index 18604d1f..d02497bb 100644 --- a/docs/more/development/plugins.rst +++ b/docs/more/development/plugins.rst @@ -8,15 +8,15 @@ Plugins The plugins functionality is considered experimental. -This page provides information on how to develop plugins for |project_name|. Information on installing plugins can be found here: :ref:`plugins installation`. +This page provides information on how to develop plugins for DSW. Information on installing plugins can be found here: :ref:`plugins installation`. -If we want to extend |project_name| with new features, we can create plugins that will add the desired functionality. +If we want to extend DSW with new features, we can create plugins that will add the desired functionality. -To develop a plugin, we will need the DSW Plugin SDK, which is a library that will help us create, test, and deploy plugins for |project_name|. The SDK provides a framework for building plugins, as well as documentation and examples to get us started. The DSW Plugin SDK can be found here: https://github.com/ds-wizard/dsw-plugin-sdk. +To develop a plugin, we will need the DSW Plugin SDK, which is a library that will help us create, test, and deploy plugins for DSW. The SDK provides a framework for building plugins, as well as documentation and examples to get us started. The DSW Plugin SDK can be found here: https://github.com/ds-wizard/dsw-plugin-sdk. There are two templates we can use to create a new plugin: -- **DSW Plugin Template**: https://github.com/ds-wizard/dsw-plugin-template - to create plugins that extend |project_name| functionality using only the frontend part. +- **DSW Plugin Template**: https://github.com/ds-wizard/dsw-plugin-template - to create plugins that extend DSW functionality using only the frontend part. - **DSW Plugin Service Template**: https://github.com/ds-wizard/dsw-plugin-service-template - to create plugins that also have a backend service part. If we want to create a plugin using the backend service part, we can either use the Engine Gateway or create a new service from scratch using our preferred framework. The Engine Gateway has its own documentation here: https://github.com/ds-wizard/engine-gateway. diff --git a/docs/more/development/submission-service.rst b/docs/more/development/submission-service.rst index b6fb9490..ce5e1cdc 100644 --- a/docs/more/development/submission-service.rst +++ b/docs/more/development/submission-service.rst @@ -5,7 +5,7 @@ Submission Service Users with permission to manage settings can configure submission services using :doc:`../../application/administration/settings/content/document-submission`. The configured HTTP request is then used when a user clicks :guilabel:`Submit` for an allowed document for submission and selected the desired submission service. The document is sent as a body of the request (or as multipart, based on the configuration) to the external service that should process it and return HTTP response with status code, and possibly also the `Location` header and some textual message. -Usually, we will need a simple proxy service to be developed that will accommodate this to API of some information system, database, storage, or other service. For example, such a proxy service will be able to receive the JSON documents from |project_name|, retrieve additional information through |project_name| API as needed, transform it to some other resulting artifact and store it in some local database that is used by other systems. +Usually, we will need a simple proxy service to be developed that will accommodate this to API of some information system, database, storage, or other service. For example, such a proxy service will be able to receive the JSON documents from DSW, retrieve additional information through DSW API as needed, transform it to some other resulting artifact and store it in some local database that is used by other systems. Example Submission Services =========================== diff --git a/docs/more/development/vulnerabilities.rst b/docs/more/development/vulnerabilities.rst index 2da48ab3..7c6b514a 100644 --- a/docs/more/development/vulnerabilities.rst +++ b/docs/more/development/vulnerabilities.rst @@ -39,7 +39,7 @@ Basic Hints for Security * Change or remove default users * Adjust default role after registrations based on your needs -* Provide |project_name| through proxy with HTTPS (both client and server application) +* Provide DSW through proxy with HTTPS (both client and server application) * Backup data regularly (e.g. daily) * Use secured SMTP (SSL) * Use strong passwords, esp. for administrator accounts diff --git a/docs/more/miscellaneous/dsw-registry.rst b/docs/more/miscellaneous/dsw-registry.rst index d5317bd8..b4acb352 100644 --- a/docs/more/miscellaneous/dsw-registry.rst +++ b/docs/more/miscellaneous/dsw-registry.rst @@ -3,14 +3,14 @@ DSW Registry ************ -`DSW Registry `_ is a place where we publish knowledge models, document templates and locales. It is very easy to get those into a |project_name| instance and use. +`DSW Registry `_ is a place where we publish knowledge models, document templates and locales. It is very easy to get those into a DSW instance and use. .. figure:: dsw-registry/dsw-registry.png DSW Registry with a list of knowledge models. -We first need to connect our |project_name| instance to the DSW Registry in :ref:`DSW Registry Settings`. Once we have that, we can: +We first need to connect our DSW instance to the DSW Registry in :ref:`DSW Registry Settings`. Once we have that, we can: - :ref:`Import knowledge models from DSW Registry` - :ref:`Import document templates from DSW Registry` diff --git a/docs/more/miscellaneous/help.rst b/docs/more/miscellaneous/help.rst index bf5d81a6..2e63ffca 100644 --- a/docs/more/miscellaneous/help.rst +++ b/docs/more/miscellaneous/help.rst @@ -8,6 +8,6 @@ Still need help? Or you think that some topic is missing? Do not hesitate to con The best way to reach us is by sending an email to info@ds-wizard.org. -In case you found a bug, vulnerability, or have a generic question related directly to |project_name| tool - please `create a GitHub issue `__ and also visit :doc:`../development/contributing` section. +In case you found a bug, vulnerability, or have a generic question related directly to DSW tool - please `create a GitHub issue `__ and also visit :doc:`../development/contributing` section. For feature requests, we recommend using the `Ideas page `__. diff --git a/docs/more/miscellaneous/index.rst b/docs/more/miscellaneous/index.rst index 7c71bb8f..15c09f34 100644 --- a/docs/more/miscellaneous/index.rst +++ b/docs/more/miscellaneous/index.rst @@ -1,7 +1,7 @@ Miscellaneous ************* -Additional information related to |project_name| that might be useful. +Additional information related to DSW that might be useful. ---- diff --git a/docs/more/miscellaneous/jinja-cheatsheet.rst b/docs/more/miscellaneous/jinja-cheatsheet.rst index 70588b3c..ff739a33 100644 --- a/docs/more/miscellaneous/jinja-cheatsheet.rst +++ b/docs/more/miscellaneous/jinja-cheatsheet.rst @@ -3,7 +3,7 @@ Jinja Cheatsheet **************** -We can use Jinja templating language in :guilabel:`Response Item Template` and in :guilabel:`Response Item Template for Selection` (under :guilabel:`Advanced Response Configuration`) fields in |project_name|. Here you can get a basic overview of what can be achieved with Jinja. +We can use Jinja templating language in :guilabel:`Response Item Template` and in :guilabel:`Response Item Template for Selection` (under :guilabel:`Advanced Response Configuration`) fields in DSW. Here you can get a basic overview of what can be achieved with Jinja. For more information about Jinja templating language, visit the `official Jinja documentation `_. diff --git a/docs/more/miscellaneous/markdown-cheatsheet.rst b/docs/more/miscellaneous/markdown-cheatsheet.rst index b581d2d5..a4bac2bf 100644 --- a/docs/more/miscellaneous/markdown-cheatsheet.rst +++ b/docs/more/miscellaneous/markdown-cheatsheet.rst @@ -3,7 +3,7 @@ Markdown Cheatsheet ******************* -Various text fields in |project_name| can be formatted by using Markdown formatting language. Here you can get a basic overview of what can be achieved with Markdown. +Various text fields in DSW can be formatted by using Markdown formatting language. Here you can get a basic overview of what can be achieved with Markdown. Basic Syntax ============ @@ -163,7 +163,7 @@ These are the basic Markdown elements supported by all applications. Extended Syntax =============== -These elements extending the basic syntax are supported in |project_name|. +These elements extending the basic syntax are supported in DSW. .. raw:: html diff --git a/docs/more/self-hosted-dsw/configuration/configuration.rst b/docs/more/self-hosted-dsw/configuration/configuration.rst index 69b17627..b552154d 100644 --- a/docs/more/self-hosted-dsw/configuration/configuration.rst +++ b/docs/more/self-hosted-dsw/configuration/configuration.rst @@ -55,7 +55,7 @@ This configuration section is used only by **Server** and covers basic configura If we need to change our ``secret``, we need also replace all values encrypted by the secret that is stored in the database as follows: 1. Note somewhere values from Settings: Client ID and Client Secret of OpenID configurations, Registry token, etc. Adjust the settings that the values are not there (recommended; e.g., remove OpenID configuration), and save it. -2. Change the ``secret`` in the configuration file and restart the |project_name| server (re-create the container if using Docker). +2. Change the ``secret`` in the configuration file and restart the DSW server (re-create the container if using Docker). 3. Adjust the settings back to our previous values. 4. If we also use some “user properties” (for the Document Submission feature), let our users know to change the values in their profiles. @@ -99,7 +99,7 @@ Information for connection to S3 storage (used for document and document templat :type: String :default: ``engine-wizard`` - Bucket name used by |project_name| + Bucket name used by DSW .. WARNING:: @@ -129,7 +129,7 @@ This configuration section is used only by **Mailer**. It must be filled with SM :type: String - Name of the |project_name| instance that will be used as “senders name” in email headers. + Name of the DSW instance that will be used as “senders name” in email headers. .. confval:: mail.email @@ -280,7 +280,7 @@ This configuration section is used only by **Document Worker**. It allows us to :type: String :default: ``Data Stewardship Wizard`` - Name of the service operating the |project_name| instance. + Name of the service operating the DSW instance. .. confval:: documentContext.serviceNameShort @@ -288,7 +288,7 @@ This configuration section is used only by **Document Worker**. It allows us to :type: String :default: ``DSW`` - Short name of the service operating the |project_name| instance. + Short name of the service operating the DSW instance. .. confval:: documentContext.serviceUrl @@ -296,7 +296,7 @@ This configuration section is used only by **Document Worker**. It allows us to :type: String :default: ``https://ds-wizard.org`` - URL of the service operating the |project_name| instance. + URL of the service operating the DSW instance. .. confval:: documentContext.serviceDomainName @@ -304,7 +304,7 @@ This configuration section is used only by **Document Worker**. It allows us to :type: String :default: ``ds-wizard.org`` - Domain name of the service operating the |project_name| instance. + Domain name of the service operating the DSW instance. .. confval:: documentContext.defaultPrimaryColor @@ -352,7 +352,7 @@ This configuration section is used only by **Document Worker**. It allows us to Integrations Configuration ========================== -Integrations in the |project_name| use external APIs. Sometimes, we might need some configured variables, such as API keys or endpoints. For example, integration with ID ``dbase`` might use the following configuration. +Integrations in the DSW use external APIs. Sometimes, we might need some configured variables, such as API keys or endpoints. For example, integration with ID ``dbase`` might use the following configuration. .. CODE-BLOCK:: yaml @@ -372,7 +372,7 @@ There can be multiple integrations configured in a single file. These can be use Client Configuration ==================== -If we are running the client app using “With Docker”, the all we need is to specify ``API_URL`` environment variable inside ``docker-compose.yml``. In case we want to run the client locally, we need to create a ``config.js`` file in the project root: +If we are running the client app using “With Docker”, all we need is to specify the ``API_URL`` environment variable inside ``docker-compose.yml``. In case we want to run the client locally, we need to create a ``config.js`` file in the project root: .. CODE-BLOCK:: javascript @@ -458,4 +458,3 @@ Once we have the file ready, we need to mount it into the container: dsw-client: volumes: - /path/to/head-extra.html:/src/head-extra.html - diff --git a/docs/more/self-hosted-dsw/configuration/document-templates.rst b/docs/more/self-hosted-dsw/configuration/document-templates.rst index 7e9308c7..98d32c41 100644 --- a/docs/more/self-hosted-dsw/configuration/document-templates.rst +++ b/docs/more/self-hosted-dsw/configuration/document-templates.rst @@ -3,4 +3,4 @@ Document Templates ****************** -We can freely customize and style templates of documents (DMPs). HTML and CSS knowledge is required, and for doing more complex templates that use some conditions, loops, or macros, knowledge of `Jinja templating language `__ (pure Python implementation) is useful. For more information, please read :ref:`the following section`. +We can freely customize and style templates of documents (DMPs). HTML and CSS knowledge is required, and for doing more complex templates that use some conditions, loops, or macros, knowledge of `Jinja templating language `__ (pure Python implementation) is useful. For more information, please read :ref:`the following section`. diff --git a/docs/more/self-hosted-dsw/configuration/email-templates.rst b/docs/more/self-hosted-dsw/configuration/email-templates.rst index 57e32a10..50f2e9f5 100644 --- a/docs/more/self-hosted-dsw/configuration/email-templates.rst +++ b/docs/more/self-hosted-dsw/configuration/email-templates.rst @@ -3,7 +3,7 @@ Email Templates *************** -Similarly to document templates, we can customize templates for emails sent by the Wizard located in ``templates`` folder. It also uses `Jinja templating language `__. And we can create HTML template, Plain Text template, add attachments, and add inline images (which can be used inside the HTML using `Content-ID `__ equal to the filename). We can learn more about the template structure and contents directly from `the mailer GitHub repository `__. +Similarly to document templates, we can customize templates for emails sent by the Wizard located in ``templates`` folder. It also uses `Jinja templating language `__. And we can create HTML template, Plain Text template, add attachments, and add inline images (which can be used inside the HTML using `Content-ID `__ equal to the filename). We can learn more about the template structure and contents directly from `the mailer GitHub repository `__. Including our own email templates while using dockerized Wizard is practically the same as for DMP templates. We can also bind whole ``templates`` folders. (or even ``templates`` if we want to change both): @@ -19,4 +19,3 @@ Including our own email templates while using dockerized Wizard is practically t - ./config/application.yml:/app/config/application.yml:ro - ./templates:/home/user/templates:ro # ... (continued) - diff --git a/docs/more/self-hosted-dsw/configuration/index.rst b/docs/more/self-hosted-dsw/configuration/index.rst index c7ab3664..f9fdc155 100644 --- a/docs/more/self-hosted-dsw/configuration/index.rst +++ b/docs/more/self-hosted-dsw/configuration/index.rst @@ -1,7 +1,7 @@ Configuration ************* -This section explains how to configure |project_name| instance on your own. +This section explains how to configure DSW instance on your own. .. _config-settings: diff --git a/docs/more/self-hosted-dsw/configuration/plugins.rst b/docs/more/self-hosted-dsw/configuration/plugins.rst index c38fcae0..ca441097 100644 --- a/docs/more/self-hosted-dsw/configuration/plugins.rst +++ b/docs/more/self-hosted-dsw/configuration/plugins.rst @@ -8,7 +8,7 @@ Plugins The plugins functionality is considered experimental. -This page provides information on how to install plugins for |project_name|. Information on developing plugins can be found here: :ref:`plugins development`. +This page provides information on how to install plugins for DSW. Information on developing plugins can be found here: :ref:`plugins development`. There are available plugins to extend the functionality of the base DSW. diff --git a/docs/more/self-hosted-dsw/deployment.rst b/docs/more/self-hosted-dsw/deployment.rst index d51f5585..977ac177 100644 --- a/docs/more/self-hosted-dsw/deployment.rst +++ b/docs/more/self-hosted-dsw/deployment.rst @@ -4,7 +4,7 @@ Deployment ********** -Own |project_name| Instance +Own DSW Instance =========================== .. WARNING:: @@ -23,7 +23,7 @@ The simplest way is to use `Docker Compose `__ 1. Clone the `DSW Deployment Example `__ repository 2. Check config files (described in :doc:`./configuration/configuration`) -3. Run the |project_name| with Docker compose ``docker-compose up -d`` +3. Run the DSW with Docker compose ``docker-compose up -d`` 4. After starting up, we will be able to open the Wizard in our browser on http://localhost:8080 5. We can use ``docker-compose logs`` to see the logs and ``docker-compose down`` to stop all the services @@ -55,16 +55,16 @@ We can use those accounts for testing or initially make our own admin account an .. WARNING:: - Having a public instance with default accounts is a **security risk**. We should delete or change default accounts (mainly Albert Einstein) if our |project_name| instance is public as soon as possible. + Having a public instance with default accounts is a **security risk**. We should delete or change default accounts (mainly Albert Einstein) if our DSW instance is public as soon as possible. .. NOTE:: - Do not use UIDs below 10000 as that might introduce a `security risk `__. + Do not use UIDs below 10000 as that might introduce a `security risk `__. DSW Registry ------------ -When we have our own self-hosted instance, it is essential to register within the `DSW Registry `__. It is a source of shared knowledge models, document templates, and locales that can support our deployment. The registry is also integrated inside the |project_name|. Therefore, we can easily pull new versions from the |project_name|. The registration can be done either directly in our |project_name| instance in Settings or via the DSW Registry website. +When we have our own self-hosted instance, it is essential to register within the `DSW Registry `__. It is a source of shared knowledge models, document templates, and locales that can support our deployment. The registry is also integrated inside the DSW. Therefore, we can easily pull new versions from the DSW. The registration can be done either directly in our DSW instance in Settings or via the DSW Registry website. Initial Knowledge Model, Document Templates, and Locales @@ -82,7 +82,7 @@ If we want to regularly backup our database (and we should!), all we need to do Deployment Requirements ----------------------- -The following requirements were estimated using `limiting Docker resources `__ provided to containers. +The following requirements were estimated using `limiting Docker resources `__ provided to containers. +-----------------+----------------+----------------+ | Component | Minimal | Recommended | diff --git a/docs/more/self-hosted-dsw/faq-notes.rst b/docs/more/self-hosted-dsw/faq-notes.rst index bb610e2a..d22ad140 100644 --- a/docs/more/self-hosted-dsw/faq-notes.rst +++ b/docs/more/self-hosted-dsw/faq-notes.rst @@ -19,7 +19,7 @@ Why I cannot upload locales/templates and document generation fails? You probably have some issue with S3 configuration or its deployment. Also, check whether you have S3 bucket present with correct name. -Why I cannot download files from |project_name| or generate document preview? +Why I cannot download files from DSW or generate document preview? ----------------------------------------------------------------------------- Your S3 is probably not accessible by users. The S3 URL configured in :ref:`config-server` should be reachable so users can download something from the storage. @@ -32,9 +32,9 @@ Please use the `PostgreSQL documentation `_ to There is some issue with the MinIO S3 storage; what should I do? ---------------------------------------------------------------- -Please use the `MinIO documentation `_ to check the cause, various things may have happened... especially if you tried to upgrade the storage version. +Please use the `MinIO documentation `_ to check the cause, various things may have happened... especially if you tried to upgrade the storage version. -I upgraded |project_name| and now it does not work properly, what should I do? +I upgraded DSW and now it does not work properly, what should I do? ------------------------------------------------------------------------------ You should always check :doc:`upgrade-guidelines` before upgrading, be sure that you followed all steps. In case you forgot and it is not possible to fix it now, you will have to rollback from you backup and do it again by following the guidelines this time. In case you encounter an issue even though you followed the guidelines, that might a bug and please `report it `_. @@ -49,9 +49,9 @@ There are two cases: - You are using a document template from DSW Registry. - You are using your own document template. -For the first case, you need to import newer version from DSW Registry. Templates in Registry are managed by the DSW Team which ensure that they are always up to date. If those are your own document templates, you need to update them according to :ref:`document-template-metamodel-versions`. +For the first case, you need to import a newer version from DSW Registry. Templates in Registry are managed by the DSW Team which ensures that they are always up to date. If those are your own document templates, you need to update them according to :ref:`document-template-metamodel-versions`. -To update from DSW Registry, you need to have in connected with your DSW instance. If you can see the :guilabel:`Update Available` badge, you can update the template. If you cannot see the badge, you should check if you are connected to the DSW Registry. +To update from DSW Registry, you need to have it connected with your DSW instance. If you can see the :guilabel:`Update Available` badge, you can update the template. If you cannot see the badge, you should check if you are connected to the DSW Registry. To connect to the DSW Registry and import new templates from there, you can follow this guide: @@ -79,6 +79,6 @@ Deployment Notes - You should be knowledgeable with at least basics of server management, service operations, work with Docker, and debugging issues (e.g. accessing Docker logs). - The deployment can vary significantly based on needs and available infrastructure, we cannot help with different kinds of deployments and technologies that we are not experts with. -- The deployment example serves for local testing purposes and should not be used as is for production. An expert should deploy |project_name| for production while considering local needs and capabilities. +- The deployment example serves for local testing purposes and should not be used as is for production. An expert should deploy DSW for production while considering local needs and capabilities. - Never update production instance without backups and preferably try the update procedure first on a testing environment. -- Running |project_name| locally is not "free", you need people, time, and infrastructure. With that in mind, consider what `option `_ is the most suitable for you. +- Running DSW locally is not "free", you need people, time, and infrastructure. With that in mind, consider what `option `_ is the most suitable for you. diff --git a/docs/more/self-hosted-dsw/index.rst b/docs/more/self-hosted-dsw/index.rst index 8e5ea2ff..8dde7f39 100644 --- a/docs/more/self-hosted-dsw/index.rst +++ b/docs/more/self-hosted-dsw/index.rst @@ -1,11 +1,11 @@ -Self-Hosted |project_name| +Self-Hosted DSW ************************** -This section explains how to deploy, configure, and maintain |project_name| instance on your own. +This section explains how to deploy, configure, and maintain DSW instance on your own. .. NOTE:: - Before going for self-hosted options, it is a good idea to try out |project_name| using `existing providers `_. + Before going for self-hosted options, it is a good idea to try out DSW using `existing providers `_. .. raw:: html diff --git a/docs/more/self-hosted-dsw/upgrade-guidelines.rst b/docs/more/self-hosted-dsw/upgrade-guidelines.rst index 1f71aaf4..34dd97a4 100644 --- a/docs/more/self-hosted-dsw/upgrade-guidelines.rst +++ b/docs/more/self-hosted-dsw/upgrade-guidelines.rst @@ -3,7 +3,7 @@ Upgrade Guidelines ****************** -Upgrading |project_name| +Upgrading DSW ======================== .. Warning:: @@ -435,7 +435,7 @@ Before updating check following, otherwise the migration will fail: 2.5.X to 2.6.X -------------- -- The document templates including the default ``questionnaire-report`` must be updated from `https://registry.ds-wizard.org/templates `_. +- The document templates including the default ``questionnaire-report`` must be updated from the `DSW Registry `_. - Upgraded template metamodel version 2 requires manual migration of custom templates: - `questionnaireRepliesMap` (map path:Reply) is no longer present in the context @@ -465,8 +465,8 @@ Before updating check following, otherwise the migration will fail: 2.4.X to 2.5.X -------------- -- Document templates have been moved from FS to database. To simplify the transition for custom templates, we added to the Docker image a script that loads templates from FS to the database via |project_name| API. But there are several new information that we need to provide in ``template.json`` file: ``id`` (instead of ``uuid``), ``templateId``, ``organizationId``, ``version`` (semver), ``license``, ``readme`` (Markdown). The ``id`` should be in format ``organizationId:templateId:version``. Please note that this applies only for custom templates, default template can be removed from FS as it is added to the database automatically. The script must be enabled by setting envvar ``ENABLE_TEMPLATE_LOAD `` to ``1`` and ``SERVICE_TOKEN`` according to the configuration. -- Cron is no longer needed for the feedback synchronization (environment variables in ``docker-compose.yml``) as |project_name| schedules synchronization internally. +- Document templates have been moved from FS to database. To simplify the transition for custom templates, we added to the Docker image a script that loads templates from FS to the database via DSW API. But there are several new information that we need to provide in ``template.json`` file: ``id`` (instead of ``uuid``), ``templateId``, ``organizationId``, ``version`` (semver), ``license``, ``readme`` (Markdown). The ``id`` should be in format ``organizationId:templateId:version``. Please note that this applies only for custom templates, default template can be removed from FS as it is added to the database automatically. The script must be enabled by setting envvar ``ENABLE_TEMPLATE_LOAD `` to ``1`` and ``SERVICE_TOKEN`` according to the configuration. +- Cron is no longer needed for the feedback synchronization (environment variables in ``docker-compose.yml``) as DSW schedules synchronization internally. 2.3.X to 2.4.X -------------- @@ -482,7 +482,7 @@ Before updating check following, otherwise the migration will fail: 2.1.X to 2.2.X -------------- -- Configuration of client and several features is now moved from ``application.yml`` file to in-app settings. therefore, it must be reconfigured during upgrade process. Additional ``secret`` must be configured in ``application.yml`` for encryption and JWT tokens (*JWT.secret* section has been removed), see :ref:`config-server` configuration. It is recommended to first add *general.secret* (32 chars secret), start |project_name|, migrate options from ``application.yml`` in-app settings and then optionally clean up ``application.yml`` file. +- Configuration of client and several features is now moved from ``application.yml`` file to in-app settings. therefore, it must be reconfigured during upgrade process. Additional ``secret`` must be configured in ``application.yml`` for encryption and JWT tokens (*JWT.secret* section has been removed), see :ref:`config-server` configuration. It is recommended to first add *general.secret* (32 chars secret), start DSW, migrate options from ``application.yml`` in-app settings and then optionally clean up ``application.yml`` file. - User fields ``name`` and ``surname`` has been renamed to ``firstName`` and ``lastName`` - it needs be updated if used in **custom** mail or document templates. - Recommended version of MongoDB is updated to 4.2.3. @@ -495,7 +495,7 @@ Before updating check following, otherwise the migration will fail: --------------- - Changing the major version actually does not mean any problem in migration, it has been made due to significant internal changes (restructuring, new repositories, etc.) -- If we are using Docker for running |project_name|, we need to change it according to new documentation of :ref:`installation-docker` and :doc:`./configuration/configuration`. +- If we are using Docker for running DSW, we need to change it according to new documentation of :ref:`installation-docker` and :doc:`./configuration/configuration`. - Crontab image is no longer needed. - A DMP template configuration file must contain list of ``allowedKMs`` (see the default *root* template). From 52d27450e597b207958708f7ef3817a6d89f8465 Mon Sep 17 00:00:00 2001 From: krystofkomanec Date: Thu, 6 Aug 2026 16:42:42 +0200 Subject: [PATCH 2/2] Fix document template metamodel version note --- docs/more/development/document-templates/specification.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/more/development/document-templates/specification.rst b/docs/more/development/document-templates/specification.rst index 39a7128e..5808043b 100644 --- a/docs/more/development/document-templates/specification.rst +++ b/docs/more/development/document-templates/specification.rst @@ -93,7 +93,7 @@ Document Template Metamodel Versions Here are described the changes in metamodel for template specification as well as :doc:`document context` so developers can easily update their templates to a newer metamodel version when needed. It is also possible to check JSON schemas in higher detail, see :doc:`../metamodel-schemas`. -Version 18.2 (since 4.31.0) +Version 18.2 (since 4.33.0) --------------------------- * Added: