This page should only be used if script asks you to manually migrate skin.20210917.WORKSPACES.activitystream
In the activity flow, the sax for added members has been modified to include the type (user or group) and identifier (login#population) of the member.
XML for adding members in 2.1.x and below
<members> <members>Pauline Martin</members> <members>Jean Talu</members> </members>
XML for adding members from 2.2.x onwards
<members> <members> <identity>pmartin#ametys_demo_users</identity> <name>Paul Martin</name> <type>user</type></members> <members> <identity>jtalu#ametys_demo_users</identity> <name>Jean Talu</name> <type>user</type> </members> </members>
If you have overloaded the "as-project-member" template, you must replace it with an example:
<xsl:for-each select="members/members"> <xsl:if test="position() != 1"><xsl:text>, </xsl:text> </xsl:if> <xsl:value-of select="." /> </xsl:for-each>
by
<xsl:for-each select="members/members"> <xsl:if test="position() != 1"><xsl:text>, </xsl:text></xsl:if> <xsl:value-of select="name"/> </xsl:for-each>
This page should only be used if script asks you to manually migrate skin.20211006.WORKSPACES.taskslist
The XML returned by the service has changed:
The priority attribute no longer exists
The status attribute no longer exists. The service only processes unfinished tasks.
The title attribute is transformed into a label.
The format of the people assigned(attachments) to the task has changed.
The projectCategory attribute has been added.
All spot attributes are now added.
Before :
<tasks> <task id="task://44aa94a0-6ddc-414f-8540-a3f7df015bd6" pageid="page://a128d3ce-4af3-4094-a7e1-df50898710be"> <project>Titi</project> <title>Titre</title> <priority name="important">Important</priority> <status name="closed">Fermé</status> <assignments> <user login="loic" population="population"> <lastname>Bouchard</lastname> <firstname>Gerard</firstname> <email>loic.bouchet@ametys.org</email> <fullname>Gerard Bouchard</fullname> <sortablename>Bouchard Gerard</sortablename> <populationLabel>Population</populationLabel> </user> <user login="laurence" population="population"> <lastname>Aumeunier</lastname> <firstname>Laurence</firstname> <email>laurence.aumeunier@anyware-services.com</email> <fullname>Laurence Aumeunier</fullname> <sortablename>Aumeunier Laurence</sortablename> <populationLabel>Population</populationLabel> </user> <user login="laure" population="population"> <lastname>Lopez</lastname> <firstname>Laure</firstname> <email>laure.lopez@anyware-services.com</email> <fullname>Laure Lopez</fullname> <sortablename>Lopez Laure</sortablename> <populationLabel>Population</populationLabel> </user> </assignments> </task> </tasks>
After :
<tasks> <task id="task://44aa94a0-6ddc-414f-8540-a3f7df015bd6" pageid="page://a128d3ce-4af3-4094-a7e1-df50898710be"> <project>Titi</project> <projectCategory id="project-category://e08e7608-a067-4578-a4e0-69ec72306cd3" name="OFFRE_DE_FORMATION" color="#669933">Offre de formation</projectCategory> <tasksListId dataPath="tasksListId" fullDataPath="tasksListId" modelPath="tasksListId" fullModelPath="tasksListId" typeid="string" multiple="false">tasks-list://c7e4f5e4-549f-404d-b782-2bca99b64fc7</tasksListId> <tasksListPosition dataPath="tasksListPosition" fullDataPath="tasksListPosition" modelPath="tasksListPosition" fullModelPath="tasksListPosition" typeid="long" multiple="false">0</tasksListPosition> <label dataPath="label" fullDataPath="label" modelPath="label" fullModelPath="label" typeid="string" multiple="false">Titre</label> <description dataPath="description" fullDataPath="description" modelPath="description" fullModelPath="description" typeid="string" multiple="false">Description</description> <startDate dataPath="startDate" fullDataPath="startDate" modelPath="startDate" fullModelPath="startDate" typeid="date" multiple="false"></startDate> <dueDate dataPath="dueDate" fullDataPath="dueDate" modelPath="dueDate" fullModelPath="dueDate" typeid="date" multiple="false" date-value="2021-10-08">2021-10-08T00:00:00.000+02:00</dueDate> <isClosed dataPath="isClosed" fullDataPath="isClosed" modelPath="isClosed" fullModelPath="isClosed" typeid="boolean" multiple="false">false</isClosed> <closeAuthor dataPath="closeAuthor" fullDataPath="closeAuthor" modelPath="closeAuthor" fullModelPath="closeAuthor" typeid="user" multiple="false"></closeAuthor> <closeDate dataPath="closeDate" fullDataPath="closeDate" modelPath="closeDate" fullModelPath="closeDate" typeid="date" multiple="false"></closeDate> <author dataPath="author" fullDataPath="author" modelPath="author" fullModelPath="author" typeid="user" multiple="false" login="loic" populationid="population" email="loic.bouchet@ametys.org">Gerard Bouchard</author> <assignments dataPath="assignments" fullDataPath="assignments" modelPath="assignments" fullModelPath="assignments" typeid="user" multiple="true" login="loic" populationid="population" email="loic.bouchet@ametys.org">Gerard Bouchard</assignments> <assignments dataPath="assignments" fullDataPath="assignments" modelPath="assignments" fullModelPath="assignments" typeid="user" multiple="true" login="laurence" populationid="population" email="laurence.aumeunier@anyware-services.com">Laurence Aumeunier</assignments> <assignments dataPath="assignments" fullDataPath="assignments" modelPath="assignments" fullModelPath="assignments" typeid="user" multiple="true" login="laure" populationid="population" email="laure.lopez@anyware-services.com">Laure Lopez</assignments> <creationDate dataPath="creationDate" fullDataPath="creationDate" modelPath="creationDate" fullModelPath="creationDate" typeid="datetime" multiple="false">2021-07-08T14:09:11.446Z</creationDate> <lastModified dataPath="lastModified" fullDataPath="lastModified" modelPath="lastModified" fullModelPath="lastModified" typeid="datetime" multiple="false">2021-10-05T11:15:19.718Z</lastModified> <attachments dataPath="attachments" fullDataPath="attachments" modelPath="attachments" fullModelPath="attachments" typeid="file" multiple="true" mime-type="image/jpeg" lastmodified="2021-07-08T14:09:18.201Z" filename="wallpaper.jpg" type="metadata" size="567006" path="attachments" uri="attachments"></attachments> <checkList dataPath="checkList" fullDataPath="checkList" modelPath="checkList" fullModelPath="checkList" entrycount="3"> <entry dataPath="checkList[1]" fullDataPath="checkList[1]" name="1"> <label dataPath="checkList[1]/label" fullDataPath="checkList[1]/label" modelPath="checkList/label" fullModelPath="checkList/label" typeid="string" multiple="false">Item 1</label> <ischecked dataPath="checkList[1]/isChecked" fullDataPath="checkList[1]/isChecked" modelPath="checkList/isChecked" fullModelPath="checkList/isChecked" typeid="boolean" multiple="false">false</ischecked> </entry> <entry dataPath="checkList[2]" fullDataPath="checkList[2]" name="2"> <label dataPath="checkList[2]/label" fullDataPath="checkList[2]/label" modelPath="checkList/label" fullModelPath="checkList/label" typeid="string" multiple="false">Item 2</label> <ischecked dataPath="checkList[2]/isChecked" fullDataPath="checkList[2]/isChecked" modelPath="checkList/isChecked" fullModelPath="checkList/isChecked" typeid="boolean" multiple="false">false</ischecked> </entry> <entry dataPath="checkList[3]" fullDataPath="checkList[3]" name="3"> <label dataPath="checkList[3]/label" fullDataPath="checkList[3]/label" modelPath="checkList/label" fullModelPath="checkList/label" typeid="string" multiple="false">Item 3</label> <ischecked dataPath="checkList[3]/isChecked" fullDataPath="checkList[3]/isChecked" modelPath="checkList/isChecked" fullModelPath="checkList/isChecked" typeid="boolean" multiple="false">true</ischecked> </entry> </checkList> </task> </tasks>
This migration is automatically applied by script .
url , which serves the avatar of a given user, has been moved from plugin workspaces to plugin user-directory
Search and replace in all your XSLs or JS:
_plugins/workspaces/user
by
_plugins/user-directory/user
AND
_plugins/workspaces/current-user
by
_plugins/user-directory/current-user