Вы здесь

Организация хранения законов

1

Всем доброго времени суток. Необходимо реализовать на сайте следующую структуру:
1) законы могут иметь редакции,
2) при этом каждая редакция имеет ссылку на другой закон который определяет данную редакцию
3) При этом в других материалах можно давать ссылки на редакции (отдельное поле)
4) на странице закона или его редакции блок с возможностью выбора двух редакций и просмотра изменений между ними

Возникают вопросы:
Есть ли готовое решение?
Если нет то вижу только реализацию на системе версий, модуле diff
Но для юзабилити придётся делать достаточно большую надстройку над системой версий. Есть ли предложения по реализации такой системы?

Версия Drupal: 
7.x
Категория: 
Entity APINode API
Связанные проекты: 
Diff
Вопрос задан 08.11.2015 - 19:22

Всем спасибо!
Планируемое решение:
используем для каждого пункта закона поля-сущности (на базе модулей paragraphs или field_collection)
добавляем поля для полей-сущностей:
1) система ревизий с системой их сравнения используя api модуля diff
2) поля
- время начала действия версии
- время окончания действия версии
- ссылка на редактирующий документ
3) реализация поля ссылки на поле-сущность с ее ревизией
4) улучшения юзабилити создания редакции законов

Комментарий оставлен 10.11.2015 - 20:11

Ответы

0

Насколько я понимаю, закон состоит из статей.
И закон имеет несколько редакций.
Вот в качестве примера - http://dokumenty24.ru/zakony-rf/zakon-rf-o-zashchite-prav-potrebitelej.html
Поэтому можно сделать так.
Название закона - термин таксономии самого высокого уровня
Редакции закона - термины, дочерние от него.
Статьи закона - отдельные ноды, которые имеют примерно следующие поля
- ссылка на термин таксономии уровня "редакция закона"
- ссылки на другие законы, согласно которым они вступили в силу, утратили силу и т.д.
Может быть, имеет смысл хранить не весь текст статьи в одном поле, а хранить тексты пунктов отдельно, воспользовавшись FieldCollection.

В случае такой организации данных можно давать ссылки как на редакцию закона, так и на отдельную статью.
И можно также сравнивать редакции не просто как текст с текстом, а сравнивать именно статьи со статьями закона.

Ответ дан 09.11.2015 - 12:04
2
  1. Закон - отдельный тип материала, редакции - стандартные ревизии из drupal core.
  2. В законе - поле https://www.drupal.org/project/revisionreference на конкретную редакцию конкретного закона.
  3. Аналогично - revisionreference.
  4. Это более-менее стандартное сравнение ревизий.
Ответ дан 09.11.2015 - 01:50
1

Как насчёт использования ядерных ревизий?
Писать кастомные модули к данному решению всё равно придётся. Но я бы не сказал что, там много работы.

Ответ дан 08.11.2015 - 21:57
Аватар пользователя SAM
SAM
212