AIRAVATA-3648 Show last modified time in user storage views
diff --git a/django_airavata/apps/api/serializers.py b/django_airavata/apps/api/serializers.py
index 84d32b5..d7a52d4 100644
--- a/django_airavata/apps/api/serializers.py
+++ b/django_airavata/apps/api/serializers.py
@@ -531,6 +531,7 @@
 class DataProductSerializer(
         thrift_utils.create_serializer_class(DataProductModel)):
     creationTime = UTCPosixTimestampDateTimeField()
+    modifiedTime = UTCPosixTimestampDateTimeField()
     lastModifiedTime = UTCPosixTimestampDateTimeField()
     replicaLocations = DataReplicaLocationSerializer(many=True)
     downloadURL = serializers.SerializerMethodField()
@@ -932,6 +933,7 @@
     downloadURL = serializers.SerializerMethodField()
     dataProductURI = serializers.CharField(source='data-product-uri')
     createdTime = serializers.DateTimeField(source='created_time')
+    modifiedTime = serializers.DateTimeField(source='modified_time')
     mimeType = serializers.CharField(source='mime_type')
     size = serializers.IntegerField()
     hidden = serializers.BooleanField()
@@ -946,6 +948,7 @@
     name = serializers.CharField()
     path = serializers.CharField()
     createdTime = serializers.DateTimeField(source='created_time')
+    modifiedTime = serializers.DateTimeField(source='modified_time')
     size = serializers.IntegerField()
     hidden = serializers.BooleanField()
     url = FullyEncodedHyperlinkedIdentityField(
@@ -972,6 +975,7 @@
     name = serializers.CharField()
     path = serializers.CharField()
     createdTime = serializers.DateTimeField(source='created_time')
+    modifiedTime = serializers.DateTimeField(source='modified_time')
     size = serializers.IntegerField()
     url = serializers.SerializerMethodField()
 
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageDirectory.js b/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageDirectory.js
index f1c0c3a..2ff65df 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageDirectory.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageDirectory.js
@@ -4,6 +4,7 @@
   "name",
   "path",
   { name: "createdTime", type: "date" },
+  { name: "modifiedTime", type: "date" },
   "size",
   "hidden",
 ];
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageFile.js b/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageFile.js
index 85d070a..ee6ac6a 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageFile.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/UserStorageFile.js
@@ -5,6 +5,7 @@
   "downloadURL",
   "dataProductURI",
   { name: "createdTime", type: "date" },
+  { name: "modifiedTime", type: "date" },
   "size",
   "mimeType",
 ];
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue
index 96a2ffe..e480ba3 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/ExperimentStoragePathViewer.vue
@@ -24,8 +24,8 @@
           {{ data.item.name }}</b-link
         >
       </template>
-      <template slot="cell(createdTimestamp)" slot-scope="data">
-        <human-date :date="data.item.createdTime" />
+      <template slot="cell(modifiedTimestamp)" slot-scope="data">
+        <human-date :date="data.item.modifiedTime" />
       </template>
       <template slot="cell(actions)" slot-scope="data">
         <b-link
@@ -87,8 +87,8 @@
           formatter: (value) => this.getFormattedSize(value),
         },
         {
-          label: "Created Time",
-          key: "createdTimestamp",
+          label: "Last Modified",
+          key: "modifiedTimestamp",
           sortable: true,
         },
         {
@@ -106,8 +106,8 @@
               name: d.name,
               path: d.path,
               type: "dir",
-              createdTime: d.createdTime,
-              createdTimestamp: d.createdTime.getTime(), // for sorting
+              modifiedTime: d.modifiedTime,
+              modifiedTimestamp: d.modifiedTime.getTime(), // for sorting
               size: d.size,
             };
           });
@@ -118,8 +118,8 @@
             type: "file",
             dataProductURI: f.dataProductURI,
             downloadURL: f.downloadURL,
-            createdTime: f.createdTime,
-            createdTimestamp: f.createdTime.getTime(), // for sorting
+            modifiedTime: f.modifiedTime,
+            modifiedTimestamp: f.modifiedTime.getTime(), // for sorting
             size: f.size,
           };
         });
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue
index 71f6991..974c27c 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/storage/UserStoragePathViewer.vue
@@ -44,8 +44,8 @@
           :allow-preview="allowPreview"
         />
       </template>
-      <template slot="cell(createdTimestamp)" slot-scope="data">
-        <human-date :date="data.item.createdTime" />
+      <template slot="cell(modifiedTimestamp)" slot-scope="data">
+        <human-date :date="data.item.modifiedTime" />
       </template>
       <template slot="cell(actions)" slot-scope="data">
         <b-button
@@ -159,8 +159,8 @@
           formatter: (value) => this.getFormattedSize(value),
         },
         {
-          label: "Created Time",
-          key: "createdTimestamp",
+          label: "Last Modified",
+          key: "modifiedTimestamp",
           sortable: true,
         },
         {
@@ -178,8 +178,8 @@
               name: d.name,
               path: d.path,
               type: "dir",
-              createdTime: d.createdTime,
-              createdTimestamp: d.createdTime.getTime(), // for sorting
+              modifiedTime: d.modifiedTime,
+              modifiedTimestamp: d.modifiedTime.getTime(), // for sorting
               size: d.size,
             };
           });
@@ -190,8 +190,8 @@
             type: "file",
             dataProductURI: f.dataProductURI,
             downloadURL: f.downloadURL,
-            createdTime: f.createdTime,
-            createdTimestamp: f.createdTime.getTime(), // for sorting
+            modifiedTime: f.modifiedTime,
+            modifiedTimestamp: f.modifiedTime.getTime(), // for sorting
             size: f.size,
           };
         });
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue
index 40f6671..bd0e83d 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/UserStorageContainer.vue
@@ -81,6 +81,7 @@
               files: [
                 {
                   createdTime: dataProduct.creationTime,
+                  modifiedTime: dataProduct.lastModifiedTime,
                   dataProductURI: this.dataProductUri,
                   downloadURL: dataProduct.downloadURL,
                   mimeType: dataProduct.productMetadata["mime-type"],
diff --git a/requirements.txt b/requirements.txt
index d9e4f44..a84adf3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -21,7 +21,7 @@
 grpcio-tools==1.34.1
 grpcio==1.34.1
 
-airavata-django-portal-sdk==1.4.1
+airavata-django-portal-sdk==1.5.0
 airavata-python-sdk==1.0.2
 
 -e "."