mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 22:32:01 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1 @@
|
|||
from . import crm_create_task
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
# Copyright 2023 Moduon Team S.L.
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0)
|
||||
|
||||
|
||||
from odoo import _, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class CrmCreateTAsk(models.TransientModel):
|
||||
_name = "crm.create.task"
|
||||
_description = "Wizard to create task"
|
||||
|
||||
task_name = fields.Char()
|
||||
description = fields.Html()
|
||||
|
||||
def create_task(self):
|
||||
project = self.env.company.crm_default_project_id
|
||||
if not project:
|
||||
raise UserError(
|
||||
_(
|
||||
"Project not configured in settings, "
|
||||
"please contact with your administrator."
|
||||
)
|
||||
)
|
||||
lead = (
|
||||
self.env["crm.lead"].browse(self._context.get("active_id", False))
|
||||
if self._context.get("active_model") == "crm.lead"
|
||||
and self._context.get("active_id", False)
|
||||
else False
|
||||
)
|
||||
if not lead:
|
||||
raise UserError(
|
||||
_(
|
||||
"Lead/Opportunity not found. Please, create task from lead/opportunity."
|
||||
)
|
||||
)
|
||||
|
||||
# Create task
|
||||
task = (
|
||||
self.env["project.task"].sudo().create(self._get_data_create(lead, project))
|
||||
)
|
||||
# Messages in chatter
|
||||
task.message_post(
|
||||
body=_(
|
||||
"Task created from lead/opportunity "
|
||||
"<a href=# data-oe-model=crm.lead data-oe-id=%(lead)d>%(name)s</a>.",
|
||||
lead=lead,
|
||||
name=lead.name,
|
||||
)
|
||||
)
|
||||
lead.message_post(
|
||||
body=_(
|
||||
"Task <a href=# data-oe-model=project.task "
|
||||
"data-oe-id=%(task)d>%(name)s</a> created.",
|
||||
task=task,
|
||||
name=task.display_name,
|
||||
)
|
||||
)
|
||||
# Return action go to created task
|
||||
view = self.env.ref("project.view_task_form2")
|
||||
return {
|
||||
"name": "Task created",
|
||||
"view_type": "form",
|
||||
"view_mode": "form",
|
||||
"view_id": view.id,
|
||||
"res_model": "project.task",
|
||||
"type": "ir.actions.act_window",
|
||||
"res_id": task.id,
|
||||
"context": self.env.context,
|
||||
}
|
||||
|
||||
def _get_data_create(self, lead, project):
|
||||
"""Get dict to create task"""
|
||||
return {
|
||||
"name": self.task_name,
|
||||
"project_id": project.id,
|
||||
"partner_id": lead.partner_id.id or False,
|
||||
"lead_id": lead.id,
|
||||
"description": self.description,
|
||||
"user_ids": [(6, 0, [])],
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2023 Moduon Team S.L.
|
||||
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0) -->
|
||||
<odoo>
|
||||
<record id="wizard_crm_create_task_view_form" model="ir.ui.view">
|
||||
<field name="name">crm.create.task.form</field>
|
||||
<field name="model">crm.create.task</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="task_name" />
|
||||
<field name="description" type="html" />
|
||||
</group>
|
||||
<footer>
|
||||
<button
|
||||
name="create_task"
|
||||
type="object"
|
||||
string="Create Task"
|
||||
class="oe_highlight"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="wizard_crm_create_task_action" model="ir.actions.act_window">
|
||||
<field name="name">Create Task</field>
|
||||
<field name="res_model">crm.create.task</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue