Fixes to bemade_mail_cow_integration config param usage.

This commit is contained in:
Marc Durepos 2024-03-12 11:51:32 -04:00
parent 988a28a9d3
commit 656df081a1
4 changed files with 27 additions and 3 deletions

View file

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
{
'name': 'Mailcow Integration',
'version': '1.0.0',
'version': '15.0.1.0.1',
'category': 'Administration',
'summary': 'Module for integrating Mailcow email server with Odoo.',
'description': """

View file

@ -0,0 +1,13 @@
from odoo import api, SUPERUSER_ID
def migrate(cr, version):
env = api.Environment(cr, SUPERUSER_ID, {})
settings = env['ir.config_parameter']
create_param = settings.get_param('mailcow.create_mailbox')
sync_param = settings.get_param('mailcow.sync_alias')
base_url = settings.get_param('mailcow.base_url')
api_key = settings.get_param('mailcow.api_key')
if (create_param or sync_param) and (not base_url or not api_key):
(create_param | sync_param).write({'value': False})

View file

@ -8,8 +8,12 @@ class MailAlias(models.Model):
@api.model
def create(self, vals):
params = self.env['ir.config_parameter'].sudo()
param_auto_create = params.get_param('mailcow.create_mailbox')
alias = super(MailAlias, self).create(vals)
if not alias.alias_name:
if not alias.alias_name or not param_auto_create:
return alias
alias_domain = self.env["ir.config_parameter"].sudo().get_param("mail.catchall.domain"),

View file

@ -1,4 +1,6 @@
from odoo import fields, models
from odoo import fields, models, api, _
from odoo.exceptions import ValidationError
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
@ -23,3 +25,8 @@ class ResConfigSettings(models.TransientModel):
string='Create Mailboxes in Mailcow',
help='Auto create Mailboxes in Mailcow on creation in Odoo',
config_parameter='mailcow.create_mailbox')
@api.constrains('mailcow_sync_alias', 'mailcow_auto_create')
def require_api_key_and_base_url_to_sync(self):
if not self.mailcow_api_key and self.mailcow_base_url:
raise ValidationError(_("You must set a base URL and API key to enable synchronization."))