Параметр сортировки списка Keystonejs (версия 4) не отображается в шаблоне - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь отсортировать порядок изображений в списке моего клиента по имени. Они отсортированы в пользовательском интерфейсе администратора, но эта же схема не отражается на шаблоне сайта

const keystone = require('keystone');
const Types = keystone.Field.Types

const storage = new keystone.Storage({
    adapter: require('keystone-storage-adapter-s3'),
    s3: {
      key:process.env.S3_KEY,
      secret: process.env.S3_SECRET,
      bucket: process.env.S3_BUCKET,
      region: process.env.S3_REGION,
      path: '/',
      uploadParams: { // optional; add S3 upload params; see below for details
        ACL: 'public-read',
      },
    },
    schema: {
      bucket: true, // optional; store the bucket the file was uploaded to in your db
      etag: true, // optional; store the etag for the resource
      path: true, // optional; store the path of the file in your db
      url: true, // optional; generate & store a public URL
    },
  });

const Clients = new keystone.List('Clients',{
    map: { name: 'name' },
    autokey: { path: 'slug', from: 'name', unique: true },
    sortable:true,

});

Clients.add({
    name:{type:String},
    logo:{ type: Types.File, storage: storage },
    website:{type:Types.Url}
})


Clients.register()

1 Ответ

0 голосов
/ 04 ноября 2019

Я решил эту проблему, добавив метод .sort () при запросе списка. Когда опция сортировки добавляется в новый список, создается поле с именем sortOrder. Итак, на моем client.js я запросил это так:

let clients = keystone.list('Clients');

view.query('clients', clients.model.find().sort('sortOrder');
...