add filter by directory on dashboard
This commit is contained in:
parent
3faf5c921d
commit
ffd2ec5e81
|
@ -129,7 +129,13 @@ def get_alias_infos_with_pagination(user, page_id=0, query=None) -> [AliasInfo]:
|
|||
|
||||
|
||||
def get_alias_infos_with_pagination_v3(
|
||||
user, page_id=0, query=None, sort=None, alias_filter=None, mailbox_id=None
|
||||
user,
|
||||
page_id=0,
|
||||
query=None,
|
||||
sort=None,
|
||||
alias_filter=None,
|
||||
mailbox_id=None,
|
||||
directory_id=None,
|
||||
) -> [AliasInfo]:
|
||||
# subquery on alias annotated with nb_reply, nb_blocked, nb_forward, max_created_at, latest_email_log_created_at
|
||||
alias_activity_subquery = (
|
||||
|
@ -232,6 +238,9 @@ def get_alias_infos_with_pagination_v3(
|
|||
or_(Alias.mailbox_id == mailbox_id, AliasMailbox.mailbox_id == mailbox_id)
|
||||
)
|
||||
|
||||
if directory_id:
|
||||
q = q.filter(Alias.directory_id == directory_id)
|
||||
|
||||
if alias_filter == "enabled":
|
||||
q = q.filter(Alias.enabled)
|
||||
elif alias_filter == "disabled":
|
||||
|
|
|
@ -192,6 +192,14 @@
|
|||
{{ mailbox.email }}'s aliases
|
||||
</option>
|
||||
{% endfor %}
|
||||
|
||||
{% for directory in current_user.directories %}
|
||||
<option value="directory:{{ directory.id }}" {% if filter == "directory:" ~ directory.id %}
|
||||
selected {% endif %}>
|
||||
Directory <b>{{ directory.name }}</b> aliases
|
||||
</option>
|
||||
{% endfor %}
|
||||
|
||||
</select>
|
||||
|
||||
<input type="search" name="query" placeholder="Enter to search for alias"
|
||||
|
|
|
@ -154,8 +154,12 @@ def index():
|
|||
if alias_filter and alias_filter.startswith("mailbox:"):
|
||||
mailbox_id = int(alias_filter[len("mailbox:") :])
|
||||
|
||||
directory_id = None
|
||||
if alias_filter and alias_filter.startswith("directory:"):
|
||||
directory_id = int(alias_filter[len("directory:") :])
|
||||
|
||||
alias_infos = get_alias_infos_with_pagination_v3(
|
||||
current_user, page, query, sort, alias_filter, mailbox_id
|
||||
current_user, page, query, sort, alias_filter, mailbox_id, directory_id
|
||||
)
|
||||
last_page = len(alias_infos) < PAGE_LIMIT
|
||||
|
||||
|
|
|
@ -1924,7 +1924,7 @@ class Directory(db.Model, ModelMixin):
|
|||
# when a directory is disabled, new alias can't be created on the fly
|
||||
disabled = db.Column(db.Boolean, default=False, nullable=False, server_default="0")
|
||||
|
||||
user = db.relationship(User)
|
||||
user = db.relationship(User, backref="directories")
|
||||
|
||||
_mailboxes = db.relationship(
|
||||
"Mailbox", secondary="directory_mailbox", lazy="joined"
|
||||
|
|
Loading…
Reference in New Issue