[REF] hr_expense: fix settings using volatile checkboxes
This commit fixes * `default_alias_email` is now called use_mailgateway to better reflect its use. When unchecked the alias_prefix value is set to False in order to reset the alias. * empty list message displays receipts alias only if the mailgateway option is activated * some code cleaning so that get_default_ and set_ methods are put into a sole method in order to lessen code size
This commit is contained in:
committed by
Yannick Tivisse
parent
4b5513cfd4
commit
76bf5dc83d
@@ -309,7 +309,8 @@ class HrExpense(models.Model):
|
||||
@api.model
|
||||
def get_empty_list_help(self, help_message):
|
||||
if help_message:
|
||||
alias_record = self.env.ref('hr_expense.mail_alias_expense')
|
||||
use_mailgateway = self.env['ir.config_parameter'].sudo().get_param('hr_expense.use_mailgateway')
|
||||
alias_record = use_mailgateway and self.env.ref('hr_expense.mail_alias_expense') or False
|
||||
if alias_record and alias_record.alias_domain and alias_record.alias_name:
|
||||
link = "<a id='o_mail_test' href='mailto:%(email)s?subject=Lunch%%20with%%20customer%%3A%%20%%2412.32'>%(email)s</a>" % {
|
||||
'email': '%s@%s' % (alias_record.alias_name, alias_record.alias_domain)
|
||||
|
||||
@@ -2,26 +2,36 @@
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class HrExpenseConfigSettings(models.TransientModel):
|
||||
_name = 'hr.expense.config.settings'
|
||||
_inherit = 'res.config.settings'
|
||||
|
||||
alias_prefix = fields.Char('Default Alias Name for Expenses')
|
||||
alias_domain = fields.Char('Alias Domain', default=lambda self: self.env["ir.config_parameter"].sudo().get_param("mail.catchall.domain"))
|
||||
group_analytic_accounting = fields.Boolean(string='Analytic Accounting',
|
||||
group_analytic_accounting = fields.Boolean(
|
||||
string='Analytic Accounting',
|
||||
implied_group='analytic.group_analytic_accounting')
|
||||
group_uom = fields.Boolean("Units of Measure",
|
||||
group_uom = fields.Boolean(
|
||||
string="Units of Measure",
|
||||
implied_group='product.group_uom')
|
||||
default_alias_email = fields.Boolean(string='Let your employees record expenses by email', default_model='hr.expense.config.settings')
|
||||
use_mailgateway = fields.Boolean(string='Let your employees record expenses by email')
|
||||
module_project = fields.Boolean(string="Project")
|
||||
module_sale = fields.Boolean(string="Customer Billing")
|
||||
|
||||
@api.model
|
||||
def get_default_alias_prefix(self, fields):
|
||||
alias_name = self.env.ref('hr_expense.mail_alias_expense').alias_name
|
||||
return {'alias_prefix': alias_name}
|
||||
def get_default_fields(self, fields):
|
||||
return dict(
|
||||
alias_prefix=self.env.ref('hr_expense.mail_alias_expense').alias_name,
|
||||
use_mailgateway=self.env['ir.config_parameter'].sudo().get_param('hr_expense.use_mailgateway'),
|
||||
)
|
||||
|
||||
@api.multi
|
||||
def set_default_alias_prefix(self):
|
||||
for record in self:
|
||||
self.env.ref('hr_expense.mail_alias_expense').write({'alias_name': record.alias_prefix})
|
||||
def set_fields(self):
|
||||
self.env.ref('hr_expense.mail_alias_expense').write({'alias_name': self.alias_prefix})
|
||||
self.env['ir.config_parameter'].sudo().set_param('hr_expense.use_mailgateway', self.use_mailgateway)
|
||||
|
||||
@api.onchange('use_mailgateway')
|
||||
def _onchange_use_mailgateway(self):
|
||||
if not self.use_mailgateway:
|
||||
self.alias_prefix = False
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
<div class="row mt16 o_settings_container">
|
||||
<div class="col-xs-12 col-md-6 o_setting_box" title="You can setup a generic email alias to create incoming expenses easily. Write an email with the receipt in attachment to create an expense line in one click. If the mail subject contains the product's internal reference between brackets, the product will be set automatically. Type the expense amount in the mail subject to set it on the expense too.">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="default_alias_email"/>
|
||||
<field name="use_mailgateway"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label string="Emails" for="default_alias_email"/>
|
||||
<label string="Emails" for="use_mailgateway"/>
|
||||
<div class="text-muted">
|
||||
Let your employees record expenses by email
|
||||
</div>
|
||||
<div class="content-group" attrs="{'invisible': ['|', ('default_alias_email', '=', False), ('alias_domain', 'in', ['localhost', '', False])]}">
|
||||
<div class="content-group" attrs="{'invisible': ['|', ('use_mailgateway', '=', False), ('alias_domain', 'in', ['localhost', '', False])]}">
|
||||
<div class="mt16">
|
||||
<label string="Email Alias" class="o_light_label"/>
|
||||
<field name="alias_prefix" class="oe_inline"/>
|
||||
@@ -31,7 +31,7 @@
|
||||
<field name="alias_domain" class="oe_inline" readonly="1"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-group" attrs="{'invisible': ['|', ('default_alias_email', '=', False), ('alias_domain', 'not in', ['localhost', '', False])]}">
|
||||
<div class="content-group" attrs="{'invisible': ['|', ('use_mailgateway', '=', False), ('alias_domain', 'not in', ['localhost', '', False])]}">
|
||||
<div class="mt16">
|
||||
<button type="action" name="base_setup.action_general_configuration" icon="fa-arrow-right" string="Setup your domain alias" class="btn-link"/>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user