diff --git a/modoboa/admin/app_settings.py b/modoboa/admin/app_settings.py
index bbfe2317a..922ac3731 100644
--- a/modoboa/admin/app_settings.py
+++ b/modoboa/admin/app_settings.py
@@ -69,7 +69,8 @@ class AdminParametersForm(parameters.AdminParametersForm):
"of the MX that should match with domains' MX records. "
"On per line."
),
- widget=forms.Textarea
+ widget=forms.Textarea,
+ required=False
)
enable_dnsbl_checks = YesNoField(
@@ -126,6 +127,7 @@ class AdminParametersForm(parameters.AdminParametersForm):
# Visibility rules
visibility_rules = {
+ "valid_mxs": "enable_mx_checks=yes",
"mailboxes_owner": "handle_mailboxes=yes",
}
diff --git a/modoboa/admin/models/domain.py b/modoboa/admin/models/domain.py
index f38dd5977..d90b00099 100644
--- a/modoboa/admin/models/domain.py
+++ b/modoboa/admin/models/domain.py
@@ -229,9 +229,8 @@ class MXQuerySet(models.QuerySet):
def has_valids(self):
"""Return managed results."""
- if parameters.get_admin("ENABLE_MX_CHECKS"):
- if parameters.get_admin("VALID_MXS", app="admin").strip():
- return self.filter(managed=True).exists()
+ if parameters.get_admin("VALID_MXS", app="admin").strip():
+ return self.filter(managed=True).exists()
return self.exists()
diff --git a/modoboa/admin/templates/admin/domain_detail.html b/modoboa/admin/templates/admin/domain_detail.html
index 20bd70225..ab79891ad 100644
--- a/modoboa/admin/templates/admin/domain_detail.html
+++ b/modoboa/admin/templates/admin/domain_detail.html
@@ -21,11 +21,17 @@
-
-
{% trans "DNS status" %}
-
MX
-
DNSBL
-
+ {% if enable_mx_checks == "yes" or enable_dnsbl_checks == "yes" %}
+
+
{% trans "DNS status" %}
+ {% if enable_mx_checks == "yes" %}
+
MX
+ {% endif %}
+ {% if enable_dnsbl_checks == "yes" %}
+
DNSBL
+ {% endif %}
+
+ {% endif %}
{% trans "Creation date" %}{{ domain.creation }}
diff --git a/modoboa/admin/templates/admin/domains.html b/modoboa/admin/templates/admin/domains.html
index b6b6a30ea..08440de2f 100644
--- a/modoboa/admin/templates/admin/domains.html
+++ b/modoboa/admin/templates/admin/domains.html
@@ -31,9 +31,11 @@ $(document).ready(function() {
{% block actions %}{% domains_menu "domains" user %}{% endblock %}
{% block table_header %}
-
{% trans "Name" %} |
-
{% trans "Alias(es)" %} |
-
{% trans "Tags" %} |
-
{% trans "DNS status" %} |
-
{% trans "Actions" %} |
+
{% trans "Name" %} |
+
{% trans "Alias(es)" %} |
+
{% trans "Tags" %} |
+ {% if enable_mx_checks == "yes" or enable_dnsbl_checks == "yes" %}
+
{% trans "DNS status" %} |
+ {% endif %}
+
{% trans "Actions" %} |
{% endblock %}
diff --git a/modoboa/admin/templates/admin/domains_table.html b/modoboa/admin/templates/admin/domains_table.html
index 34204e3bb..da4587af4 100644
--- a/modoboa/admin/templates/admin/domains_table.html
+++ b/modoboa/admin/templates/admin/domains_table.html
@@ -5,12 +5,18 @@
{{ domain }}{% if not domain.enabled %} ({% trans "disabled" %}){% endif %} |
{% domain_aliases domain %} |
{% render_tags domain.tags %} |
-
-
- MX
- DNSBL
-
- |
+ {% if enable_mx_checks == "yes" or enable_dnsbl_checks == "yes" %}
+
+
+ {% if enable_mx_checks == "yes" %}
+ MX
+ {% endif %}
+ {% if enable_dnsbl_checks == "yes" %}
+ DNSBL
+ {% endif %}
+
+ |
+ {% endif %}
{% domain_actions user domain %} |
{% endfor %}
diff --git a/modoboa/admin/views/domain.py b/modoboa/admin/views/domain.py
index 4bc5039cf..fb0266509 100644
--- a/modoboa/admin/views/domain.py
+++ b/modoboa/admin/views/domain.py
@@ -63,7 +63,7 @@ def _domains(request):
context = {
"handle_mailboxes": parameters.get_admin(
"HANDLE_MAILBOXES", raise_error=False),
- "auto_account_removal": parameters.get_admin("AUTO_ACCOUNT_REMOVAL")
+ "auto_account_removal": parameters.get_admin("AUTO_ACCOUNT_REMOVAL"),
}
page = get_listing_page(domainlist, request.GET.get("page", 1))
if page is None:
@@ -71,7 +71,10 @@ def _domains(request):
else:
context["rows"] = _render_to_string(
request, "admin/domains_table.html", {
- 'domains': page.object_list,
+ "domains": page.object_list,
+ "enable_mx_checks": parameters.get_admin("ENABLE_MX_CHECKS"),
+ "enable_dnsbl_checks": (
+ parameters.get_admin("ENABLE_DNSBL_CHECKS")),
}
)
context["pages"] = [page.number]
@@ -87,7 +90,11 @@ def domains(request, tplname="admin/domains.html"):
reverse("admin:identity_list")
)
return HttpResponseRedirect(reverse("core:user_index"))
- return render(request, tplname, {"selection": "domains"})
+ return render(request, tplname, {
+ "selection": "domains",
+ "enable_mx_checks": parameters.get_admin("ENABLE_MX_CHECKS"),
+ "enable_dnsbl_checks": parameters.get_admin("ENABLE_DNSBL_CHECKS")
+ })
@login_required
@@ -176,7 +183,11 @@ class DomainDetailView(
context = super(DomainDetailView, self).get_context_data(**kwargs)
result = signals.extra_domain_dashboard_widgets.send(
self.__class__, user=self.request.user, domain=self.object)
- context["templates"] = {"left": [], "right": []}
+ context.update({
+ "templates": {"left": [], "right": []},
+ "enable_mx_checks": parameters.get_admin("ENABLE_MX_CHECKS"),
+ "enable_dnsbl_checks": parameters.get_admin("ENABLE_DNSBL_CHECKS"),
+ })
for receiver, widgets in result:
for widget in widgets:
context["templates"][widget["column"]].append(