[REF]mail_activity_plan:change relation between plans and templates

This commit is contained in:
2023-10-16 15:41:53 +02:00
parent ee4e791185
commit 7b17be925c
5 changed files with 44 additions and 84 deletions

View File

@@ -9,17 +9,18 @@ Use Odoo normal module installation procedure to install ``mail_activity_plan``.
Configuration
=============
To create activity templates, go to Settings > Technical > Discuss > Activity templates :
Select a activiy type, select a user to assign, fiel the other fields (summary, note)
To create activities plans, go to Settings > Technical > Discuss > Activity plans :
Provide a name, select or create activity templates
Provice a name
Add activity templates :
Select an activity type, write a summary. Optionnaly assigne to a user and write a note.
A plan can be related to many activity templates
A activity template can be related to many plans
A activity template can be related to only one plan
A activity template is related to only one activity type
@@ -33,7 +34,9 @@ Go to Settings > Technical > Actions > Server Actions
Provide a name, select a model, select action "[generate_activities]", select a plan.
Once your new server action is configured, go to an instance of the chosen model,
click on the server action to generate automatically the activities of the plan
click on the server action to generate automatically the activities of the plan.
If nobody is assigned to a activity, the current user will be automatically assigned.
Known issues / Roadmap
======================

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-13 08:34+0000\n"
"PO-Revision-Date: 2023-10-13 08:34+0000\n"
"POT-Creation-Date: 2023-10-16 15:18+0000\n"
"PO-Revision-Date: 2023-10-16 15:18+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -29,20 +29,9 @@ msgstr ""
#. module: mail_activity_plan
#: model_terms:ir.ui.view,arch_db:mail_activity_plan.mail_activity_plan_view_form
#: model_terms:ir.ui.view,arch_db:mail_activity_plan.mail_activity_template_view_tree
msgid "Activities"
msgstr "Activités"
#. module: mail_activity_plan
#: model:ir.model.fields,field_description:mail_activity_plan.field_mail_activity_template__mail_activity_plan_ids
msgid "Activities plan"
msgstr "Plan d'activités"
#. module: mail_activity_plan
#: model_terms:ir.ui.view,arch_db:mail_activity_plan.mail_activity_template_view_form
msgid "Activity"
msgstr "Activité"
#. module: mail_activity_plan
#: model:ir.model.fields,field_description:mail_activity_plan.field_mail_activity_template__mail_activity_type_id
msgid "Activity Type"
@@ -54,17 +43,6 @@ msgstr "Type d'activité"
msgid "Activity plans"
msgstr "Plans d'activités"
#. module: mail_activity_plan
#: model:ir.model.fields,field_description:mail_activity_plan.field_mail_activity_plan__mail_activity_template_ids
msgid "Activity template"
msgstr "Modèle d'activité"
#. module: mail_activity_plan
#: model:ir.actions.act_window,name:mail_activity_plan.mail_activity_template_action
#: model:ir.ui.menu,name:mail_activity_plan.menu_mail_activity_template
msgid "Activity templates"
msgstr "Modèles d'activités"
#. module: mail_activity_plan
#: model_terms:ir.ui.view,arch_db:mail_activity_plan.mail_activity_plan_view_form
#: model_terms:ir.ui.view,arch_db:mail_activity_plan.mail_activity_plan_view_search
@@ -133,6 +111,11 @@ msgstr ""
msgid "Last Updated on"
msgstr ""
#. module: mail_activity_plan
#: model:ir.model.fields,field_description:mail_activity_plan.field_mail_activity_template__mail_activity_plan_id
msgid "Mail Activity Plan"
msgstr "Plan d'activités"
#. module: mail_activity_plan
#: model:ir.model,name:mail_activity_plan.model_mail_activity_plan
msgid "Mail activity plan"
@@ -164,6 +147,11 @@ msgstr ""
msgid "Planning"
msgstr ""
#. module: mail_activity_plan
#: model:ir.model.fields,field_description:mail_activity_plan.field_mail_activity_template__sequence
msgid "Sequence"
msgstr "Ordre"
#. module: mail_activity_plan
#: model:ir.model,name:mail_activity_plan.model_ir_actions_server
msgid "Server Action"
@@ -174,6 +162,11 @@ msgstr "Action du serveur"
msgid "Summary"
msgstr "Résumé"
#. module: mail_activity_plan
#: model:ir.model.fields,field_description:mail_activity_plan.field_mail_activity_plan__mail_activity_template_ids
msgid "Template Activities"
msgstr "Modèles d'activités"
#. module: mail_activity_plan
#: model:ir.model.fields,help:mail_activity_plan.field_base_automation__state
#: model:ir.model.fields,help:mail_activity_plan.field_ir_actions_server__state
@@ -196,7 +189,12 @@ msgstr ""
"- 'Envoyer E-Mail': envoyer un e-mail automatiquement (Discutez)\n"
"- 'Ajouter Abonnés': ajouter des abonnés à un enregistrement (Discutez)\n"
"- 'Créer une Nouvelle Activité': créer une activité (Discutez)\n"
"- 'Générer les activités d'un plan d'activités': créer automatiquement les activités du plan dans le modèle choisi"
"- 'Générer les activités d'un plan d'activités': créer une action générant automatiquement les activités du plan"
#. module: mail_activity_plan
#: model:ir.model.fields,help:mail_activity_plan.field_mail_activity_template__sequence
msgid "Used to order activities."
msgstr ""
#. module: mail_activity_plan
#: model:ir.model.fields,help:mail_activity_plan.field_base_automation__plan_id

View File

@@ -20,13 +20,12 @@ class IrActionsServer(models.Model):
records = self.env[self.model_name].browse(self._context.get('active_ids', self._context.get('active_id')))
for record in records :
for mail_activity_template in self.plan_id.mail_activity_template_ids:
date_deadline = self.env['mail.activity']._calculate_date_deadline(mail_activity_template.mail_activity_type_id)
record.activity_schedule(
activity_type_id=mail_activity_template.mail_activity_type_id.id,
summary=mail_activity_template.summary,
note=mail_activity_template.note,
user_id=mail_activity_template.user_id.id,
date_deadline=date_deadline
user_id=self.env.uid if not mail_activity_template.user_id else mail_activity_template.user_id.id,
date_deadline=self.env['mail.activity']._calculate_date_deadline(mail_activity_template.mail_activity_type_id)
)
return False

View File

@@ -2,7 +2,6 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models, _
from odoo.exceptions import UserError
class MailActivityTemplate(models.Model):
'''
@@ -10,16 +9,19 @@ class MailActivityTemplate(models.Model):
'''
_name = 'mail.activity.template'
_description = 'Mail activity template'
_order = 'sequence'
mail_activity_plan_ids = fields.Many2many('mail.activity.plan', string='Activities plan', ondelete='restrict')
mail_activity_plan_id = fields.Many2one('mail.activity.plan', ondelete='restrict')
mail_activity_type_id = fields.Many2one(
'mail.activity.type', 'Activity Type',
default=lambda self: self.env.ref('mail.mail_activity_data_todo'),
ondelete='restrict'
)
sequence = fields.Integer('Sequence', default=1, help="Used to order activities.")
summary = fields.Char('Summary', compute="_compute_default_summary", store=True, readonly=False)
user_id = fields.Many2one('res.users', string='Assigned to', required=True)
user_id = fields.Many2one('res.users', string='Assigned to')
note = fields.Html('Note')
@api.depends('mail_activity_type_id')
@@ -38,5 +40,5 @@ class MailActivityPlan(models.Model):
_description = 'Mail activity plan'
name = fields.Char('Name', required=True)
mail_activity_template_ids = fields.Many2many('mail.activity.template', string='Activity template', ondelete='restrict')
mail_activity_template_ids = fields.One2many('mail.activity.template', 'mail_activity_plan_id', string='Template Activities')
active = fields.Boolean(default=True)

View File

@@ -37,10 +37,11 @@
<field name="name"/>
</h1>
</div>
<group string="Activities">
<group string="Activity Templates">
<field name="active" invisible="1"/>
<field name="mail_activity_template_ids" nolabel="1">
<tree editable="bottom">
<tree>
<field name="sequence" widget="handle"/>
<field name="mail_activity_type_id"/>
<field name="summary"/>
<field name="user_id"/>
@@ -52,36 +53,6 @@
</field>
</record>
<record id="mail_activity_template_view_tree" model="ir.ui.view">
<field name="name">mail.activity.template.view.tree</field>
<field name="model">mail.activity.template</field>
<field name="arch" type="xml">
<tree string="Activities">
<field name="mail_activity_type_id"/>
<field name="summary"/>
<field name="mail_activity_plan_ids"/>
</tree>
</field>
</record>
<record id="mail_activity_template_view_form" model="ir.ui.view">
<field name="name">mail.activity.template.view.form</field>
<field name="model">mail.activity.template</field>
<field name="arch" type="xml">
<form string="Activity">
<sheet>
<group>
<field name="mail_activity_type_id"/>
<field name="summary"/>
<field name="user_id"/>
<field name="mail_activity_plan_ids"/>
<field name="note"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="mail_activity_plan_action" model="ir.actions.act_window">
<field name="name">Activity plans</field>
<field name="res_model">mail.activity.plan</field>
@@ -96,18 +67,5 @@
sequence="12"
/>
<record id="mail_activity_template_action" model="ir.actions.act_window">
<field name="name">Activity templates</field>
<field name="res_model">mail.activity.template</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
id="menu_mail_activity_template"
action="mail_activity_template_action"
parent="mail.mail_menu_technical"
sequence="13"
/>
</data>
</odoo>