Делегат только для чтения. Доступ к данным Dublin Core для дочернего объекта с использованием ловкости. - PullRequest
3 голосов
/ 07 июля 2011

Фон : поведение рабочей копии на самом деле не поддерживается для типов контейнеров, так как это приводит к проблемам при копировании всех дочерних элементов этой папки. Мы работаем над этим, используя дочерние типы данных для наших типов контейнеров: почти все данные о контейнере хранятся в объекте данных, который является дочерним объектом этого контейнера и его представлением по умолчанию. Мы исключаем объекты данных из списков и поиска.

Проблема : Это приводит к несоответствию, когда в настоящее время мы должны присвоить поведение ядра dublin типу контейнера, а не типу данных, поскольку весь основной код Plone ожидает описание, дату вступления в силу и т. Д. там. Это немного сбивает с толку наших редакторов Plone, поскольку у них есть два места для редактирования данных о контейнере. Эти данные также можно редактировать только в оперативной версии, а не в извлеченной рабочей копии.

Я бы хотел иметь возможность:

  • делегировать любые запросы на дублирующие данные ядра из контейнера дочернему объекту данных (не знаю, с чего начать)
  • при сохранении контейнера он будет использовать базовые данные дочерних данных dublin для своих метаданных в каталоге (это должно сработать, если работает первая часть)
  • при сохранении дочерних данных он будет переиндексировать свой родительский объект, чтобы обновить свои метаданные (я планировал зарегистрировать событие для достижения этой цели)

Пожалуйста, кто-нибудь может дать мне несколько советов о том, как выполнить эту первую часть?

1 Ответ

3 голосов
/ 07 июля 2011

Я думаю, у вас есть два варианта:

  1. Создайте собственное поведение метаданных, которое ищет метаданные в объекте данных.

  2. Просто обновите метаданные родителя в обработчике событий при изменении объекта данных.

Учитывая, что вам все равно понадобится обработчик событий для принудительного переиндексации родителя, я бы, вероятно, пошел с простым подходом копирования метаданных.

...