parent
d0907fc2b6
commit
36cdcc7ace
|
@ -162,6 +162,10 @@ class ElectronicMailFilter(DeactivableMixin, ModelSQL, ModelView):
|
|||
template = fltr.template
|
||||
records = fltr.search_records()
|
||||
if not records:
|
||||
if not template.no_records_email:
|
||||
continue
|
||||
records.append(fltr)
|
||||
elif template.no_records_email:
|
||||
continue
|
||||
|
||||
group_records = (getattr(template, 'single_email', False) and
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
|
@ -98,6 +98,10 @@ msgctxt "field:electronic.mail.template,filters:"
|
|||
msgid "Filters"
|
||||
msgstr "Filtros"
|
||||
|
||||
msgctxt "field:electronic.mail.template,no_records_email:"
|
||||
msgid "Send email when no records"
|
||||
msgstr "Enviar correo si no hay resultados"
|
||||
|
||||
msgctxt "field:electronic.mail.template,reply_to:"
|
||||
msgid "Reply To"
|
||||
msgstr "Responder a"
|
||||
|
|
23
template.py
23
template.py
|
@ -8,7 +8,7 @@ except ImportError:
|
|||
from email.mime.base import MIMEBase
|
||||
from trytond.model import fields
|
||||
from trytond.pool import PoolMeta, Pool
|
||||
|
||||
from trytond.pyson import Eval
|
||||
|
||||
__all__ = ['Template']
|
||||
|
||||
|
@ -18,9 +18,23 @@ class Template(metaclass=PoolMeta):
|
|||
|
||||
filters = fields.One2Many('electronic.mail.filter', 'template',
|
||||
'Filters')
|
||||
no_records_email = fields.Boolean('Send email when no records')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
if cls.reports.states.get('invisible'):
|
||||
cls.reports.states['invisible'] |= Eval('no_records_email')
|
||||
else:
|
||||
cls.reports.states['invisible'] = Eval('no_records_email')
|
||||
if cls.reports.states.get('readonly'):
|
||||
cls.reports.states['readonly'] |= Eval('no_records_email')
|
||||
else:
|
||||
cls.reports.states['readonly'] = Eval('no_records_email')
|
||||
cls.reports.depends.append('no_records_email')
|
||||
|
||||
def get_attachments(self, records):
|
||||
record_ids = [r.id for r in records]
|
||||
record_ids = [r.id for r in records if r]
|
||||
attachments = []
|
||||
for report in self.reports:
|
||||
report = Pool().get(report.report_name, type='report')
|
||||
|
@ -41,3 +55,8 @@ class Template(metaclass=PoolMeta):
|
|||
'Content-Disposition', 'attachment', filename=filename)
|
||||
attachments.append(attachment)
|
||||
return attachments
|
||||
|
||||
@fields.depends('no_records_email')
|
||||
def on_change_no_records_email(self):
|
||||
if self.no_records_email:
|
||||
self.reports = []
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
The COPYRIGHT file at the top level of this repository contains the full
|
||||
copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/notebook" position="before">
|
||||
<label name="no_records_email"/>
|
||||
<field name="no_records_email"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/notebook/page[@id='advanced']" position="after">
|
||||
<page string="Filters" id="filters">
|
||||
<label name="filters"/>
|
||||
|
|
Loading…
Reference in New Issue