¿Cómo configurar un objeto de matriz en un complemento? Intenté usar json_schema, pero la configuración de propiedades del objeto no permite selectores como ‘category’, solo entrada de texto. Además, type: objects no funciona en absoluto en la configuración del complemento.
Configuración de json_schema
quectel_online_customer_category_customers:
default: "[]"
client: true
json_schema: QuectelOnlineCustomer::SiteSettings::CategoryCustomersJsonSchema
plugins/quectel-online-customer/lib/quectel_online_customer/site_settings/category_customers_json_schema.rb
# frozen_string_literal: true
module QuectelOnlineCustomer
module SiteSettings
class CategoryCustomersJsonSchema
def self.schema
@schema ||= begin
{
type: "array",
uniqueItems: true,
default: [],
items: {
type: "object",
title: "Configuración de atención al cliente por categoría",
additionalProperties: false, # Prohibir enviar campos no definidos
required: %w[category customers], # Ambos campos son obligatorios
properties: {
category: {
type: "category",
description: "Categoría del foro vinculada",
label: "Categoría"
},
customers: {
type: "usernames", # Selección múltiple de usuarios, alternativa a username único
description: "Cuentas de atención al cliente asignadas a esta categoría, admite selección múltiple",
label: "Usuarios de atención al cliente"
}
}
}
}
end
end
end
end
end
Sí, es posible. Sin embargo, type:objects tampoco admite type:category. Mi necesidad es seleccionar categorías y grupos.
Ah, entiendo. Entonces, la configuración del objeto se añade directamente a tu settings.yml. Querrías formatearlo de esta manera:
oauth2_category_example:
type: objects
default: []
area: "oauth2"
schema:
name: category_rule
identifier: name
properties:
name:
type: string
required: true
label: Nombre de la regla
description: Una etiqueta para esta regla
category:
type: categories
required: true
label: Categoría
description: La categoría a la que se aplica esta regla
validations:
max: 1
groups:
type: groups
label: Grupos
description: Grupos asociados a esta categoría
Lo cual produciría un desplegable de categorías como este
¿No se admite la selección única de type:category?
Según esta configuración
quectel_online_customer_category_customer_group:
type: objects
default: []
schema:
name: "Categoría de grupo de atención al cliente"
identifier: name
properties:
name:
type: string
required: true
label: Nombre
description: Nombre
category:
type: categories
required: true
label: "Categoría"
description: "Nombre de la categoría, consulte la página <a href=\"/categories\" target=\"_blank\">Todas las categorías</a>"
group_name:
type: groups
required: true
label: "Nombre del grupo de atención al cliente"
description: "Nombre del grupo de atención al cliente, caracteres en inglés, consulte la página <a href=\"/admin/groups\" target=\"_blank\">Grupos de atención al cliente</a>"
He encontrado el siguiente error:
Error ocurrido:
- Durante la renderización:
{{outlet}} para -top-level
-top-level
{{outlet}} para application
application
DiscourseRoot
{{outlet}} para admin
admin
{{outlet}} para admin.schema
schema
SchemaSettingNewEditor
SchemaSettingField
SchemaSettingTypeCategories
CategorySelector
section-link.gjs:149
Se intentó volver a renderizar, pero la aplicación Ember ha experimentado un error irrecuperable durante la renderización. Debe recargar la aplicación después de corregir la causa del error.
categories.gjs:13
Uncaught (in promise) TypeError: this.args.value?.map no es una función
at SchemaSettingTypeCategories.<anónimo> (categories.gjs:13:9)
¿Tiene esto que ver con mi versión?
Discourse v2026.1.4 — Commits · discourse/discourse · GitHub — Ember v6.6.0
¿Tienes alguna configuración obsoleta guardada en la configuración? ¿Podrías intentar restablecerla a la predeterminada con el botón de restablecer si aparece?
No veo el botón de restablecer. La página se ve exactamente como en la captura de pantalla; los elementos debajo de la categoría no se están mostrando.
Mmm, no estoy seguro de qué podría estar fallando ahí… He probado la opción de categorías con el tipo de objetos y sé que funciona, así que no debería ser un problema con tu versión. Todavía me pregunto si algo está atascado en un estado incorrecto en algún lugar, ¿podrías probar una configuración separada con un nombre nuevo solo para probarlo? ¿Está esto en GitHub o en algún otro lugar para que pueda probarlo?
type:categories está bien, type:category no.
Sin embargo, la siguiente configuración también funciona correctamente cuando solo se selecciona una opción, por lo que type:category no es necesario.
category:
type: categories
required: true
label: "Categoría"
description: "Nombre de la categoría"
validations:
max: 1