Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3ee1475
[ADD] mail_activity_reminder
alexey-pelykh Feb 13, 2020
c4c1d38
[UPD] Update mail_activity_reminder.pot
oca-travis May 7, 2020
8e86071
[UPD] Brainbean Apps => CorporateHub
alexey-pelykh Nov 4, 2020
e247946
Added translation using Weblate (Portuguese)
pedrocs-exo May 11, 2021
195405b
Translated using Weblate (Portuguese)
pedrocs-exo May 11, 2021
7a1c263
Added translation using Weblate (French)
ypapouin Oct 20, 2022
dd3b643
Translated using Weblate (French)
ypapouin Oct 20, 2022
cfe7da2
[IMP] mail_activity_reminder: black, isort, prettier
rousseldenis Apr 21, 2023
a571b4c
[MIG][13.0] mail_activity_reminder
rousseldenis Apr 21, 2023
0096d34
[IMP] mail_activity_reminder: Group sendings per user and activity type
rousseldenis Apr 22, 2023
ebcf3c8
[IMP] mail_activity_reminder: pre-commit stuff
sebalix Oct 9, 2023
4c3c907
[MIG] mail_activity_reminder: Migration to 16.0
sebalix Oct 9, 2023
dbcf49c
Added translation using Weblate (Spanish)
Ivorra78 Nov 8, 2023
ae043ab
Translated using Weblate (Spanish)
Ivorra78 Nov 8, 2023
8f03c78
Added translation using Weblate (Italian)
mymage Dec 1, 2023
3f73976
Translated using Weblate (Italian)
mymage Dec 7, 2023
590b7cc
[IMP] mail_activity_reminder: pre-commit auto fixes
bizzappdev Apr 9, 2024
eb58052
[MIG] mail_activity_reminder: Migration to 17.0
bizzappdev Apr 9, 2024
a076e13
Translated using Weblate (Italian)
mymage Aug 30, 2024
cff8aae
[IMP] mail_activity_reminder: pre-commit auto fixes
ellbristow Jan 9, 2025
c6377cc
[MIG] mail_activity_reminder: Migration to 18.0
ellbristow Jan 9, 2025
8960e7f
[IMP] mail_activity_reminder: pre-commit auto fixes
theangryangel Nov 7, 2025
a547a36
[MIG] mail_activity_reminder: Migration to 19.0
theangryangel Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions mail_activity_reminder/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

======================
Mail Activity Reminder
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:635275e093f8459aba8510ad763931b5e0ca35e636cb5a287f56f74a5e80f1f2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-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%2Fmail-lightgray.png?logo=github
:target: https://github.com/OCA/mail/tree/19.0/mail_activity_reminder
:alt: OCA/mail
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/mail-19-0/mail-19-0-mail_activity_reminder
: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/mail&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows setting reminders for various Activity Types.

**Table of contents**

.. contents::
:local:

Configuration
=============

To configure reminders for specific Activity Type:

1. Go to *Settings > Technical > Activity Types*
2. Open a specific activity type
3. Fill *Reminders* field with a non-digit-separated list of offsets (in
days) when reminders should be fired: e.g. 0 means "on the deadline
day" while 5 means "5 calendar days before the deadline".

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/mail/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 <https://github.com/OCA/mail/issues/new?body=module:%20mail_activity_reminder%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
-------

* CorporateHub

Contributors
------------

- `CorporateHub <https://corporatehub.eu/>`__

- Alexey Pelykh <alexey.pelykh@corphub.eu>

- Denis Roussel <denis.roussel@acsone.eu>
- Elliott Bristow <elliott@glo.systems>

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.

This module is part of the `OCA/mail <https://github.com/OCA/mail/tree/19.0/mail_activity_reminder>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions mail_activity_reminder/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from . import models
19 changes: 19 additions & 0 deletions mail_activity_reminder/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2020 Brainbean Apps (https://brainbeanapps.com)
# Copyright 2020 CorporateHub (https://corporatehub.eu)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

{
"name": "Mail Activity Reminder",
"version": "19.0.1.0.0",
"category": "Discuss",
"website": "https://github.com/OCA/mail",
"author": "CorporateHub, Odoo Community Association (OCA)",
"license": "AGPL-3",
"summary": "Reminder notifications about planned activities",
"depends": ["mail"],
"data": [
"data/mail_activity_reminder_cron.xml",
"views/mail_activity_type.xml",
"data/mail_activity_template.xml",
],
}
16 changes: 16 additions & 0 deletions mail_activity_reminder/data/mail_activity_reminder_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2020 Brainbean Apps (https://brainbeanapps.com)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo noupdate="1">
<record id="mail_activity_reminder" model="ir.cron">
<field name="name">Mail Activity: Reminders</field>
<field name="model_id" ref="model_mail_activity" />
<field name="state">code</field>
<field name="code">model._process_reminders()</field>
<field name="interval_number">1</field>
<field name="interval_type">hours</field>
<field name="nextcall">2020-01-01 00:01:00</field>
</record>
</odoo>
42 changes: 42 additions & 0 deletions mail_activity_reminder/data/mail_activity_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright ACSONE SA/NV
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-->
<odoo noupdate="1">
<template id="message_activity_assigned">
<div style="margin: 0px; padding: 0px; font-size: 13px;">
<span>You have some activities assigned that expire soon:</span>

<t t-foreach="activities.mapped('activity_type_id')" t-as="activity_type">
<h3>
<span t-field="activity_type.display_name">:</span>
</h3>
<t
t-foreach="activities.filtered(lambda activity: activity.activity_type_id == activity_type)"
t-as="activity"
>
<span
t-field="activity.create_uid.name"
/> assigned you an activity <span
t-field="activity.activity_type_id.name"
/>
<t t-if="activity.summary">(<span
t-field="activity.summary"
/>)</t>
on <span t-field="activity.res_name" />
to close for <span t-field="activity.date_deadline" />.<br />
<p style="margin: 16px 0px 16px 0px;">
<a
t-att-href="'/mail/view?model=%s&amp;res_id=%s' % (activity.res_model, activity.res_id)"
style="background-color:#875A7B; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px;"
>
View
<t t-esc="model_description or 'document'" />
</a>
</p>
</t>
</t>
</div>
</template>
</odoo>
106 changes: 106 additions & 0 deletions mail_activity_reminder/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mail_activity_reminder
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-08 13:36+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\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: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid ".<br/>"
msgstr ".<br/>"

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "<span>You have some activities assigned that expire soon:</span>"
msgstr "<span>Tienes algunas actividades asignadas que expiran pronto:</span>"

#. module: mail_activity_reminder
#: model:ir.model.fields,help:mail_activity_reminder.field_mail_activity_type__reminders
msgid ""
"A non-digit-separated list of offsets (in days) when reminders should be "
"fired: e.g. 0 means \"on the deadline day\" while 5 means \"5 calendar days "
"before the deadline\"."
msgstr ""
"Una lista no separada por dígitos de las fechas (en días) en las que deben "
"enviarse los recordatorios: por ejemplo, 0 significa \"el día de la fecha "
"límite\", mientras que 5 significa \"5 días naturales antes de la fecha "
"límite\"."

#. module: mail_activity_reminder
#: model:ir.model,name:mail_activity_reminder.model_mail_activity
msgid "Activity"
msgstr "Actividad"

#. module: mail_activity_reminder
#: model:ir.model,name:mail_activity_reminder.model_mail_activity_type
msgid "Activity Type"
msgstr "Tipo de Actividad"

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity__deadline
msgid "Deadline"
msgstr "Fecha límite"

#. module: mail_activity_reminder
#: model:ir.model,name:mail_activity_reminder.model_mail_thread
msgid "Email Thread"
msgstr ""

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity__last_reminder_local
msgid "Last reminder (local)"
msgstr "Último recordatorio (local)"

#. module: mail_activity_reminder
#: model:ir.actions.server,name:mail_activity_reminder.mail_activity_reminder_ir_actions_server
msgid "Mail Activity: Reminders"
msgstr "Actividad de correo: Recordatorios"

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity__next_reminder
msgid "Next reminder"
msgstr "Siguiente recordatorio"

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity_type__reminders
msgid "Reminders"
msgstr "Recordatorios"

#. module: mail_activity_reminder
#. odoo-python
#: code:addons/mail_activity_reminder/models/mail_activity.py:0
#, python-format
msgid "Some activities you are assigned too expire soon."
msgstr "Algunas actividades que se te asignan también caducan pronto."

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "View"
msgstr "Vista"

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "assigned you an activity"
msgstr "te ha asignado una actividad"

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "on"
msgstr "sobre"

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "to close for"
msgstr "para cerrar por"
110 changes: 110 additions & 0 deletions mail_activity_reminder/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mail_activity_reminder
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-10-20 09:44+0000\n"
"Last-Translator: Yann Papouin <ypa@decgroupe.com>\n"
"Language-Team: none\n"
"Language: fr\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.14.1\n"

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid ".<br/>"
msgstr ""

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "<span>You have some activities assigned that expire soon:</span>"
msgstr ""

#. module: mail_activity_reminder
#: model:ir.model.fields,help:mail_activity_reminder.field_mail_activity_type__reminders
msgid ""
"A non-digit-separated list of offsets (in days) when reminders should be "
"fired: e.g. 0 means \"on the deadline day\" while 5 means \"5 calendar days "
"before the deadline\"."
msgstr ""
"Une liste de nombres de jours (séparés par tout caractère autre que des "
"chiffres) qui indique quand les rappels doivent être déclenchés : par ex. 0 "
"signifie \"le jour de l'échéance\" tandis que 5 signifie \"5 jours "
"calendaires avant l'échéance\"."

#. module: mail_activity_reminder
#: model:ir.model,name:mail_activity_reminder.model_mail_activity
msgid "Activity"
msgstr "Activité"

#. module: mail_activity_reminder
#: model:ir.model,name:mail_activity_reminder.model_mail_activity_type
msgid "Activity Type"
msgstr "Type d'activité"

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity__deadline
msgid "Deadline"
msgstr "Echéance"

#. module: mail_activity_reminder
#: model:ir.model,name:mail_activity_reminder.model_mail_thread
msgid "Email Thread"
msgstr ""

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity__last_reminder_local
msgid "Last reminder (local)"
msgstr "Dernier rappel (local)"

#. module: mail_activity_reminder
#: model:ir.actions.server,name:mail_activity_reminder.mail_activity_reminder_ir_actions_server
msgid "Mail Activity: Reminders"
msgstr "Activité : Rappels"

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity__next_reminder
msgid "Next reminder"
msgstr "Rappel suivant"

#. module: mail_activity_reminder
#: model:ir.model.fields,field_description:mail_activity_reminder.field_mail_activity_type__reminders
msgid "Reminders"
msgstr "Rappels"

#. module: mail_activity_reminder
#. odoo-python
#: code:addons/mail_activity_reminder/models/mail_activity.py:0
#, python-format
msgid "Some activities you are assigned too expire soon."
msgstr ""

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "View"
msgstr ""

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "assigned you an activity"
msgstr ""

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "on"
msgstr ""

#. module: mail_activity_reminder
#: model_terms:ir.ui.view,arch_db:mail_activity_reminder.message_activity_assigned
msgid "to close for"
msgstr ""

#, python-format
#~ msgid "%s: %s assigned to you, %d day(s) remaining"
#~ msgstr "%s : %s assigné à vous, %d jour(s) restant(s)"
Loading