создания кастомного action

0 views
Skip to first unread message

Бессарабова Ирина

unread,
Nov 5, 2009, 3:31:04 AM11/5/09
to plon...@googlegroups.com
Всем привет,
Хочу использовать rules для отправки уведомлений о новых сообщениях в форуме (Ploneboard). Я так понимаю, мне нужно создать новое действие, которое выполняется при добавлении нового коммента к обсуждению. Что-то не могу разобраться, как это сделать. Нашла только, как создавать новые условия на http://plone.org/documentation/tutorial/creating-content-rule-conditions-and-actions/. Про действия там как-то мутно написано. Может кто знает какие-нибудь тьюториалы по теме?

Юрий Поляков

unread,
Nov 5, 2009, 3:34:23 AM11/5/09
to plon...@googlegroups.com
В collective svn-e есть несколько продуктов для работы с почтой в
правилах, думаю самым правильным будет поковыряться в них.

collective.contentrules.mail
collective.contentrules.xxx

2009/11/5 Бессарабова Ирина <be...@yandex.ru>:


> Всем привет,
> Хочу использовать rules для отправки уведомлений о новых сообщениях в форуме (Ploneboard). Я так понимаю, мне нужно создать новое действие, которое выполняется при добавлении нового коммента к обсуждению.  Что-то не могу разобраться, как это сделать. Нашла только, как создавать новые условия на http://plone.org/documentation/tutorial/creating-content-rule-conditions-and-actions/. Про действия там как-то мутно написано. Может кто знает какие-нибудь тьюториалы по теме?
>
> >
>

--
Юрий Поляков
+7 (916) 806-00-55
yuriy.p...@dija.ru

Бессарабова Ирина

unread,
Nov 5, 2009, 4:21:10 AM11/5/09
to plon...@googlegroups.com
Спасибо за подсказку)) Действие добавить получилось, теперь будем думать, как написать собственно отправку мейлов людям)

05.11.09, 11:34, "Юрий Поляков" <tra...@gmail.com>:

> В collective svn-e есть несколько продуктов для работы с почтой в
> правилах, думаю самым правильным будет поковыряться в них.
> collective.contentrules.mail
> collective.contentrules.xxx

> 2009/11/5 Бессарабова Ирина :

Юрий Поляков

unread,
Nov 5, 2009, 4:34:42 AM11/5/09
to plon...@googlegroups.com
Так там ведь как раз этот код и есть :)) Продукты почту отправляют.

2009/11/5 Бессарабова Ирина <be...@yandex.ru>:

--

Бессарабова Ирина

unread,
Nov 5, 2009, 4:52:59 AM11/5/09
to plon...@googlegroups.com

Как почту отправлять в принципе понятно. Главное собрать емейлы тех, кому нужно отправлять. В данном случае, у менять есть древовидная структура сообщений, нужно взять "родителей" сообщения, потом емейлы их авторов и отправить уже почту. Пока что бьюсь над тем, как взять всех родителей. В плон апи фиг че поймешь))
05.11.09, 12:34, "Юрий Поляков" <tra...@gmail.com>:

> Так там ведь как раз этот код и есть :)) Продукты почту отправляют.

> 2009/11/5 Бессарабова Ирина :


> > Спасибо за подсказку)) Действие добавить получилось, теперь будем думать, как написать собственно отправку мейлов людям)
> >

> > 05.11.09, 11:34, "Юрий Поляков" :

Бессарабова Ирина

unread,
Nov 5, 2009, 8:32:48 AM11/5/09
to plon...@googlegroups.com
Продолжая разговор ...
Заметила одну любопытную вещь:)
Написала свое действие, дотумкала как взять всех предков сообщения, чтоб отправить их авторам емейлы. Создаю правило, говорю: trigger event - добавлен объект в контейнер, condition - тип Comment, действие - Notify (мое).
Добавляем, тестируем - не работает. Действие срабатывает, но ветку сообщений уровнем выше получить не удается. Складывается подозрение, что в момент срабатываения события объект не до конца инициализируется. Смотрим код Ploneboard и видим, что, действительно, в content/PloneboardComment.py, есть код:

def addReply(self,
title,
text,
creator=None,
files=None ):
"""Add a reply to this comment."""

m = _createObjectByType(self.portal_type, conv, id)
event.notify(ObjectInitializedEvent(m))
...
m.setTitle(title)
m.setText(text)
m.setInReplyTo(self.UID())
То бишь уведомления о создании коммента идет до установки всех его основных свойств...
И для полного счастья надо всего лишь переместить event.notify(ObjectInitializedEvent(m)) после установки тайтла, текст, и связи с родительским сообщением...

05.11.09, 12:52, "Бессарабова Ирина" <be...@yandex.ru>:

> Как почту отправлять в принципе понятно. Главное собрать емейлы тех, кому нужно отправлять. В данном случае, у менять есть древовидная структура сообщений, нужно взять "родителей" сообщения, потом емейлы их авторов и отправить уже почту. Пока что бьюсь над тем, как взять всех родителей. В плон апи фиг че поймешь))

> 05.11.09, 12:34, "Юрий Поляков" :

Reply all
Reply to author
Forward
0 new messages