как установить другое сообщение для шаблона электронной почты в 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)

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

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


person Shravy    schedule 16.07.2015    source источник
comment
Как я могу заменить сообщение шаблона только для моего пользовательского модуля, не затрагивая исходный шаблон электронной почты, используемый для приглашения на событие календаря?   -  person Shravy    schedule 16.07.2015
comment
неплохо, ни у кого нет ответа... лол   -  person Shravy    schedule 21.07.2015


Ответы (2)


вы можете сделать это из файла py

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

просто для идеи, обратитесь к этому ....

template_id = template_pool.search(cr,uid,[('name','=ilike',template_name)])
if template_id:
template_obj = template_pool.browse(cr, uid, template_id)
body = template_obj.body_html
body_old = body
count = 0

body += "

For %s Study Notes PDF Click here

"%(url['subject'],url['url'])
template_pool.write(cr, uid, template_id, {'body_html':body})
template_pool.send_mail(cr, uid, template_id[0], record.id)
template_pool.write(cr, uid, template_id, {'body_html': body_old})

person shravan cherukuri    schedule 28.07.2015
comment
Спасибо, шраван, я тоже попробую с вашей идеей как можно скорее... я работаю над еще одним вопросом - person Shravy; 29.07.2015
comment
Shravan мне нужно передать любой идентификатор xml шаблона в качестве аргумента? Как будет выглядеть заголовок функции и как будет вызываться функция? - person Shravy; 21.08.2015
comment
include template_pool = self.pool.get('email.template') и имя шаблона не xml-id, просто передайте имя шаблона - person shravan cherukuri; 21.08.2015
comment
да шраван, включил перед собой но ошибка та же - person Shravy; 21.08.2015
comment
Shravan Мне нужно написать это внутри самой функции выше, верно? - person Shravy; 21.08.2015
comment
да, вы можете опубликовать свой код. Также выше я предоставил псевдокод. Итак, измените его в соответствии с вашими требованиями - person shravan cherukuri; 21.08.2015
comment
Я новичок, поэтому была путаница. в любом случае большое спасибо. - person Shravy; 21.08.2015
comment
какова часть URL-адреса в псевдокоде, который вы предложили? - person Shravy; 21.08.2015
comment
исключить часть URL, - person shravan cherukuri; 24.08.2015

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

СТАРЫЙ====================

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

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

Лучшие

person ifixthat    schedule 27.07.2015
comment
Спасибо firebug, Да, это изменит сам исходный шаблон, я хочу, чтобы этот шаблон менялся только при выполнении приведенного выше кода. - person Shravy; 28.07.2015
comment
Проверьте тело ответа, добавлено больше деталей - person ifixthat; 28.07.2015
comment
Спасибо Firebug за ваши ответы, я попробую это. - person Shravy; 29.07.2015