2015-07-16 3 views
2

я создал собственный модуль и использовал календарь объект, чтобы создать событие и код выглядит следующим образомКак установить другое сообщение для шаблона электронной почты в odoo?

def create_calender_event(self,cr,uid,ids,context=None): 
    calendar_obj = self.pool.get('calendar.event')  
    for rec in self.browse(cr,uid,ids,context=context): 
     if rec.action: 
      for rec_res in rec.action: 
       calendar_obj.create(cr,uid,{'name' : rec_res.act_ion, 
        'user_id' : rec_res.asgnd_to.id, 
        'start_date' : rec_res.due_date, 
        'stop_date' : rec_res.due_date, 
        'allday' : True, 
        'partner_ids' : [(6,0, [rec_res.asgnd_to.partner_id.id])] 
       },context=context) 

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

Как заменить сообщение шаблона приглашения на календарное письмо пользовательским сообщением?

+1

Как я могу заменить шаблон сообщения только для мой пользовательский модуль, не затрагивая оригинальный шаблон электронной почты, используемый для приглашения на событие календаря? –

+0

На кого ответить? –

+0

Неплохо, никто не имеет ответа ... lol –

ответ

0

Это шаблон электронной почты с xml id "calendar_template_meeting_invitation" используется для отправки приглашения. Итак, найдите этот шаблон и измените его на все, что захотите. В шаблоне используется шаблон электронной почты «Встреча приглашения».

OLD ===================

ОБНОВЛЕНИЕ ===================== ===========

на calendar.event объекта create и write метод вызывает метод create_attendees, которые создают все Attendee и отправить по электронной почте приглашение, вызвав метод _send_mail_to_attendeescode ref, так что вам нужно перегружать эту функцию и remvoe что поэтому он не отправляет электронное письмо, когда участник создается, а отправляет приглашение по своему желанию.

Bests

+0

Спасибо firebug ,, Да, это изменит сам исходный шаблон, я хочу, чтобы этот шаблон изменился только при выполнении вышеуказанного кода. –

+0

Check Reply body добавлено еще подробнее –

+0

Спасибо Firebug за ответы, я постараюсь. –

3

вы можете сделать, как это от ру файла

1) получить template_id и просмотреть объект
2) тело шаблон будет сохранен в поле 'body_html'
3) магазин поле body_html в одной переменной, позволяет сказать: old_body
4), а затем добавить пользовательский код в поле шаблона «body_html» и записать значения в шаблон, используя вышеупомянутую temlate_id
5) отправьте почту, используя метод отправки
6) затем напишите old_body значение обратно к шаблону.

только за идею, смотрите это ....

template_id = template_pool.search (сг, UID, [('имя', '= ILIKE', template_name)])
если template_id:
template_obj = template_pool.browse (сг, UID, template_id)
тела = template_obj.body_html
body_old = тело
счетчик = 0

тела + = "

Для % S Study Notes PDF Нажмите здесь

«% (URL [ 'предмет'], URL [ 'URL'])
template_pool.write (кр, UID, template_id, { 'body_html': тело})
template_pool .send_mail (кр, UID, template_id [0], record.id)
template_pool.write (кр, UID, template_id, { 'body_html': body_old})

+0

Спасибо, shravan, я постараюсь с вашей идеей тоже как можно скорее ... я работаю над еще одной проблемой –

+0

Shravan Мне нужно передать любой шаблон xml id в качестве аргумента? Как будет выглядеть заголовок функции и как будет вызвана функция? –

+0

И имя шаблона будет шаблоном xml id правильно? –

Смежные вопросы