Harmonized poms

This commit is contained in:
Fabio Sinibaldi 2022-06-30 17:57:35 +02:00
parent 308352d2f9
commit af3993cfef
12 changed files with 921 additions and 75 deletions

View File

@ -29,13 +29,6 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>gcube-bom</artifactId>
<version>${gcube-bom-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>gcube-smartgears-bom</artifactId>

View File

@ -3,7 +3,6 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>concessioni-lifecycle</artifactId>
<version>1.0.1-SNAPSHOT</version>
<name>GNA Concessioni Lifecycle</name>
@ -64,6 +63,7 @@
<dependency>
<groupId>org.gcube.data.transfer</groupId>
<artifactId>data-transfer-library</artifactId>
<version>[1.2.1,2.0.0-SNAPSHOT)</version>
</dependency>

View File

@ -1,10 +1,13 @@
package org.gcube.application.geoportal.client.legacy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import javax.ws.rs.client.WebTarget;
import javax.xml.ws.soap.Addressing;
import com.sun.xml.internal.ws.api.addressing.AddressingPropertySet;
import lombok.Getter;
import org.gcube.application.geoportal.client.DefaultMongoConcessioni;
import org.gcube.application.geoportal.client.utils.Serialization;
@ -65,11 +68,12 @@ public class StatefulMongoConcessioni extends DefaultMongoConcessioni implements
current.getImmaginiRappresentative().add(toAdd);
current =replace(current);
AddSectionToConcessioneRequest req = new AddSectionToConcessioneRequest();
req.setDestinationPath(Paths.imgByIndex(current.getImmaginiRappresentative().size()-1));
req.setStreams(Collections.singletonList(f));
current =super.registerFileSet(current.getMongo_id(),
Serialization.convert(
FileSets.build(Paths.imgByIndex(current.getImmaginiRappresentative().size()-1),null,null,f).getTheRequest(),
AddSectionToConcessioneRequest.class));
current =super.registerFileSet(current.getMongo_id(), req);
return current;
}
@ -80,10 +84,12 @@ public class StatefulMongoConcessioni extends DefaultMongoConcessioni implements
current.getPianteFineScavo().add(toAdd);
current =replace(current);
AddSectionToConcessioneRequest req = new AddSectionToConcessioneRequest();
req.setDestinationPath(Paths.piantaByIndex(current.getPianteFineScavo().size()-1));
req.setStreams(Arrays.asList(files));
current =super.registerFileSet(current.getMongo_id(),
Serialization.convert(
FileSets.build(Paths.piantaByIndex(current.getPianteFineScavo().size()-1),null,null,files).getTheRequest(),AddSectionToConcessioneRequest.class));
current =super.registerFileSet(current.getMongo_id(),req);
return current;
}
@ -92,10 +98,11 @@ public class StatefulMongoConcessioni extends DefaultMongoConcessioni implements
if(current ==null) throw new Exception("Invalid operation : current Concessione is null.");
current.setPosizionamentoScavo(toSet);
current =replace(current);
AddSectionToConcessioneRequest req = new AddSectionToConcessioneRequest();
req.setDestinationPath(Paths.POSIZIONAMENTO);
req.setStreams(Arrays.asList(files));
current =super.registerFileSet(current.getMongo_id(),
Serialization.convert(FileSets.build(Paths.POSIZIONAMENTO,null,null,files).getTheRequest(),AddSectionToConcessioneRequest.class));
current =super.registerFileSet(current.getMongo_id(),req);
return current;
}
@ -105,9 +112,11 @@ public class StatefulMongoConcessioni extends DefaultMongoConcessioni implements
current.setRelazioneScavo(toSet);
current =replace(current);
AddSectionToConcessioneRequest req = new AddSectionToConcessioneRequest();
req.setDestinationPath(Paths.RELAZIONE);
req.setStreams(Arrays.asList(files));
current =super.registerFileSet(current.getMongo_id(),
Serialization.convert(FileSets.build(Paths.RELAZIONE,null,null,files).getTheRequest(),AddSectionToConcessioneRequest.class));
current =super.registerFileSet(current.getMongo_id(),req);
return current;
}
@ -117,8 +126,11 @@ public class StatefulMongoConcessioni extends DefaultMongoConcessioni implements
current.setAbstractRelazione(toSet);
current =replace(current);
current =super.registerFileSet(current.getMongo_id(),
Serialization.convert(FileSets.build(Paths.ABSTRACT_RELAZIONE,null,null,files).getTheRequest(),AddSectionToConcessioneRequest.class));
AddSectionToConcessioneRequest req = new AddSectionToConcessioneRequest();
req.setDestinationPath(Paths.ABSTRACT_RELAZIONE);
req.setStreams(Arrays.asList(files));
current =super.registerFileSet(current.getMongo_id(),req);
return current;
}

View File

@ -41,20 +41,23 @@ public class StatefulClientTests extends BasicVreTests {
Concessione source=TestConcessioniModel.prepareConcessione();
UploadedImage toRegisterImg= source.getImmaginiRappresentative().get(0);
for(UploadedImage toRegisterImg : source.getImmaginiRappresentative()){
// TEMP Files are hosted in INFRASTRUCTURE's VOLATILE AREA
TempFile toUpload=storage.putOntoStorage(
new File(TestConcessioniModel.getBaseFolder(),"immagine1.png"), "immagine.png");
manager.addImmagineRappresentativa(toRegisterImg, toUpload);
}
//Alternative Method
InputStreamDescriptor isDesc=
new InputStreamDescriptor(new FileInputStream(new File(TestConcessioniModel.getBaseFolder(),
"immagine1.png")), "San Mauro_drone totale.JPG");
manager.addImmagineRappresentativa(toRegisterImg, isDesc);
// //Alternative Method
// InputStreamDescriptor isDesc=
// new InputStreamDescriptor(new FileInputStream(new File(TestConcessioniModel.getBaseFolder(),
// "immagine1.png")), "San Mauro_drone totale.JPG");
// manager.addImmagineRappresentativa(toRegisterImg, isDesc);
source.getRelazioneScavo().setPolicy(AccessPolicy.EMBARGOED);
assertEquals(AccessPolicy.EMBARGOED,source.getRelazioneScavo().getPolicy());
@ -68,8 +71,8 @@ public class StatefulClientTests extends BasicVreTests {
//Abstract
manager.setAbstractRelazioneScavo(
source.getAbstractRelazione(),
storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "abstract_relazione_it.pdf"),
storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "abstract_relazione_en.pdf"));
storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "abstract.pdf"),
storage.putOntoStorage(new File(TestConcessioniModel.getBaseFolder(),"relazione.pdf"), "abstract.pdf"));

View File

@ -111,26 +111,4 @@
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-uberjar</id>
<phase>package</phase>
</execution>
<execution>
<id>make-servicearchive</id>
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -6,8 +6,8 @@ public class InterfaceConstants {
public static final String APPLICATION_BASE_PATH="geoportal-service";
public static final String APPLICATION_PATH="/srv";
public static final String SERVICE_CLASS="org.gcube.application";
public static final String SERVICE_NAME="geoportal-service";
public static String SERVICE_CLASS="org.gcube.application";
public static String SERVICE_NAME="geoportal-service";
public static final class Methods{
public static final String UCD ="ucd";

View File

@ -1,6 +1,7 @@
package org.gcube.application.geoportal.common.utils.tests;
import org.gcube.application.geoportal.common.model.document.Project;
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
public class GCubeTest {
@ -13,8 +14,11 @@ public class GCubeTest {
}
// testContext = "/pred4s/preprod/preVRE";
testContext = "/gcube/devsec/devVRE";
testContext = "/pred4s/preprod/preVRE";
InterfaceConstants.SERVICE_CLASS="Application";
InterfaceConstants.SERVICE_NAME="GeoPortal";
// testContext = "/gcube/devsec/devVRE";
System.out.println("TEST CONTEXT = "+testContext);

16
pom.xml
View File

@ -22,18 +22,18 @@
<gitBaseUrl>https://code-repo.d4science.org/gCubeSystem</gitBaseUrl>
<!-- prod -->
<!-- <gcube-bom-version>2.0.2</gcube-bom-version>
<gcube-smartgears-bom-version>2.1.1</gcube-smartgears-bom-version>
<gcube-portal-bom-version>3.6.3</gcube-portal-bom-version>
<storagehub-version-range>[1.0.0,2.0.0-SNAPSHOT)</storagehub-version-range>
-->
<!-- <gcube-bom-version>2.0.2</gcube-bom-version>-->
<!-- <gcube-smartgears-bom-version>2.1.1</gcube-smartgears-bom-version>-->
<!-- <gcube-portal-bom-version>3.6.3</gcube-portal-bom-version>-->
<!-- <storagehub-version-range>[1.0.0,2.0.0-SNAPSHOT)</storagehub-version-range>-->
<!-- <plugin-framework-version>1.0.1-SNAPSHOT</plugin-framework-version>-->
<!--dev -->
<gcube-bom-version>2.1.0-SNAPSHOT</gcube-bom-version>
<gcube-smartgears-bom-version>2.2.0-SNAPSHOT</gcube-smartgears-bom-version>
<gcube-portal-bom-version>3.7.0-SNAPSHOT</gcube-portal-bom-version>
<!-- <storagehub-version-range>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</storagehub-version-range>-->
<storagehub-version-range>[1.0.0,2.0.0-SNAPSHOT)</storagehub-version-range>
<storagehub-version-range>[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)</storagehub-version-range>
<!-- <storagehub-version-range>[1.0.0,2.0.0-SNAPSHOT)</storagehub-version-range>-->
<plugin-framework-version>1.0.1-SNAPSHOT</plugin-framework-version>
@ -292,4 +292,6 @@
</plugin>
</plugins>
</build>
</project>

View File

@ -116,12 +116,12 @@
"filePaths": [
{
"gcubeProfileFieldName": "Carica Abstract Ita (in PDF)",
"fieldDefinition": "$.abstractRelazione.children[?(@.filesetIta)]",
"fieldDefinition": "$.abstractRelazione._children[?(@.filesetIta)]",
"fieldName": "filesetIta"
},
{
"gcubeProfileFieldName": "Carica Abstract Eng (in PDF)",
"fieldDefinition": "$.abstractRelazione.children[?(@.filesetEng)]",
"fieldDefinition": "$.abstractRelazione._children[?(@.filesetEng)]",
"fieldName": "filesetEng"
}
]
@ -135,7 +135,7 @@
"filePaths": [
{
"gcubeProfileFieldName": "Relazione di fine scavo (in PDF)",
"fieldDefinition": "$.relazioneScavo.children[?(@.fileset)]",
"fieldDefinition": "$.relazioneScavo._children[?(@.fileset)]",
"fieldName": "fileset"
}
]
@ -147,11 +147,11 @@
"sectionTitle": "Immagini Rappresentative",
"minOccurs": 1,
"maxOccurs": 8,
"parentName": "$.",
"parentName": "",
"filePaths": [
{
"gcubeProfileFieldName": "Immagine",
"fieldDefinition": "$.immaginiRappresentative.children[?(@.fileset)]",
"fieldDefinition": "$.immaginiRappresentative._children[?(@.fileset)]",
"fieldName": "fileset"
}
]
@ -165,7 +165,7 @@
"filePaths": [
{
"gcubeProfileFieldName": "File",
"fieldDefinition": "$.posizionamentoScavo.children[?(@.fileset)]",
"fieldDefinition": "$.posizionamentoScavo._children[?(@.fileset)]",
"fieldName": "fileset"
}
]
@ -181,7 +181,7 @@
"filePaths": [
{
"gcubeProfileFieldName": "File",
"fieldDefinition": "$.pianteFineScavo.children[?(@.fileset)]",
"fieldDefinition": "$.pianteFineScavo._children[?(@.fileset)]",
"fieldName": "fileset"
}
]

View File

@ -63,5 +63,29 @@
</dependencies>
<!-- https://trustin.github.io/sphinx-maven-plugin/basic-usage.html#executing-within-normal-lifecycle-->
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<reports />
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>kr.motd.maven</groupId>
<artifactId>sphinx-maven-plugin</artifactId>
<version>2.10.0</version>
<configuration>
<builder>html</builder>
</configuration>
</plugin>
</plugins>
</reporting>
</project>

View File

@ -0,0 +1,808 @@
.. _Anchor For ExampleRSTFile:
#################
Example .rst File
#################
If you work with edX documentation source files, you might find this file
helpful as a reference. This file contains examples of .rst formatting.
Explanations and more context for each type of element are provided in
:ref:`Work with edX Documentation Source Files`.
This file covers the following topics.
.. contents::
:local:
:depth: 1
***************
Heading Levels
***************
::
#############
Heading 1
#############
*************
Heading 2
*************
===========
Heading 3
===========
Heading 4
************
Heading 5
===========
Heading 6
~~~~~~~~~~~
************************************************
Paragraph Text and Commented Text
************************************************
This is an example of regular text in paragraph form. There are no indents. As
a best practice, break lines at about 80 characters, so that each line has its
own line number for commenting in reviews.
.. warning:: Throughout text and code examples, make sure double quotation
marks and apostrophes are straight (") or ('), not curly quotatation marks
and apostrophes, which might be introduced when text is cut and pasted from
other sources or editors.
Boldface is used for labels that are visible in the user interface. The UI
text is surrounded by double asterisks. For example, **bold**.
Italics are rarely used. Text surrounded by single asterisks is rendered in
*italics*.
Monospace text is used for ``code examples``. Text surrounded by double grave
accent characters is rendered in monospace font.
``.. comments can be added in a file by starting a line with 2 periods and a space.``
In English source files, look for comments addressed to translators from writers.
``.. Translators: In this code example, do not translate such and such.``
***************************************
Ordered and Unordered Lists
***************************************
Use hash symbols for ordered lists.
::
#. Select **Advanced Settings**.
#. Find the **Course Advertised Start Date** policy key.
#. Enter the value you want to display.
.. note::
Ordered lists usually use numerals. Nested ordered lists (ordered lists inside
other ordered lists) use letters.
Use asterisks for unordered (bulleted) lists.
::
* Who is teaching the course?
* What university or college is the course affiliated with?
* What topics and concepts are covered in your course?
* Why should a learner enroll in your course?
=======================
Nested Lists or Content
=======================
You can include content including additional lists and code examples inside
lists.
Unordered List inside Ordered List
***************************************
To include an unordered list inside an ordered list, indent the unordered list
three spaces. The first bullet in the unordered list must be flush with the
text in the ordered list.
::
#. Review your entry to verify that the key is accurate and that it is
surrounded by quotation marks. If there is a list of keys, they must be
comma separated.
* In this example, the key for the Annotation Problem tool is the only
value in the list.
* In this example, the key for the Annotation Problem tool is added at
the beginning of a list of other keys.
#. Select **Save Changes**.
.. image:: /Images/Lists_UL_inside_OL.png
:width: 500
:alt: An unordered (bulleted) list inside an ordered (numbered) list.
Ordered List inside Unordered List
***************************************
To include an ordered list inside an unordered list, indent the ordered list
two spaces. The first number or letter of the ordered list must be flush with
the text in the unordered list.
::
* Review your entry to verify that the key is accurate and that it is
surrounded by quotation marks. If there is a list of keys, they must be comma
separated.
#. In this example, the key for the Annotation Problem tool is the only
value in the list.
#. In this example, the key for the Annotation Problem tool is added at the
beginning of a list of other keys.
* Select **Save Changes**.
.. There isn't a screen shot of the above example yet because these lists don't
.. render correctly locally, and searching for an example in the built docs
.. online was taking too much time.
Unordered List inside Unordered List
***************************************
To include an unordered list inside another unordered list, indent the second
unordered list two spaces. The first bullet of the second unordered list must
be flush with the text in the unordered list.
::
* Review your entry to verify that the key is accurate and that it is
surrounded by quotation marks. If there is a list of keys, they must be
comma separated.
#. In this example, the key for the Annotation Problem tool is the only
value in the list.
#. In this example, the key for the Annotation Problem tool is added at the
beginning of a list of other keys.
* Select **Save Changes**.
.. image:: /Images/Lists_UL_inside_UL.png
:width: 500
:alt: An ordered (numbered) list inside an unordered (bulleted) list.
Ordered List inside Ordered List
***************************************
To include another ordered list inside an ordered list, indent the second
ordered list three spaces. The second ordered list must be flush with the text
in the numbered list. The first ordered list uses numerals, and the second
uses letters.
::
#. Review your entry to verify that the key is accurate and that it is
surrounded by quotation marks. If there is a list of keys, they must be
comma separated.
#. In this example, the key for the Annotation Problem tool is the only
value in the list.
#. In this example, the key for the Annotation Problem tool is added at
the beginning of a list of other keys.
#. Select **Save Changes**.
.. There isn't a screen shot of the above example yet because these lists don't
.. render correctly locally, and searching for an example in the built docs
.. online was taking too much time.
Code, Images, and Other Content inside Lists
*********************************************
To include content such as code or an image inside a list, position the code or
image directive flush with the text in the list. That is, indent three spaces
for ordered lists and two spaces for unordered lists.
::
#. In the ``lms.yml`` and ``studio.yml`` files, set the value of
``CERTIFICATES_HTML_VIEW`` within the ``FEATURES`` object to ``true``.
.. code-block:: bash
"FEATURES": {
...
'CERTIFICATES_HTML_VIEW': true,
...
}
#. Save the ``lms.yml`` and ``studio.yml`` files.
***************************************
Conditional Text
***************************************
To conditionalize a single paragraph, use either the ``only:: Partners`` or
the ``only:: Open_edX`` directive, and indent the paragraph under the
directive. You can add the conditional text as regular text or as a note.
Make sure to indent the paragraph under the directive.
::
.. only:: Partners
Data about course enrollment is available from edX Insights. You can access
Insights from the instructor dashboard for your live course: after you select
**Instructor**, follow the link in the banner at the top of each page. For
more information, see `Using edX Insights`_.
.. only:: Open_edX
.. note::
If you want to require an entrance exam for your course, you also create
the exam in the course outline. Before you can create an exam, you must
set your course to require an entrance exam in Studio. For more
information, see :ref:`Require an Entrance Exam`.
To conditionalize more than a paragraph, use either the ``only:: Partners`` or
the ``only:: Open_edX`` directive, and then use an ``include::`` directive
indented under the only directive.
::
.. only:: Open_edX
.. include:: ../../../shared/building_and_running_chapters/running_course/Section_course_student.rst
*********************************
Notes and Warnings
*********************************
::
.. note::
This is note text. If note text runs over a line, make sure the lines wrap
and are indented to the same level as the note tag. If formatting is
incorrect, part of the note might not render in the HTML output.
Notes can have more than one paragraph. Successive paragraphs must indent
to the same level as the rest of the note.
.. note::
This is note text. If note text runs over a line, make sure the lines wrap
and are indented to the same level as the note tag. If formatting is
incorrect, part of the note might not render in the HTML output.
Notes can have more than one paragraph. Successive paragraphs must indent to
the same level as the rest of the note.
::
.. warning::
Warnings are formatted in the same way as notes. In the same way, lines
must be broken and indented under the warning tag.
.. warning::
Warnings are formatted in the same way as notes. In the same way, lines must
be broken and indented under the warning tag.
****************************
Cross-References
****************************
In edX documents, you can include cross-references to other locations in the
same edX document, to locations in other edX documents (such as a cross-
reference from a location in the *Building and Running an edX Course* guide to
a location in the *EdX Learner's Guide*), to JIRA stories, and to external
websites. In this section, "EdX documents" refers to the resources, including
guides and tutorials, that are listed on docs.edx.org.
For more information about creating cross-references using RST and Sphinx, see
`Cross-referencing arbitrary locations`_ in the online Sphinx documentation.
==================================================
Cross-References to Locations in the Same Document
==================================================
Cross-references to locations in the same document use anchors that are located
above the heading for each topic or section. Anchors can contain numbers,
letters, spaces, underscores, and hyphens, but cannot include punctuation.
Anchors use the following syntax.
::
.. _Anchor Text:
The following example shows an anchor for a section, followed by the heading
for that section. ``SFD SN Keyboard Shortcuts`` is the anchor text.
::
.. _SFD SN Keyboard Shortcuts:
******************************
Keyboard Shortcuts for Notes
******************************
To create cross-references to locations in the same document, you can use the
anchor only, or you can use your own text. The anchor text is never visible in
output. It is replaced by the text of the heading that follows the anchor or
the text that you specify.
Cross-References Using the Anchor Only
********************************************
To add a cross-reference to a specific location in a document and use the text
of the heading for that location as link text, use ``:ref:`Anchor Text```
syntax, as in the following example.
::
For more information about using keyboard shortcuts, see :ref:`SFD SN
Keyboard Shortcuts`.
In this example, "SFD SN Keyboard Shortcuts" is the anchor text for a section
that is titled "Keyboard Shortcuts for Notes". Readers will see the following
text, and "Keyboard Shortcuts for Notes" will be an active link.
::
For more information about using keyboard shortcuts, see Keyboard Shortcuts
for Notes.
Cross-References Using Specified Link Text
*******************************************
For internal cross-references that use text other than the heading for the
section that you're linking to, use ``:ref:`specified text<Anchor Text>```
syntax, as in the following example.
::
If you want to, you can use :ref:`keyboard shortcuts<SFD SN Keyboard
Shortcuts>` to create, edit, and view notes.
.. note::
Do not include a space between the last word of the link text and the opening
angle bracket for the anchor text.
In this example, "keyboard shortcuts" is the link text, and "SFD SN Keyboard
Shortcuts" is the anchor text for a section that is titled "Keyboard Shortcuts
for Notes". Readers will see the following text, and "keyboard shortcuts" will
be an active link.
::
If you want to, you can use keyboard shortcuts to create, edit, and view your
notes.
==========================================================
Cross-References to Locations in Different edX Documents
==========================================================
You can create cross-references between different edX documents. For example,
you can create a link in *Building and Running an edX Course* to a topic in the
*EdX Learner's Guide*. To do this, you use the intersphinx map ID of the
document that you want to link to and the anchor text for the section you want.
The cross-reference uses the following syntax.
::
:ref:`intersphinx_map_ID:Anchor Name`
For example:
::
:ref:`partnercoursestaff:Release Dates`
To find the intersphinx map ID for the document that you want, follow these
steps.
#. Open the conf.py file in the `edx-documentation/shared`_ folder, and then
locate the following line.
``intersphinx_mapping = {``
#. In the list that follows this line, find the ID for the document that you
want. The text between the single quotation marks (') at the beginning of
each line is the intersphinx map ID for the document.
The following intersphinx map IDs are the most frequently used.
.. list-table::
:widths: 25 25 50
* - Map ID
- Document
* - ``partnercoursestaff``
- *Building and Running an edX Course*
* - ``opencoursestaff``
- *Building and Running an Open edX Course*
* - ``learners``
- *EdX Learner's Guide*
* - ``openlearners``
- *Open edX Learner's Guide*
* - ``data``
- *EdX Research Guide*
* - ``insights``
- *Using edX Insights*
* - ``installation``
- *Installing, Configuring, and Running the Open edX Platform*
* - ``opendevelopers``
- *Open edX Developer's Guide*
* - ``partnerreleasenotes``
- Partner release notes
* - ``openreleasenotes``
- Open edX release notes
============================================
Cross-References to JIRA
============================================
For cross-references to JIRA tickets, use the ``:jira:`PROJECT-ticketnumber```
syntax, as in the following example.
::
For more information, see :jira:`DOC-2316`.
Note that ``jira`` replaces ``ref`` for these links.
Readers will see the following text, and "DOC-2316" will be an active link.
``For more information, see DOC-2316.``
============================================
Cross-References to External Web Pages
============================================
A cross-reference to an external web page has several elements.
* The URL of the external web page.
* The text to use for the cross-reference. This text becomes an anchor in the
file that contains the cross-reference.
* An ``include`` directive in the file that contains the cross-reference to the
links.rst file that is located in the ``edx-documentation/en_us/links/``
folder.
* An entry in the links.rst file.
To create an external cross-reference, follow these steps.
#. In the paragraph where you want the cross-reference, add the text that you
want to use for the link, formatted as follows (where "Release Pages" is the
link text). This creates an anchor out of that text.
::
The edX engineering wiki `Release Pages`_ provide access to detailed
information about every change made to the edx-platform GitHub
repository.
#. In the file that contains the cross-reference, add an ``include`` directive
for the ``edx-documentation/en_us/links/links.rst`` file if one does not
already exist. These ``include`` directives are typically at the end of the
file.
::
.. include:: ../../links/links.rst
.. note::
The path to the links.rst file depends on the location of the file where
you are creating the link. For example, the path might be
``../../../links/links.rst`` or ``../links/links.rst``.
#. In the ``edx-documentation/en_us/links/links.rst`` file, add an entry for
the anchor text and the URL of the external website, formatted as follows.
Make sure that the anchor text in this file matches the anchor text in the
file that contains the cross-reference exactly, including capitalization.
::
.. _Release Pages: https://openedx.atlassian.net/wiki/display/ENG/Release+Pages
Readers will see the following text. "Release Pages" will be an active link.
::
The edX engineering wiki Release Pages provide access to detailed
information about every change made to the edx-platform GitHub
repository.
****************************
Image References
****************************
Image references look like this.
::
.. image:: /Images/Course_Outline_LMS.png
:width: 100
:alt: A screen capture showing the elements of the course outline in the LMS.
Image links can include optional specifications such as height, width, or
scale. Alternative text for screen readers is required for each image. Provide
text that is useful to someone who might not be able to see the image.
.. _Examples of Tables:
************************************
Tables
************************************
Each example in this section shows the raw formatting for the table followed
by the table as it would render (if you are viewing this file as part of the
Style Guide).
======================================
Example of a table with an empty cell
======================================
The empty cell is the second column in the first row of this table.
::
.. list-table::
:widths: 25 25 50
* - Annotation Problem
-
- Annotation problems ask students to respond to questions about a
specific block of text. The question appears above the text when the
student hovers the mouse over the highlighted text so that students can
think about the question as they read.
* - Example Poll
- Conditional Module
- You can create a conditional module to control versions of content that
groups of students see. For example, students who answer "Yes" to a
poll question then see a different block of text from the students who
answer "No" to that question.
* - Example JavaScript Problem
- Custom JavaScript
- Custom JavaScript display and grading problems (also called *custom
JavaScript problems* or *JS input problems*) allow you to create a
custom problem or tool that uses JavaScript and then add the problem or
tool directly into Studio.
.. list-table::
:widths: 25 25 50
* - Annotation Problem
-
- Annotation problems ask students to respond to questions about a
specific block of text. The question appears above the text when the
student hovers the mouse over the highlighted text so that students can
think about the question as they read.
* - Example Poll
- Conditional Module
- You can create a conditional module to control versions of content that
groups of students see. For example, students who answer "Yes" to a
poll question then see a different block of text from the students who
answer "No" to that question.
* - Exampel JavaScript Problem
- Custom JavaScript
- Custom JavaScript display and grading problems (also called *custom
JavaScript problems* or *JS input problems*) allow you to create a
custom problem or tool that uses JavaScript and then add the problem or
tool directly into Studio.
====================================
Example of a table with a header row
====================================
::
.. list-table::
:widths: 15 15 70
:header-rows: 1
* - First Name
- Last Name
- Residence
* - Elizabeth
- Bennett
- Longbourne
* - Fitzwilliam
- Darcy
- Pemberley
.. list-table::
:widths: 15 15 70
:header-rows: 1
* - First Name
- Last Name
- Residence
* - Elizabeth
- Bennett
- Longbourne
* - Fitzwilliam
- Darcy
- Pemberley
===============================================
Example of a table with a boldface first column
===============================================
::
.. list-table::
:widths: 15 15 70
:stub-columns: 1
* - First Name
- Elizabeth
- Fitzwilliam
* - Last Name
- Bennett
- Darcy
* - Residence
- Longboure
- Pemberley
.. list-table::
:widths: 15 15 70
:stub-columns: 1
* - First Name
- Elizabeth
- Fitzwilliam
* - Last Name
- Bennett
- Darcy
* - Residence
- Longboure
- Pemberley
==============================================================
Example of a table with a cell that includes an unordered list
==============================================================
The blank lines before and after the unordered list are critical for the list
to render correctly.
::
.. list-table::
:widths: 15 15 60
:header-rows: 1
* - Field
- Type
- Details
* - ``correct_map``
- dict
- For each problem ID value listed by ``answers``, provides:
* ``correctness``: string; 'correct', 'incorrect'
* ``hint``: string; Gives optional hint. Nulls allowed.
* ``hintmode``: string; None, 'on_request', 'always'. Nulls allowed.
* ``msg``: string; Gives extra message response.
* ``npoints``: integer; Points awarded for this ``answer_id``. Nulls allowed.
* ``queuestate``: dict; None when not queued, else ``{key:'', time:''}``
where ``key`` is a secret string dump of a DateTime object in the form
'%Y%m%d%H%M%S'. Nulls allowed.
* - ``grade``
- integer
- Current grade value.
* - ``max_grade``
- integer
- Maximum possible grade value.
.. list-table::
:widths: 15 15 60
:header-rows: 1
* - Field
- Type
- Details
* - ``correct_map``
- dict
- For each problem ID value listed by ``answers``, provides:
* ``correctness``: string; 'correct', 'incorrect'
* ``hint``: string; Gives optional hint. Nulls allowed.
* ``hintmode``: string; None, 'on_request', 'always'. Nulls allowed.
* ``msg``: string; Gives extra message response.
* ``npoints``: integer; Points awarded for this ``answer_id``. Nulls allowed.
* ``queuestate``: dict; None when not queued, else ``{key:'', time:''}``
where ``key`` is a secret string dump of a DateTime object in the form
'%Y%m%d%H%M%S'. Nulls allowed.
* - ``grade``
- integer
- Current grade value.
* - ``max_grade``
- integer
- Maximum possible grade value.
*****************
Code Formatting
*****************
===========
Inline code
===========
In inline text, any text can be formatted as code (monospace font) by
enclosing the selection within a pair of double "grave accent" characters (`).
For example, ````these words```` are formatted in a monospace font when the
documentation is output as PDF or HTML.
===========
Code blocks
===========
To set text in a code block, end the previous paragaph with 2 colons, leave
one line before the intended code block, and make sure the code block is
indented beyond the first colon.
::
For example, this is the introductory paragraph
::
<p>and this is the code block following.</p>
Alternatively, use the code-block tag. Optionally, indicate the type of code
after the 2 colons in the tag, which results in the tags within the code block
being displayed in different colors.
::
.. code-block:: xml
<problem>
<annotationresponse>
<annotationinput>
<text>PLACEHOLDER: Text of annotation</text>
<comment>PLACEHOLDER: Text of question</comment>
<comment_prompt>PLACEHOLDER: Type your response below:</comment_prompt>
<tag_prompt>PLACEHOLDER: In your response to this question, which tag below
do you choose?</tag_prompt>
<options>
<option choice="incorrect">PLACEHOLDER: Incorrect answer (to make this
option a correct or partially correct answer, change choice="incorrect"
to choice="correct" or choice="partially-correct")</option>
<option choice="correct">PLACEHOLDER: Correct answer (to make this option
an incorrect or partially correct answer, change choice="correct" to
choice="incorrect" or choice="partially-correct")</option>
<option choice="partially-correct">PLACEHOLDER: Partially correct answer
(to make this option a correct or partially correct answer,
change choice="partially-correct" to choice="correct" or choice="incorrect")
</option>
</options>
</annotationinput>
</annotationresponse>
<solution>
<p>PLACEHOLDER: Detailed explanation of solution</p>
</solution>
</problem>
.. include:: ../../links/links.rst

View File

@ -0,0 +1,22 @@
.. _suite:
###############
gCube CMS Suite
###############
The gCube CMS Suite is a gCube Application designed to manage the publication workflow of complex documents (i.e. comprising of multi-level extensible metadata, attachments.. ) called Projects.
It can manage the entire lifecycle of Projects, from their creation to access including :
- CRUD operations
- Role based access to Projects and lifecycle operations for moderation purposes
- Dataset Materialization (e.g. Image preview, SDI support)
- Dataset Indexing (e.g. ISO Metadata Catalogues, Centroids layers, CKAN)
- Dataset Processing (e.g. DataMiner)
- Customizable Insertion Forms, Navigation and Access GUIs
Every Project is associated to a Use Case Descriptor, which defines :
- Role based access and operation
- Project validation schema
- Involved plugins configuration (e.g. lifecycle type, materialization, GUIs)