Назначить рецензента из разных групп на разных этапах рабочего процесса в Plone - PullRequest
4 голосов
/ 12 марта 2012

Мы внедряем Plone в качестве системы управления документами в условиях больницы.При этом процесс проверки запрашивает два этапа проверки:

  1. , где медсестры рассматривают документ
  2. , где врачи рассматривают документ

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

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

Это означает, что документ, относящийся кУЗИ малого таза должно быть рассмотрено группой ультразвука в сестринской популяции и брюшной группой в популяции врачей.

Существует приблизительно 8 групп медсестер и 7 групп врачей, которые будут учитывать 56 различных рабочих процессов на 56 различныхтипы документов ... Это похоже на кошмар обслуживания.

Существует ли другой способ "динамического" назначения групп рецензентов на основе параметров, заданных для документа?Если да, где параметры определены на уровне типа документа и назначены на уровне экземпляра документа?

Ответы [ 4 ]

4 голосов
/ 12 марта 2012

Может быть более простой способ приблизиться к этому.

Рабочие процессы Plone могут быть сложены;например, вы можете назначить более одного рабочего процесса для типа контента.

Это означает, что вы можете назначить рабочий процесс как медсестры, так и врача, каждый из которых предоставляет определенные разрешения.Если вы правильно настроили свои роли для рабочего процесса, ваш сценарий использования должен быть прост в реализации;просто разделите Роли на роли для медсестер и врачей.

Так, где рабочий процесс по умолчанию использует Reviewer, Editor, Contributor, Member и т. д., используйте DoctorReviewer, NurseReviewer, DoctorEditor, NurseEditor и т. д. Таким образом, эти два рабочих процесса будутобрабатывать два набора параллельных разрешений, переходов и состояний.

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

2 голосов
/ 12 марта 2012

Вместо того, чтобы перегружать очень простое встроенное поле «Теги», вы также можете использовать Archetypes.Schemaextender, чтобы создать пару пользовательских полей (например, оборудование, часть тела), которые вы можете назначить каждому элементу контента, а затем использовать теполя для назначения рабочего процесса медсестры правой группе медсестер и рабочего процесса доктора правой группе докторов, как описано выше.

0 голосов
/ 12 марта 2012

PlacefulWorkflow может помочь, если вы правильно создаете папки для отображения ваших групп

0 голосов
/ 12 марта 2012

Вы должны написать свой плагин. Вы можете начать с этого: http://pypi.python.org/pypi/Products.AutoRoleFromHostHeader/ (работает также для групп) и создать свой собственный, который назначит роль / группу. Этот плагин очень прост и просто сделать это:

security.declarePrivate('getRolesForPrincipal')
def getRolesForPrincipal(self, principal, request=None):
    """ Assign roles based on 'request'. """

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

...