mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -4,7 +4,7 @@ from django.db import models
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
"""Models related to domains management."""
|
||||
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.db import models
|
||||
from django.db.models.manager import Manager
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
import reversion
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core.models import User, ObjectAccess
|
||||
from modoboa.core import signals as core_signals
|
||||
@@ -41,7 +42,7 @@ class Domain(AdminObject):
|
||||
help_text=ugettext_lazy("Check to activate this domain"),
|
||||
default=True
|
||||
)
|
||||
owners = generic.GenericRelation(ObjectAccess)
|
||||
owners = GenericRelation(ObjectAccess)
|
||||
type = models.CharField(default="domain", max_length=20)
|
||||
|
||||
objects = DomainManager()
|
||||
|
||||
@@ -4,9 +4,9 @@ from django.db import models
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core import signals as core_signals
|
||||
@@ -46,7 +46,7 @@ class DomainAlias(AdminObject):
|
||||
default=True
|
||||
)
|
||||
|
||||
owners = generic.GenericRelation(core_models.ObjectAccess)
|
||||
owners = GenericRelation(core_models.ObjectAccess)
|
||||
|
||||
objects = DomainAliasManager()
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ from django.db.models.manager import Manager
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from .base import AdminObject
|
||||
from .domain import Domain
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% load i18n form_tags %}{% load url from future %}
|
||||
{% load i18n form_tags %}
|
||||
<h2>{% trans "Forward" %} <small>{% trans "Automatically forward emails to another address" %}</small></h2>
|
||||
<hr>
|
||||
<form class="form-horizontal" method="POST" action="{% url 'user_forward' %}"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% extends "admin/listing.html" %}
|
||||
{% load admin_tags lib_tags i18n %}{% load url from future %}
|
||||
{% load admin_tags lib_tags i18n %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Identities" %}{% endblock %}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
"""Alias related views."""
|
||||
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required
|
||||
@@ -7,7 +8,7 @@ from django.db import IntegrityError
|
||||
from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib.exceptions import PermDeniedException, Conflict
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
"""
|
||||
Domain related views.
|
||||
"""
|
||||
"""Domain related views."""
|
||||
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
@@ -11,7 +9,7 @@ from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.core import signals as core_signals
|
||||
@@ -38,8 +36,8 @@ def index(request):
|
||||
|
||||
@login_required
|
||||
@user_passes_test(
|
||||
lambda u: u.has_perm("admin.view_domains")
|
||||
or u.has_perm("admin.view_mailboxes")
|
||||
lambda u: u.has_perm("admin.view_domains") or
|
||||
u.has_perm("admin.view_mailboxes")
|
||||
)
|
||||
def _domains(request):
|
||||
sort_order, sort_dir = get_sort_order(request.GET, "name")
|
||||
|
||||
@@ -7,7 +7,7 @@ from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib import parameters, events
|
||||
|
||||
@@ -10,7 +10,7 @@ from django.db import transaction
|
||||
from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.exceptions import ModoboaException, Conflict
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.lib.web_utils import (
|
||||
render_to_json_response, _render_to_string
|
||||
|
||||
@@ -6,7 +6,7 @@ from django.db.models.signals import post_delete
|
||||
from django.dispatch import receiver
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
|
||||
@receiver(reversion.post_revision_commit)
|
||||
|
||||
@@ -6,14 +6,14 @@ from django.contrib.auth.hashers import make_password, is_password_usable
|
||||
from django.contrib.auth.models import (
|
||||
UserManager, Group, PermissionsMixin
|
||||
)
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core.password_hashers import get_password_hasher
|
||||
from modoboa.lib import events, parameters
|
||||
@@ -470,7 +470,7 @@ class ObjectAccess(models.Model):
|
||||
user = models.ForeignKey(User)
|
||||
content_type = models.ForeignKey(ContentType)
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = generic.GenericForeignKey('content_type', 'object_id')
|
||||
content_object = GenericForeignKey('content_type', 'object_id')
|
||||
is_owner = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% load i18n lib_tags %}{% load url from future %}
|
||||
{% load i18n lib_tags %}
|
||||
<h2>{% trans "Parameters" %} <small>{% trans "Configure Modoboa" %}</small></h2><hr />
|
||||
<form id="settings_form" method="POST" action="{% url 'core:parameter_save' %}" class="form-horizontal">{% csrf_token %}
|
||||
{% include "common/parameters.html" %}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% load i18n %}{% load url from future %}
|
||||
{% load i18n %}
|
||||
<h2>{% trans "Preferences" %} <small>{% trans "Customize Modoboa" %}</small></h2>
|
||||
<hr>
|
||||
{% if forms %}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{% load i18n form_tags %}
|
||||
{% load url from future %}
|
||||
|
||||
<h2>{% trans "Profile" %} <small>{% trans "Update your personal information" %}</small></h2>
|
||||
<hr>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib.sites.models import get_current_site
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
|
||||
from modoboa.core.extensions import exts_pool
|
||||
from modoboa.lib import parameters
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import reversion
|
||||
"""Modoboa Lib models."""
|
||||
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
|
||||
class Parameter(models.Model):
|
||||
name = models.CharField(max_length=255)
|
||||
|
||||
@@ -4,6 +4,7 @@ Form rendering tags.
|
||||
|
||||
from django import forms
|
||||
from django import template
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
from modoboa.lib.form_utils import SeparatorField
|
||||
@@ -20,7 +21,7 @@ def render_form(form, tpl=None):
|
||||
ret = ""
|
||||
for field in form:
|
||||
ret += "%s\n" % render_field(field)
|
||||
return ret
|
||||
return mark_safe(ret)
|
||||
|
||||
|
||||
def configure_field_classes(field):
|
||||
|
||||
@@ -4,7 +4,7 @@ from django.db import models
|
||||
from django.db.models.manager import Manager
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
import reversion
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.admin import models as admin_models
|
||||
from modoboa.lib import parameters
|
||||
|
||||
@@ -69,7 +69,7 @@ TwocolsNav.prototype = {
|
||||
|
||||
toggle_field_visibility: function($field, $parent, value) {
|
||||
if ($parent.attr("disabled") === undefined &&
|
||||
$field.attr("data-visibility-value") == value) {
|
||||
$field.attr("data-visibility-value") === value) {
|
||||
$field.attr("disabled", null);
|
||||
$field.show();
|
||||
this.propagate_change($field);
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
{% load url from future %}
|
||||
{% load static %}
|
||||
<html lang="{{ LANGUAGE_CODE }}">
|
||||
<head>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
{% load static %}
|
||||
{% load i18n core_tags lib_tags %}{% load url from future %}
|
||||
{% load i18n core_tags lib_tags %}
|
||||
<html lang="{{ LANGUAGE_CODE }}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
{% load i18n core_tags lib_tags form_tags %}
|
||||
{% load static %}
|
||||
{% load url from future %}
|
||||
<html lang="{{ LANGUAGE_CODE }}">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
Reference in New Issue
Block a user