Kaffy ofrece un poderoso módulo de administración para optimizar el desarrollo Elixir. La integración ResourceAdmin brinda una interfaz personalizable que sigue las convenciones del framework Phoenix.
Elementos Fundamentales del ResourceAdmin
ResourceAdmin define comportamientos específicos mediante módulos asociados a esqeumas Ecto. Estos componentes residen en los subdirectorios de administrador correspondientes.
Configuración Inicial
Implementar funciones básicas permite definir la representación e interacción:
defmodule Tienda.TiendaAdmin do
def listar(_esquema) do
[
identificador: %{nombre: "ID", valor: &(&1.id + 100)},
nombre: nil,
visitas: %{nombre: "Accesos", valor: &calcular_acumulado(&1)}
]
end
def campos_busqueda(_esquema), do: [:nombre, :slug]
def orden_default(_esquema), do: [desc: :visitas]
end
Personalización de Formularios
Los formularios se adaptan mediante especificación de tipos y opciones:
def campos_formulario(_esquema) do
[
nombre: %{etiqueta: "Nombre del Artículo"},
imagen: %{tipo: :archivo},
estado: %{opciones: [{"Pendiente", 1}, {"Disponible", 2}]},
desc: %{tipo: :area_texto},
stock: %{permiso: :solo_lectura}
]
end
Funcionalidades Avanzadas
Transformaciones Personalizadas
Los cambiosets pueden integrar lógica particular:
def cambioset_crear(entidad, atribs) do
Entidad.cambioset_crear(entidad, atribs)
end
Gestión de Acciones
Las acciones personalizadas se implementan mediante hooks:
def acciones_lista(_esquema) do
[
%{
nombre: "Exportar selección",
metodo: :post,
ruta: &Rutas.admin_ruta(&1, :exportar_seleccionados)
}
]
end
Módulos Personalizados
Es posible extender funcionalidad con páginas específicas:
def paginas_personalizadas(_esquema) do
[
%{
nombre: "Estadísticas",
enlace: "/data/stats",
metodo: :get,
componente: &ComponentesEstadisticos.dashboard/2
}
]
end
Optimización de Implementación
- Priorizar mínima sobreescritrua de funciones estándar
- Extender módulos base para compartir comportamientos comunes
- Explorar funciones utilitarias en Kaffy.Utils para operaciones repetitivas
- Aprovechar estructuras ResourceSchema para metaprogramación
El módulo ResourceAdmin habilita administraciones adaptables con interfaces declarativas. Su flexibilidad permite desde CRUD básico hasta operaciones especializadas respetando arquitecturas Phoenix.
El dominio de estas capacidades reduce significativamente el tiempo requerido para instrumentar capas administrativas funcinoales.