mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
81 lines
3.3 KiB
Python
81 lines
3.3 KiB
Python
# coding: utf-8
|
|
from django.utils.translation import ugettext as _, ugettext_noop
|
|
from modoboa.lib import tables
|
|
from templatetags.admin_extras import *
|
|
|
|
class DomainsTable(tables.Table):
|
|
tableid = "objects_table"
|
|
idkey = "id"
|
|
|
|
name = tables.LinkColumn(
|
|
"name", label=ugettext_noop("Name"),
|
|
urlpattern="modoboa.admin.views.editdomain",
|
|
title=_("Edit domain"), modal=True, modalcb="domainform_cb"
|
|
)
|
|
domaliases = tables.Column("domainalias_count", label=ugettext_noop("Domain aliases"),
|
|
width="100px", align="center")
|
|
mboxes = tables.Column("mailbox_count", label=ugettext_noop("Mailboxes"),
|
|
width="100px", align="center")
|
|
mbaliases = tables.Column("mbalias_count", label=ugettext_noop("Mailbox aliases"),
|
|
width="100px", align="center")
|
|
quota = tables.Column("quota", label=ugettext_noop("Quota"),
|
|
width="50px", align="center")
|
|
enabled = tables.Column("enabled", label=gender("Enabled", "m"), width="50px",
|
|
align="center")
|
|
actions = tables.ActionColumn("actions", label=ugettext_noop("Actions"), width="70px",
|
|
align="center", defvalue=domain_actions)
|
|
|
|
cols_order = ["name", "domaliases", "mboxes", "mbaliases",
|
|
"quota", "actions"]
|
|
|
|
def __init__(self, request, doms):
|
|
super(DomainsTable, self).__init__(request)
|
|
self.populate(self._rows_from_model(doms))
|
|
|
|
def parse_quota(self, value):
|
|
return "%s %s" % (value, _("MB"))
|
|
|
|
def parse_enabled(self, value):
|
|
return _("yes") if value else _("no")
|
|
|
|
def row_class(self, request, domain):
|
|
if not domain.enabled:
|
|
return "muted"
|
|
return ""
|
|
|
|
class ExtensionsTable(tables.Table):
|
|
idkey = "id"
|
|
selection = tables.SelectionColumn("selection", width="4%", header=False)
|
|
name = tables.Column("name", label=ugettext_noop("Name"), width="15%")
|
|
version = tables.Column("version", label=ugettext_noop("Version"), width="6%")
|
|
descr = tables.Column("description", label=ugettext_noop("Description"))
|
|
|
|
cols_order = ["selection", "name", "version", "descr"]
|
|
|
|
class IdentitiesTable(tables.Table):
|
|
idkey = "id"
|
|
identity = tables.LinkColumn(
|
|
"identity", label=ugettext_noop("Email/Username"),
|
|
modal=True,
|
|
urlpattern={"User" : "modoboa.admin.views.editaccount",
|
|
"Alias" : "modoboa.admin.views.editdlist"},
|
|
modalcb={"User" : "editaccount_cb", "Alias" : "dlistform_cb"}
|
|
)
|
|
name_or_rcpt = tables.Column("name_or_rcpt", label=ugettext_noop("Fullname/Recipient"))
|
|
actions = tables.ActionColumn("actions", label=ugettext_noop("Actions"),
|
|
width="70px", align="center",
|
|
defvalue=identity_actions)
|
|
|
|
cols_order = ["identity", "name_or_rcpt", "actions"]
|
|
|
|
def __init__(self, request, identities):
|
|
super(IdentitiesTable, self).__init__(request)
|
|
self.populate(self._rows_from_model(identities, True))
|
|
|
|
def row_class(self, request, obj):
|
|
if obj.__class__.__name__ == "User" and not obj.is_active:
|
|
return "muted"
|
|
if not obj.enabled:
|
|
return "muted"
|
|
return ""
|