7.1 Migration Guide

In this document, we will see the major steps to migrate from 7.0 to 7.1.

Please check the change log for detailed list of fixes, changes and improvements introduced in 7.1

Dependencies upgrade

Some dependencies have been upgraded to newer versions. Check the change log for detailed list.

Gradle has also been upgraded to a newer version. Upgrade the Gradle Wrapper to benefit from new features and improvements : ./gradlew wrapper --gradle-version 8.7.

Note that running the wrapper task once will update gradle-wrapper.properties only, but leave the wrapper itself in gradle-wrapper.jar untouched. This is usually fine as new versions of Gradle can be run even with ancient wrapper files. If you nevertheless want all the wrapper files to be completely up-to-date, you’ll need to run the wrapper task a second time.

Check Gradle migration to update your builds :

Gradle can display such warning : Path for java installation '/usr/lib/jvm/openjdk-11' (Common Linux Locations) does not contain a java executable. It seems that Gradle will continue to show this message if the environment is fine.

A possible workaround is to create a symbolic link to the directory containing the java executable:

cd /usr/lib/jvm/openjdk-11
sudo ln -s ../java-11-openjdk-amd64/bin .

Kanban views

In Kanban views, the template has some automatic styles applied, especially for img and h4. This makes different rendering and styles between cards and kanban views. In order to align them, these automatic predefined styles has been removed in React template only. Here are the changes :

What is concerned ? Old styles Migration

Any img elements or Image components

This put img on right bottom corner

width: 1.5rem;
height: 1.5rem;
position: absolute;
right: 0.25rem;
bottom: 0.25rem;
border-radius: 100%;

Image should be embedded in an appropriate container

<Image style={{ width: "1.5rem", height: "1.5rem", borderRadius: "100%" }}/>

Any h4 elements or <Box as="h4"> components

margin: 0 0 4px 0;
font-weight: 600;
font-size: 13px;
<Box as="strong" mb={2}>
  {some}
</Box>

Usage of card-footer classname

margin-top: 4px;
color: #777;
font-size: 12px;
<Box style={{ fontSize: "0.85rem", color: "grey" }} mt={2}>
  {some}
</Box>

Usage of css="rect-image"

Apply circle image style

border-radius: 0;

Use borderRadius on image

<Image style={{ borderRadius: "100%" }}/>

Here is a full example from legacy Angular template :

<h4>{{name}}</h4>
<img ng-if="user" ng-src="{{$image('user', 'image')}}">
<div class="card-body">{{notes}}</div>
<div class="card-footer">
    <i class='fa fa-clock-o'></i>
    <span ng-if="startDate">{{$moment(startDate).format('LLL')}}</span>
</div>

should be migrated in React template :

<Box as="strong">
    {name}
</Box>
<Box d="flex" mt={2}>
    {notes}
</Box>
<Box d="grid" gridTemplateColumns="auto auto" style={{ fontSize: "0.85rem", color: "grey" }} mt={2}>
    <Box d="flex" g={2}>
      <Icon icon={"clock"} />
      {startDate && <span>{$moment(startDate).format('LLL')}</span>}
    </Box>
    <Box d="flex" justifyContent="flex-end">
      {user && <Image src={$image('user', 'image')} style={{ width: "1.5rem", height: "1.5rem", borderRadius: "100%" }}/>}
    </Box>
</Box>

Model#cid

We added support to identify collection items from save/action response. In order to achieve this, we added an cid field in base abstract model class Model. This will cause conflicts with any entities already having an cid field. Update your entities if this is the case.

Others Notable Changes

  • Exclude archived M2O from selection : when M2O is used as a selection (NavSelect widget or in Kanban#columnBy), archived records are now excluded.

  • Move view collaboration to Axelor Enterprise Edition

  • Move SSO authentications to Axelor Enterprise Edition

  • Remove deprecated AppInfo in favor of InfoService

Check the change log for detailed list.