diff --git a/mail_activity_plan/README.rst b/mail_activity_plan/README.rst index 41f372e..3a8268d 100644 --- a/mail_activity_plan/README.rst +++ b/mail_activity_plan/README.rst @@ -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 ====================== diff --git a/mail_activity_plan/i18n/fr.po b/mail_activity_plan/i18n/fr.po index 93afdb6..546f883 100644 --- a/mail_activity_plan/i18n/fr.po +++ b/mail_activity_plan/i18n/fr.po @@ -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 diff --git a/mail_activity_plan/models/ir_actions.py b/mail_activity_plan/models/ir_actions.py index dadc25d..0421426 100644 --- a/mail_activity_plan/models/ir_actions.py +++ b/mail_activity_plan/models/ir_actions.py @@ -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 diff --git a/mail_activity_plan/models/mail_activity_plan.py b/mail_activity_plan/models/mail_activity_plan.py index 53c659a..30996e5 100644 --- a/mail_activity_plan/models/mail_activity_plan.py +++ b/mail_activity_plan/models/mail_activity_plan.py @@ -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) diff --git a/mail_activity_plan/views/mail_activity_plan_view.xml b/mail_activity_plan/views/mail_activity_plan_view.xml index 4aa50c6..f124608 100644 --- a/mail_activity_plan/views/mail_activity_plan_view.xml +++ b/mail_activity_plan/views/mail_activity_plan_view.xml @@ -37,10 +37,11 @@ - + - + + @@ -52,36 +53,6 @@ - - mail.activity.template.view.tree - mail.activity.template - - - - - - - - - - - mail.activity.template.view.form - mail.activity.template - -
- - - - - - - - - -
-
-
- Activity plans mail.activity.plan @@ -96,18 +67,5 @@ sequence="12" /> - - Activity templates - mail.activity.template - tree,form - - - -