1
votes

Is it possible convert Suport Ticket to Project > Task.

Task Title = Suport subject, Task Description = Suport Description...

Example:

I use this modul https://www.odoo.com/apps/modules/9.0/website_support/

In support ticket i want add:

Ticket

Below is new function def generate_task(self): how generate new TASK from that.

class WebsiteSupportTicketCompose(models.Model):

    _name = "website.support.ticket.compose"

    ticket_id = fields.Many2one('website.support.ticket', string='Ticket ID')
    partner_id = fields.Many2one('res.partner', string="Partner", readonly="True")
    email = fields.Char(string="Email", readonly="True")
    subject = fields.Char(string="Subject", readonly="True")
    body = fields.Html(string="Message Body")
    template_id = fields.Many2one('mail.template', string="Mail Template", domain="[('model_id','=','website.support.ticket')]")

    @api.onchange('template_id')
    def _onchange_template_id(self):
        if self.template_id:
            values = self.env['mail.compose.message'].generate_email_for_composer(self.template_id.id, [self.ticket_id.id])[self.ticket_id.id]                
            self.body = values['body']

    @api.one
    def send_reply(self):
        #Send email
        values = {}
        email_wrapper = self.env['ir.model.data'].get_object('website_support','support_ticket_reply_wrapper')
        values = email_wrapper.generate_email([self.id])[self.id]
        values['model'] = "website.support.ticket"
        values['res_id'] = self.ticket_id.id
        send_mail = self.env['mail.mail'].create(values)
        send_mail.send()

        #(Depreciated) Add to message history field for back compatablity
        self.env['website.support.ticket.message'].create({'ticket_id': self.ticket_id.id, 'content':self.body.replace("<p>","").replace("</p>","")})

        #Post in message history
        #self.ticket_id.message_post(body=self.body, subject=self.subject, message_type='comment', subtype='mt_comment')

    staff_replied = self.env['ir.model.data'].get_object('website_support','website_ticket_state_staff_replied')
    self.ticket_id.state = staff_replied.id

    @api.one
    def generate_task(self):
        values = {}
        print(self.ticket_id.id)
        print(self.email)
        print(self.subject)
        print(self.body.replace("<p>","").replace("</p>",""))

        #How this data insert in new TASK

Any simple solution?

1
@CZoellner I'm update my question. Curent modul have buton replay and fuction send_reply, I'm add new .xml view and function generate_task how from my function create new task? - Pointer

1 Answers

0
votes

Try below code:

@api.multi
        def generate_task(self,cr, uid, ids, context=None):

            Task = self.pool["project.task"]

            vals = {
                "name": "TEST",
                "description": "DESCRIPTION",
            }

            task_id = Task.create(cr,uid,vals,context=None)
            task = Task.browse(cr,uid,task_id,context=None)