diff --git a/app/avo/resources/actor.rb b/app/avo/resources/actor.rb
index 760601bf2a8ca4452b23cb24be0eed82cd218d8b..606eee209129aac65c50f3ccfd725862b5e0df7b 100644
--- a/app/avo/resources/actor.rb
+++ b/app/avo/resources/actor.rb
@@ -1,5 +1,6 @@
 class Avo::Resources::Actor < Avo::BaseResource
   self.title = -> { "#{record.forename} #{record.name}".strip }
+  self.index_query = -> { query.order(name: :asc) }
 
   # self.includes = []
   # self.attachments = []
@@ -8,8 +9,8 @@ class Avo::Resources::Actor < Avo::BaseResource
   # }
 
   def fields
-    field :name, as: :short_text
-    field :forename, as: :text, nullable: true
+    field :name, as: :short_text, sortable: true
+    field :forename, as: :text, nullable: true, sortable: true
     field :actor_type, as: :belongs_to
     field :address, as: :short_text, nullable: true
     field :phone, as: :text, nullable: true
diff --git a/app/avo/resources/actor_type.rb b/app/avo/resources/actor_type.rb
index b9cee358d8f03c7e7e196d8d70983160afa8e2e9..dc81463da5e2d116e4e57816c4f324280ddc04be 100644
--- a/app/avo/resources/actor_type.rb
+++ b/app/avo/resources/actor_type.rb
@@ -1,5 +1,7 @@
 class Avo::Resources::ActorType < Avo::BaseResource
   self.title = :actor_type
+  self.index_query = -> { query.order(actor_type: :asc) }
+
   # self.includes = []
   # self.attachments = []
   # self.search = {
@@ -7,6 +9,6 @@ class Avo::Resources::ActorType < Avo::BaseResource
   # }
 
   def fields
-    field :actor_type, as: :text
+    field :actor_type, as: :text, sortable: true
   end
 end
diff --git a/app/avo/resources/archaeometry_analysis.rb b/app/avo/resources/archaeometry_analysis.rb
index d163180ee668c234881b096140d3346df55d603c..0c5997db03f4fc249644bed08e0c0a5ffec6687e 100644
--- a/app/avo/resources/archaeometry_analysis.rb
+++ b/app/avo/resources/archaeometry_analysis.rb
@@ -1,5 +1,6 @@
 class Avo::Resources::ArchaeometryAnalysis < Avo::BaseResource
   self.title = :sample_no
+  self.index_query = -> { query.order(sample_no: :asc) }
 
   # self.includes = []
   # self.attachments = []
@@ -8,19 +9,18 @@ class Avo::Resources::ArchaeometryAnalysis < Avo::BaseResource
   # }
 
   def fields
-    field :id, as: :id
-    field :sample_no, as: :text
+    field :sample_no, as: :text, sortable: true
     field :inclusions, as: :textarea
-    field :inventory_number, as: :text
-    field :type_of_ware, as: :text
-    field :fabric_type, as: :text
+    field :inventory_number, as: :text, sortable: true
+    field :type_of_ware, as: :text, sortable: true
+    field :fabric_type, as: :text, sortable: true
     field :comment, as: :textarea
+    field :discovery_site, as: :text, sortable: true
+    field :chronology, as: :text, sortable: true
+    field :date, as: :date
+    field :author_institution, as: :text
     field :author_name, as: :text
     field :author_email, as: :text
-    field :author_institution, as: :text
-    field :discovery_site, as: :text
-    field :chronology, as: :text
-    field :date, as: :date
     field :void_abundance, as: :text
     field :quartz_grains, as: :text
     field :optical_activity, as: :text
diff --git a/app/avo/resources/fabric_code.rb b/app/avo/resources/fabric_code.rb
index 2461a7e886d4d9bfa411691053f8781ed765e483..f9335cbe4e42c9cc1d17380d42243a2fc08c9695 100644
--- a/app/avo/resources/fabric_code.rb
+++ b/app/avo/resources/fabric_code.rb
@@ -11,7 +11,6 @@ class Avo::Resources::FabricCode < Avo::BaseResource
   # }
 
   def fields
-    field :id, as: :id
     field :gazetteer, as: :belongs_to
     field :ware, as: :belongs_to
     field :serial_number, as: :number
diff --git a/app/avo/resources/sample.rb b/app/avo/resources/sample.rb
index 7bae194c1fb0c9070c2813b94f8588647fe1e7c9..c2be8364efb00a6f6f9577e161f54574de076819 100644
--- a/app/avo/resources/sample.rb
+++ b/app/avo/resources/sample.rb
@@ -1,5 +1,6 @@
 class Avo::Resources::Sample < Avo::BaseResource
   self.title = :sample_no
+  self.index_query = -> { query.includes(:ware, :fabric_code, :status, :taken_by_institution, :taken_by_person, :production_site, :discovery_site, :vessel_type, :certainty_archaeometric, :certainty_archaeological, :fragmentation, :surface_description, :texture, :hardness).order(sample_no: :asc) }
 
   # self.includes = []
   # self.attachments = []
@@ -8,15 +9,15 @@ class Avo::Resources::Sample < Avo::BaseResource
   # }
 
   def fields
-    field :sample_no, as: :text
+    field :sample_no, as: :text, sortable: true
     field :publication_restricted, as: :boolean
-    field :fabric_code, as: :belongs_to
+    field :fabric_code, as: :belongs_to, sortable: -> { query.joins(:fabric_code).order(fabric_code: {serial_number: direction}) }
     field :previous_fabric_name, as: :textarea
-    field :ware, as: :belongs_to
+    field :ware, as: :belongs_to, sortable: -> { query.joins(:ware).order(name: direction) }
     field :ware_addinfo, as: :textarea
     field :analysis_method_ids, as: :select, options: -> { AnalysisMethod.all.map { |am| ["#{am.code} - #{am.method}", am.id] } }, multiple: true
     field :analysis_method_addinfo, as: :textarea
-    field :analysis_author, as: :number
+    field :analysis_author, as: :number, sortable: true
     field :pet_min_type, as: :textarea
     field :analysis_publication, as: :textarea
     field :status, as: :belongs_to
@@ -24,19 +25,19 @@ class Avo::Resources::Sample < Avo::BaseResource
     field :taken_by_institution, as: :belongs_to
     field :taken_by_person, as: :belongs_to
     field :taken_by_addinfo, as: :textarea
-    field :production_site, as: :belongs_to
+    field :production_site, as: :belongs_to, sortable: -> { query.joins(:production_site).order(production_site: {name: direction}) }
     field :production_site_addinfo, as: :textarea
     field :context_code, as: :text
     field :certainty_archaeometric, as: :belongs_to
     field :certainty_archaeological, as: :belongs_to
-    field :discovery_site, as: :belongs_to
+    field :discovery_site, as: :belongs_to, sortable: -> { query.joins(:discovery_site).order(discovery_site: {name: direction}) }
     field :discovery_site_addinfo, as: :textarea
     field :images, as: :textarea
-    field :vessel_type, as: :belongs_to
+    field :vessel_type, as: :belongs_to, sortable: -> { query.joins(:vessel_type).order(vessel_type: {name: direction}) }
     field :vessel_type_addinfo, as: :textarea
     field :classification_id, as: :number
     field :classification_addinfo, as: :textarea
-    field :chronology_object_ID, as: :number
+    field :chronology_object_ID, as: :number, sortable: true
     field :chronology_object_addinfo, as: :textarea
     field :chronology_context, as: :textarea
     field :chronology_context_addinfo, as: :textarea