diff --git a/crm_lead_code/static/description/index.html b/crm_lead_code/static/description/index.html index d39087c6fc8..fc31e5af231 100644 --- a/crm_lead_code/static/description/index.html +++ b/crm_lead_code/static/description/index.html @@ -1,432 +1,432 @@ - - - - - - -Sequential Code for Leads / Opportunities - - - -
-

Sequential Code for Leads / Opportunities

- - -

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module adds a sequential code for leads / opportunities.

-

Table of contents

-
- -
-
-

Bug Tracker

-

Bugs are tracked on GitHub Issues. -In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

-

Do not contact contributors directly about support or help with technical issues.

-
-
-

Credits

-
-

Authors

-
    -
  • Tecnativa
  • -
  • AvanzOSC
  • -
-
-
-

Contributors

- -
-
-

Maintainers

-

This module is maintained by the OCA.

-Odoo Community Association -

OCA, or the Odoo Community Association, is a nonprofit organization whose -mission is to support the collaborative development of Odoo features and -promote its widespread use.

-

This module is part of the OCA/crm project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
- - + + + + + + +Sequential Code for Leads / Opportunities + + + +
+

Sequential Code for Leads / Opportunities

+ + +

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module adds a sequential code for leads / opportunities.

+

Table of contents

+
+ +
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
  • AvanzOSC
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/crm project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/crm_lead_vat/README.rst b/crm_lead_vat/README.rst index 0e16bcc7354..2141f66f87f 100644 --- a/crm_lead_vat/README.rst +++ b/crm_lead_vat/README.rst @@ -65,7 +65,7 @@ Credits Authors ------- -* Antiun Ingeniería S.L. +* Antiun Ingeniería S.L. Contributors ------------ diff --git a/crm_lead_vat/static/description/index.html b/crm_lead_vat/static/description/index.html index 61d63026527..62ac8096edd 100644 --- a/crm_lead_vat/static/description/index.html +++ b/crm_lead_vat/static/description/index.html @@ -1,449 +1,449 @@ - - - - - - -VAT in leads - - - -
-

VAT in leads

- - -

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

-

This module was written to extend the functionality of CRM leads to -support setting the VAT identification number -(https://en.wikipedia.org/wiki/VAT_identification_number).

-

Table of contents

-
- -
-
-

Usage

-

To use this module, you need to:

- -
-
-

Bug Tracker

-

Bugs are tracked on GitHub Issues. -In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

-

Do not contact contributors directly about support or help with technical issues.

-
-
-

Credits

-
-

Authors

-
    -
  • Antiun Ingeniería S.L.
  • -
-
-
-

Contributors

- -
-
-

Maintainers

-

This module is maintained by the OCA.

-Odoo Community Association -

OCA, or the Odoo Community Association, is a nonprofit organization whose -mission is to support the collaborative development of Odoo features and -promote its widespread use.

-

Current maintainer:

-

EmilioPascual

-

This module is part of the OCA/crm project on GitHub.

-

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
-
-
- - + + + + + + +VAT in leads + + + +
+

VAT in leads

+ + +

Beta License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module was written to extend the functionality of CRM leads to +support setting the VAT identification number +(https://en.wikipedia.org/wiki/VAT_identification_number).

+

Table of contents

+
+ +
+
+

Usage

+

To use this module, you need to:

+ +
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Antiun Ingeniería S.L.
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

EmilioPascual

+

This module is part of the OCA/crm project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/crm_project_task/README.rst b/crm_project_task/README.rst new file mode 100644 index 00000000000..3290472f9d2 --- /dev/null +++ b/crm_project_task/README.rst @@ -0,0 +1,114 @@ +================ +CRM Project Task +================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:93aa6bb18b4586088b3dcaf6171ac8e729945bc279f3cd249194d368a0904227 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcrm-lightgray.png?logo=github + :target: https://github.com/OCA/crm/tree/17.0/crm_project_task + :alt: OCA/crm +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/crm-17-0/crm-17-0-crm_project_task + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/crm&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allow create task from leads/opportunities + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +- Go to Project +- Create a project with right configuration in order that all salesman + have access (usually all employees) +- Go to CRM > Configuration > Project +- Set crm default project + +Usage +===== + +1. Go to *CRM > Sales > My pipeline*. +2. Open one of the existing leads or create one. +3. Click on the button "Create Task". +4. A popup will appear asking you name and description for create task. +5. Click on "Create Task" button. +6. A task will be created with project in settings. +7. A message chatter will be created in task with link for + lead/opportunity. Also, a message chatter will be creat in + lead/opportunity with link for task. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Moduon + +Contributors +------------ + +- Emilio Pascual (`Moduon `__) +- Rafael Blasco (`Moduon `__) + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-EmilioPascual| image:: https://github.com/EmilioPascual.png?size=40px + :target: https://github.com/EmilioPascual + :alt: EmilioPascual + +Current `maintainer `__: + +|maintainer-EmilioPascual| + +This module is part of the `OCA/crm `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/crm_project_task/__init__.py b/crm_project_task/__init__.py new file mode 100644 index 00000000000..aee8895e7a3 --- /dev/null +++ b/crm_project_task/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/crm_project_task/__manifest__.py b/crm_project_task/__manifest__.py new file mode 100644 index 00000000000..cc99992c878 --- /dev/null +++ b/crm_project_task/__manifest__.py @@ -0,0 +1,27 @@ +# Copyright 2023 Moduon Team S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0) + +{ + "name": "CRM Project Task", + "summary": "Create tasks from lead or opportunity", + "version": "17.0.1.0.0", + "development_status": "Alpha", + "category": "Sales/CRM", + "website": "https://github.com/OCA/crm", + "author": "Moduon, Odoo Community Association (OCA)", + "maintainers": ["EmilioPascual"], + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": [ + "crm", + "project", + ], + "data": [ + "security/ir.model.access.csv", + "views/res_config_settings.xml", + "wizards/crm_create_task.xml", + "views/crm_lead.xml", + "views/project_task.xml", + ], +} diff --git a/crm_project_task/i18n/crm_project_task.pot b/crm_project_task/i18n/crm_project_task.pot new file mode 100644 index 00000000000..851a37bc053 --- /dev/null +++ b/crm_project_task/i18n/crm_project_task.pot @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_project_task +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-01-31 14:39+0000\n" +"PO-Revision-Date: 2024-01-31 14:39+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_count +msgid "#Task" +msgstr "" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "" +"By default this project will be selected to create task from lead / " +"opportunity" +msgstr "" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Cancel" +msgstr "" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_company +msgid "Companies" +msgstr "" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: crm_project_task +#: model:ir.actions.act_window,name:crm_project_task.wizard_crm_create_task_action +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Create Task" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_uid +msgid "Created by" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_date +msgid "Created on" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_res_company__crm_default_project_id +#: model:ir.model.fields,field_description:crm_project_task.field_res_config_settings__crm_default_project_id +msgid "Crm Default Project" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__description +msgid "Description" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__display_name +msgid "Display Name" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__id +msgid "ID" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_date +msgid "Last Updated on" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__lead_id +#: model:ir.model.fields,field_description:crm_project_task.field_project_task__lead_id +msgid "Lead" +msgstr "" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_lead +#: model_terms:ir.ui.view,arch_db:crm_project_task.view_task_form2_inherit_crm_project_task +msgid "Lead/Opportunity" +msgstr "" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Project not configured in settings, please contact with your administrator." +msgstr "" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "Projects" +msgstr "" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_ids +msgid "Task" +msgstr "" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task %(name)s " +"created." +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__task_name +msgid "Task Name" +msgstr "" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task created from lead/opportunity %(name)s." +msgstr "" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +msgid "Task(s)" +msgstr "" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_create_task +msgid "Wizard to create task" +msgstr "" diff --git a/crm_project_task/i18n/es.po b/crm_project_task/i18n/es.po new file mode 100644 index 00000000000..d931d21aafd --- /dev/null +++ b/crm_project_task/i18n/es.po @@ -0,0 +1,175 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_project_task +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-08-02 11:46+0000\n" +"PO-Revision-Date: 2023-08-02 13:51+0200\n" +"Last-Translator: Emilio Pascual \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.3.1\n" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_count +msgid "#Task" +msgstr "#Tarea" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "" +"By default this project will be selected to create task from lead / " +"opportunity" +msgstr "" +"Por defecto este proyecto será seleccionado para crear la tarea desde la " +"iniciativa/oportunidad" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_config_settings +msgid "Config Settings" +msgstr "Opciones de configuración" + +#. module: crm_project_task +#: model:ir.actions.act_window,name:crm_project_task.wizard_crm_create_task_action +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Create Task" +msgstr "Crear tarea" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_res_company__crm_default_project_id +#: model:ir.model.fields,field_description:crm_project_task.field_res_config_settings__crm_default_project_id +msgid "Crm Default Project" +msgstr "Proyecto por defecto en CRM" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "Default project" +msgstr "Proyecto por defecto" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__description +msgid "Description" +msgstr "Descripción" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__id +msgid "ID" +msgstr "Identificación" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__lead_id +#: model:ir.model.fields,field_description:crm_project_task.field_project_task__lead_id +msgid "Lead" +msgstr "Iniciativa" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_lead +#: model_terms:ir.ui.view,arch_db:crm_project_task.view_task_form2_inherit_crm_project_task +msgid "Lead/Opportunity" +msgstr "Iniciativa/Oportundad" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Project not configured in settings, please contact with your administrator." +msgstr "" +"No hay un proyecto configurado en ajustes, por favor contacte con su " +"administrador." + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "Projects" +msgstr "Proyectos" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_ids +msgid "Task" +msgstr "Tarea" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task %(name)s " +"created." +msgstr "" +"Tarea %(name)s " +"creada." + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__task_name +msgid "Task Name" +msgstr "Nombre de tarea" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task created from lead/opportunity %(name)s." +msgstr "" +"Tarea creada desde la iniciativa/oportunidad %(name)s." + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +msgid "Task(s)" +msgstr "Tarea(s)" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_create_task +msgid "Wizard to create task" +msgstr "Asistente para crear tarea" diff --git a/crm_project_task/i18n/fr.po b/crm_project_task/i18n/fr.po new file mode 100644 index 00000000000..37b56a431fa --- /dev/null +++ b/crm_project_task/i18n/fr.po @@ -0,0 +1,163 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_project_task +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-01-31 14:40+0000\n" +"PO-Revision-Date: 2024-01-31 14:40+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_count +msgid "#Task" +msgstr "#Tache" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "" +"By default this project will be selected to create task from lead / " +"opportunity" +msgstr "" +"Par défaut, ce projet sera sélectionné pour créer la tâche depuis la " +"piste/opportunité" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Cancel" +msgstr "Annuler" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_company +msgid "Companies" +msgstr "Sociétés" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_config_settings +msgid "Config Settings" +msgstr "Paramètres de configuration" + +#. module: crm_project_task +#: model:ir.actions.act_window,name:crm_project_task.wizard_crm_create_task_action +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Create Task" +msgstr "Créer une tâche" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_uid +msgid "Created by" +msgstr "Créer par" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_date +msgid "Created on" +msgstr "Créer le" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_res_company__crm_default_project_id +#: model:ir.model.fields,field_description:crm_project_task.field_res_config_settings__crm_default_project_id +msgid "Crm Default Project" +msgstr "Projet par défaut CRM" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__description +msgid "Description" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__display_name +msgid "Display Name" +msgstr "Nom afficher" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__id +msgid "ID" +msgstr "" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__lead_id +#: model:ir.model.fields,field_description:crm_project_task.field_project_task__lead_id +msgid "Lead" +msgstr "Piste" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_lead +#: model_terms:ir.ui.view,arch_db:crm_project_task.view_task_form2_inherit_crm_project_task +msgid "Lead/Opportunity" +msgstr "Piste/Opportunité" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Project not configured in settings, please contact with your administrator." +msgstr "" +"Projet non configuré dans la configuration, merci de contacter votre " +"administrateur." + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "Projects" +msgstr "Projets" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_ids +msgid "Task" +msgstr "Tâche" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task %(name)s " +"created." +msgstr "" +"Tâche %(name)s " +"créée." + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__task_name +msgid "Task Name" +msgstr "Nome de la tâche" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task created from lead/opportunity %(name)s." +msgstr "" +"Tâche créée depuis la piste/opportunité %(name)s." + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +msgid "Task(s)" +msgstr "Tâche(s)" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_create_task +msgid "Wizard to create task" +msgstr "Assistant de création de tâche" diff --git a/crm_project_task/i18n/it.po b/crm_project_task/i18n/it.po new file mode 100644 index 00000000000..d322001d1bf --- /dev/null +++ b/crm_project_task/i18n/it.po @@ -0,0 +1,174 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_project_task +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-08-01 12:11+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_count +msgid "#Task" +msgstr "N. lavoro" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "" +"By default this project will be selected to create task from lead / " +"opportunity" +msgstr "" +"Questo progetto verrà selezionato in modo predefinito per creare lavori da " +"contatti / opportunità" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Cancel" +msgstr "Annulla" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_res_config_settings +msgid "Config Settings" +msgstr "Impostazioni configurazione" + +#. module: crm_project_task +#: model:ir.actions.act_window,name:crm_project_task.wizard_crm_create_task_action +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.wizard_crm_create_task_view_form +msgid "Create Task" +msgstr "Crea lavoro" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_res_company__crm_default_project_id +#: model:ir.model.fields,field_description:crm_project_task.field_res_config_settings__crm_default_project_id +msgid "Crm Default Project" +msgstr "Progetto predefinito" + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "Default project" +msgstr "Progetto predefinito" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__description +msgid "Description" +msgstr "Descrizione" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__id +msgid "ID" +msgstr "ID" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__lead_id +#: model:ir.model.fields,field_description:crm_project_task.field_project_task__lead_id +msgid "Lead" +msgstr "Contatto" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_lead +#: model_terms:ir.ui.view,arch_db:crm_project_task.view_task_form2_inherit_crm_project_task +msgid "Lead/Opportunity" +msgstr "Contatto/Opportunità" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Project not configured in settings, please contact with your administrator." +msgstr "" +"Manca la configurazione dei progetti nelle impostazioni, contattare " +"l'amministratore." + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.res_config_settings_view_form +msgid "Projects" +msgstr "Progetti" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_lead__task_ids +msgid "Task" +msgstr "Lavoro" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task %(name)s " +"created." +msgstr "" +"Creato lavoro " +"%(name)s." + +#. module: crm_project_task +#: model:ir.model.fields,field_description:crm_project_task.field_crm_create_task__task_name +msgid "Task Name" +msgstr "Nome lavoro" + +#. module: crm_project_task +#. odoo-python +#: code:addons/crm_project_task/wizards/crm_create_task.py:0 +#, python-format +msgid "" +"Task created from lead/opportunity %(name)s." +msgstr "" +"Lavoro creato da contatto/opportunità %(name)s." + +#. module: crm_project_task +#: model_terms:ir.ui.view,arch_db:crm_project_task.inherit_crm_lead_view_form_crm_project_task +msgid "Task(s)" +msgstr "Lavoro(i)" + +#. module: crm_project_task +#: model:ir.model,name:crm_project_task.model_crm_create_task +msgid "Wizard to create task" +msgstr "Procedura guidata per creare un lavoro" diff --git a/crm_project_task/models/__init__.py b/crm_project_task/models/__init__.py new file mode 100644 index 00000000000..345bf94dd2e --- /dev/null +++ b/crm_project_task/models/__init__.py @@ -0,0 +1,4 @@ +from . import res_config_settings +from . import res_company +from . import project_task +from . import crm_lead diff --git a/crm_project_task/models/crm_lead.py b/crm_project_task/models/crm_lead.py new file mode 100644 index 00000000000..e78fe6da28d --- /dev/null +++ b/crm_project_task/models/crm_lead.py @@ -0,0 +1,24 @@ +# Copyright 2023 Moduon Team S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0) + +from odoo import api, fields, models + + +class CrmLead(models.Model): + _inherit = "crm.lead" + + task_ids = fields.One2many("project.task", "lead_id") + task_count = fields.Integer("#Task", compute="_compute_task_count") + + @api.depends("task_ids") + def _compute_task_count(self): + for lead in self: + lead.task_count = len(lead.task_ids) + + def action_tasks(self): + self.ensure_one() + ctx = self._context.copy() + action = self.env.ref("project.action_view_task").sudo().read()[0] + ctx.update({"default_lead_id": self.id}) + action.update({"context": ctx, "domain": [("lead_id", "=", self.id)]}) + return action diff --git a/crm_project_task/models/project_task.py b/crm_project_task/models/project_task.py new file mode 100644 index 00000000000..e7636ee0c28 --- /dev/null +++ b/crm_project_task/models/project_task.py @@ -0,0 +1,10 @@ +# 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 + + +class CrmLead(models.Model): + _inherit = "project.task" + + lead_id = fields.Many2one("crm.lead") diff --git a/crm_project_task/models/res_company.py b/crm_project_task/models/res_company.py new file mode 100644 index 00000000000..8c0e1836454 --- /dev/null +++ b/crm_project_task/models/res_company.py @@ -0,0 +1,10 @@ +# 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 + + +class ResCompany(models.Model): + _inherit = "res.company" + + crm_default_project_id = fields.Many2one("project.project") diff --git a/crm_project_task/models/res_config_settings.py b/crm_project_task/models/res_config_settings.py new file mode 100644 index 00000000000..cb575bbcc30 --- /dev/null +++ b/crm_project_task/models/res_config_settings.py @@ -0,0 +1,13 @@ +# 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 + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + crm_default_project_id = fields.Many2one( + related="company_id.crm_default_project_id", readonly=False + ) diff --git a/crm_project_task/pyproject.toml b/crm_project_task/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/crm_project_task/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/crm_project_task/readme/CONFIGURE.md b/crm_project_task/readme/CONFIGURE.md new file mode 100644 index 00000000000..0b27d20d30e --- /dev/null +++ b/crm_project_task/readme/CONFIGURE.md @@ -0,0 +1,7 @@ +To configure this module, you need to: + +- Go to Project +- Create a project with right configuration in order that all salesman + have access (usually all employees) +- Go to CRM \> Configuration \> Project +- Set crm default project diff --git a/crm_project_task/readme/CONTRIBUTORS.md b/crm_project_task/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..20fa3821967 --- /dev/null +++ b/crm_project_task/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Emilio Pascual ([Moduon](https://www.moduon.team/)) +- Rafael Blasco ([Moduon](https://www.moduon.team/)) diff --git a/crm_project_task/readme/DESCRIPTION.md b/crm_project_task/readme/DESCRIPTION.md new file mode 100644 index 00000000000..1bc4afffba6 --- /dev/null +++ b/crm_project_task/readme/DESCRIPTION.md @@ -0,0 +1 @@ +This module allow create task from leads/opportunities diff --git a/crm_project_task/readme/USAGE.md b/crm_project_task/readme/USAGE.md new file mode 100644 index 00000000000..51cefef72ef --- /dev/null +++ b/crm_project_task/readme/USAGE.md @@ -0,0 +1,9 @@ +1. Go to *CRM \> Sales \> My pipeline*. +2. Open one of the existing leads or create one. +3. Click on the button "Create Task". +4. A popup will appear asking you name and description for create task. +5. Click on "Create Task" button. +6. A task will be created with project in settings. +7. A message chatter will be created in task with link for + lead/opportunity. Also, a message chatter will be creat in + lead/opportunity with link for task. diff --git a/crm_project_task/security/ir.model.access.csv b/crm_project_task/security/ir.model.access.csv new file mode 100644 index 00000000000..0fbc6d9d920 --- /dev/null +++ b/crm_project_task/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_crm_create_task,crm.create.task.user,model_crm_create_task,sales_team.group_sale_salesman,1,1,1,1 diff --git a/crm_project_task/static/description/icon.png b/crm_project_task/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/crm_project_task/static/description/icon.png differ diff --git a/crm_project_task/static/description/index.html b/crm_project_task/static/description/index.html new file mode 100644 index 00000000000..6e81ac69a41 --- /dev/null +++ b/crm_project_task/static/description/index.html @@ -0,0 +1,452 @@ + + + + +CRM Project Task + + + +
+

CRM Project Task

+ + +

Alpha License: AGPL-3 OCA/crm Translate me on Weblate Try me on Runboat

+

This module allow create task from leads/opportunities

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  • Go to Project
  • +
  • Create a project with right configuration in order that all salesman have access (usually all employees)
  • +
  • Go to CRM > Configuration > Project
  • +
  • Set crm default project
  • +
+
+
+

Usage

+
    +
  1. Go to CRM > Sales > My pipeline.
  2. +
  3. Open one of the existing leads or create one.
  4. +
  5. Click on the button “Create Task”.
  6. +
  7. A popup will appear asking you name and description for create task.
  8. +
  9. Click on “Create Task” button.
  10. +
  11. A task will be created with project in settings.
  12. +
  13. A message chatter will be created in task with link for lead/opportunity. Also, a message chatter will be creat in lead/opportunity with link for task.
  14. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Moduon
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

EmilioPascual

+

This module is part of the OCA/crm project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/crm_project_task/tests/__init__.py b/crm_project_task/tests/__init__.py new file mode 100644 index 00000000000..25eb17473a9 --- /dev/null +++ b/crm_project_task/tests/__init__.py @@ -0,0 +1 @@ +from . import test_crm_project_task diff --git a/crm_project_task/tests/test_crm_project_task.py b/crm_project_task/tests/test_crm_project_task.py new file mode 100644 index 00000000000..df7dd06df2a --- /dev/null +++ b/crm_project_task/tests/test_crm_project_task.py @@ -0,0 +1,97 @@ +# Copyright 2023 Moduon Team S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0) + +from odoo.exceptions import UserError +from odoo.tests import tagged +from odoo.tests.common import TransactionCase + +from odoo.addons.mail.tests.common import mail_new_test_user + + +@tagged("post_install", "-at_install") +class TestCrmProjectTask(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.company = cls.env.user.company_id + cls.user_salesman = mail_new_test_user( + cls.env, + login="user_test", + name="User Test", + email="user_test@test.example.com", + company_id=cls.company.id, + groups="sales_team.group_sale_salesman", + ) + cls.partner = cls.env["res.partner"].create( + { + "name": "Partner Test", + } + ) + cls.lead = cls.env["crm.lead"].create( + { + "name": "Test Lead", + "type": "lead", + "partner_id": cls.partner.id, + "user_id": cls.user_salesman.id, + } + ) + cls.project = cls.env["project.project"].create( + { + "name": "Test Project", + "description": "Test Description", + } + ) + + def test_create_task(self): + self.company.crm_default_project_id = self.project + task_name = "Task Test" + task_description = "Line1
Line2" + action = ( + self.env["crm.create.task"] + .with_user(self.user_salesman) + .create( + { + "lead_id": self.lead.id, + "task_name": task_name, + "description": task_description, + } + ) + .create_task() + ) + task = self.env["project.task"].browse(action["res_id"]) + self.assertEqual(task.name, task_name) + self.assertEqual(task.project_id, self.company.crm_default_project_id) + self.assertEqual(task.partner_id, self.partner) + self.assertEqual(task.lead_id, self.lead) + + def test_create_task_no_project(self): + self.company.crm_default_project_id = False + task_name = "Task Test" + task_description = "Line1
Line2" + wizard = ( + self.env["crm.create.task"] + .with_user(self.user_salesman) + .create( + { + "lead_id": self.lead.id, + "task_name": task_name, + "description": task_description, + } + ) + ) + with self.assertRaises(UserError): + wizard.create_task() + + def test_action_tasks(self): + self.company.crm_default_project_id = self.project + self.env["crm.create.task"].with_user(self.user_salesman).create( + { + "lead_id": self.lead.id, + "task_name": "Task Test", + "description": "Line1
Line2", + } + ).create_task() + action = self.lead.action_tasks() + tasks = self.env["project.task"].search(action["domain"]) + tasks_lead = tasks.mapped("lead_id") + self.assertEqual(self.lead, tasks_lead) diff --git a/crm_project_task/views/crm_lead.xml b/crm_project_task/views/crm_lead.xml new file mode 100644 index 00000000000..8b742719b2c --- /dev/null +++ b/crm_project_task/views/crm_lead.xml @@ -0,0 +1,31 @@ + + + + + crm.lead.view.form.inherit.crm.project.task + crm.lead + + + + + + + diff --git a/crm_project_task/views/project_task.xml b/crm_project_task/views/project_task.xml new file mode 100644 index 00000000000..5820d38f449 --- /dev/null +++ b/crm_project_task/views/project_task.xml @@ -0,0 +1,17 @@ + + + + + project.task.form.inherit + project.task + + + + + + + + + + diff --git a/crm_project_task/views/res_config_settings.xml b/crm_project_task/views/res_config_settings.xml new file mode 100644 index 00000000000..5237bcabf83 --- /dev/null +++ b/crm_project_task/views/res_config_settings.xml @@ -0,0 +1,23 @@ + + + + + res.config.settings.view.form.inherit.crm.project.task + res.config.settings + + + + + + + + + + + + diff --git a/crm_project_task/wizards/__init__.py b/crm_project_task/wizards/__init__.py new file mode 100644 index 00000000000..19005e5606a --- /dev/null +++ b/crm_project_task/wizards/__init__.py @@ -0,0 +1 @@ +from . import crm_create_task diff --git a/crm_project_task/wizards/crm_create_task.py b/crm_project_task/wizards/crm_create_task.py new file mode 100644 index 00000000000..d58463996c8 --- /dev/null +++ b/crm_project_task/wizards/crm_create_task.py @@ -0,0 +1,67 @@ +# 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" + + lead_id = fields.Many2one("crm.lead") + 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." + ) + ) + # Create task + task = self.env["project.task"].sudo().create(self._get_data_create(project)) + # Messages in chatter + task.message_post( + body=_( + "Task created from lead/opportunity " + "%(name)s.", + lead=self.lead_id, + name=self.lead_id.name, + ) + ) + self.lead_id.message_post( + body=_( + "Task %(name)s 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, project): + """Get dict to create task""" + return { + "name": self.task_name, + "project_id": project.id, + "partner_id": self.lead_id.partner_id.id, + "lead_id": self.lead_id.id, + "description": self.description, + "user_ids": [(6, 0, [])], + } diff --git a/crm_project_task/wizards/crm_create_task.xml b/crm_project_task/wizards/crm_create_task.xml new file mode 100644 index 00000000000..8032c1208fb --- /dev/null +++ b/crm_project_task/wizards/crm_create_task.xml @@ -0,0 +1,33 @@ + + + + + crm.create.task.form + crm.create.task + +
+ + + + +
+
+
+
+
+ + + Create Task + crm.create.task + form + new + +