diff --git a/modoboa/extensions/webmail/templatetags/webextras.py b/modoboa/extensions/webmail/templatetags/webextras.py index 7efffbb13..c7e3f9e7a 100644 --- a/modoboa/extensions/webmail/templatetags/webextras.py +++ b/modoboa/extensions/webmail/templatetags/webextras.py @@ -10,113 +10,118 @@ from modoboa.lib import parameters register = template.Library() + @register.simple_tag def viewmail_menu(selection, folder, user, mail_id=None): entries = [ - {"name" : "reply", - "url" : "action=reply&mbox=%s&mailid=%s" % (folder, mail_id), - "img" : "icon-share", - "label" : _("Reply")}, - {"name" : "replyall", - "url" : "action=reply&mbox=%s&mailid=%s&all=1" % (folder, mail_id), - "img" : "", - "label" : _("Reply all")}, - {"name" : "forward", - "url" : "action=forward&mbox=%s&mailid=%s" % (folder, mail_id), - "img" : "icon-arrow-right", - "label" : _("Forward")}, - {"name" : "delete", - "img" : "icon-trash", - "url" : reverse(webmail.views.delete) + "?mbox=%s&selection[]=%s" % (folder, mail_id), - "label" : _("Delete")}, - {"name" : "display_options", - "label" : _("Display options"), - "menu" : [ - {"name" : "activate_links", - "label" : _("Activate links")}, - {"name" : "disable_links", - "label" : _("Disable links")} - ] + {"name": "reply", + "url": "action=reply&mbox=%s&mailid=%s" % (folder, mail_id), + "img": "icon-share", + "label": _("Reply")}, + {"name": "replyall", + "url": "action=reply&mbox=%s&mailid=%s&all=1" % (folder, mail_id), + "img": "", + "label": _("Reply all")}, + {"name": "forward", + "url": "action=forward&mbox=%s&mailid=%s" % (folder, mail_id), + "img": "icon-arrow-right", + "label": _("Forward")}, + {"name": "delete", + "img": "icon-trash", + "url": reverse(webmail.views.delete) + "?mbox=%s&selection[]=%s" % (folder, mail_id), + "label": _("Delete")}, + {"name": "display_options", + "label": _("Display options"), + "menu": [ + {"name": "activate_links", + "label": _("Activate links")}, + {"name": "disable_links", + "label": _("Disable links")} + ] } - ] + ] menu = render_to_string('common/buttons_list.html', - {"selection" : selection, "entries" : entries, - "user" : user, "extraclasses" : "pull-left"}) - - entries = [{"name" : "close", - "title" : _("Close this message"), - "img" : "icon-remove"}] - menu += render_to_string('common/buttons_list.html', - {"entries" : entries, "extraclasses" : "pull-right"}) + {"selection": selection, "entries": entries, + "user": user, "extraclasses": "pull-left"}) + entries = [{"name": "close", + "title": _("Close this message"), + "img": "icon-remove"}] + menu += render_to_string( + 'common/buttons_list.html', + {"entries": entries, "extraclasses": "pull-right"} + ) return menu + @register.simple_tag def compose_menu(selection, backurl, user): entries = [ - {"name" : "back", - "url" : "javascript:history.go(-2);", - "img" : "icon-arrow-left", - "label" : _("Back")}, - {"name" : "sendmail", - "url" : "", - "img" : "icon-envelope", - "label" : _("Send")}, - ] + {"name": "back", + "url": "javascript:history.go(-2);", + "img": "icon-arrow-left", + "label": _("Back")}, + {"name": "sendmail", + "url": "", + "img": "icon-envelope", + "label": _("Send")}, + ] return render_to_string('common/buttons_list.html', - {"selection" : selection, "entries" : entries, - "user" : user}) + {"selection": selection, "entries": entries, + "user": user}) + @register.simple_tag def listmailbox_menu(selection, folder, user): entries = [ - {"name" : "compose", - "url" : "compose", - "img" : "icon-edit", - "label" : _("New message"), - "class" : "btn"}, + {"name": "compose", + "url": "compose", + "img": "icon-edit", + "label": _("New message"), + "class": "btn"}, {"name": "totrash", "label": "", "class": "", "img": "icon-trash", "url": reverse("modoboa.extensions.webmail.views.delete"), - }, - {"name" : "mark", - "label" : _("Mark messages"), - "class" : "btn", - "menu" : [ - {"name" : "mark-read", - "label" : _("As read"), - "url" : reverse(webmail.views.mark, args=[folder]) + "?status=read"}, - {"name" : "mark-unread", - "label" : _("As unread"), - "url" : reverse(webmail.views.mark, args=[folder]) + "?status=unread"} - ] }, - {"name" : "actions", - "label" : _("Actions"), - "class" : "btn", - "menu" : [ - {"name" : "compress", - "label" : _("Compress folder"), - "url" : "compact/%s/" % folder} - ] + {"name": "mark", + "label": _("Mark messages"), + "class": "btn", + "menu": [ + {"name": "mark-read", + "label": _("As read"), + "url": reverse(webmail.views.mark, args=[folder]) + "?status=read"}, + {"name": "mark-unread", + "label": _("As unread"), + "url": reverse(webmail.views.mark, args=[folder]) + "?status=unread"} + ] }, - ] + {"name": "actions", + "label": _("Actions"), + "class": "btn", + "menu": [ + {"name": "compress", + "label": _("Compress folder"), + "url": "compact/%s/" % folder} + ] + }, + ] if folder == parameters.get_user(user, "TRASH_FOLDER"): entries[1]["class"] += " disabled" entries[3]["menu"] += [ - {"name" : "empty", - "label" : _("Empty folder"), - "url" : reverse(webmail.views.empty, args=[folder])} - ] + {"name": "empty", + "label": _("Empty folder"), + "url": reverse(webmail.views.empty, args=[folder])} + ] searchbar = render_to_string('common/email_searchbar.html', { - "STATIC_URL" : settings.STATIC_URL - }) + "STATIC_URL": settings.STATIC_URL + }) return render_to_string('common/buttons_list.html', dict( - selection=selection, entries=entries, extracontent=searchbar, - user=user, css="nav" - )) + selection=selection, entries=entries, extracontent=searchbar, + user=user, css="nav" + )) + @register.simple_tag def print_mailboxes(tree, selected=None, withunseen=False, selectonly=False): @@ -128,12 +133,12 @@ def print_mailboxes(tree, selected=None, withunseen=False, selectonly=False): for mbox in tree: cssclass = "" - name = mbox["path"] if mbox.has_key("sub") else mbox["name"] + name = mbox["path"] if "sub" in mbox else mbox["name"] label = separate_mailbox(mbox["name"])[0] if selected == name: cssclass = "active" result += "
  • \n" % (name, cssclass) - if mbox.has_key("sub"): + if "sub" in mbox: if selected is not None and selected != name and selected.count(name): ul_state = "visible" div_state = "expanded" @@ -144,46 +149,49 @@ def print_mailboxes(tree, selected=None, withunseen=False, selectonly=False): cssclass = "block" extra_attrs = "" - if withunseen and mbox.has_key("unseen"): + if withunseen and "unseen" in mbox: label += " (%d)" % mbox["unseen"] cssclass += " unseen" extra_attrs = ' data-toggle="%d"' % mbox["unseen"] - iclass = mbox["class"] if mbox.has_key("class") else "icon-folder-close" + iclass = mbox["class"] if "class" in mbox else "icon-folder-close" result += """ %s -""" % (mbox.has_key("path") and mbox["path"] or mbox["name"], cssclass, - 'selectfolder' if selectonly else 'loadfolder', extra_attrs, iclass, label) - if mbox.has_key("sub") and len(mbox["sub"]): +""" % ("path" in mbox and mbox["path"] or mbox["name"], cssclass, + 'selectfolder' if selectonly else 'loadfolder', + extra_attrs, iclass, label) + + if "sub" in mbox and len(mbox["sub"]): result += "\n" result += "
  • \n" return result + @register.simple_tag def mboxes_menu(): entries = [ - {"name" : "newmbox", - "url" : reverse(webmail.views.newfolder), - "img" : "icon-plus", - "title" : _("Create a new mailbox"), - "modal" : True, - "modalcb" : "webmail.mboxform_cb", - "closecb" : "webmail.mboxform_close", - "class" : "btn btn-mini"}, - {"name" : "editmbox", - "url" : reverse(webmail.views.editfolder), - "img" : "icon-edit", - "title" : _("Edit the selected mailbox"), - "class" : "btn btn-mini"}, - {"name" : "removembox", - "url" : reverse(webmail.views.delfolder), - "img" : "icon-remove", - "title" : _("Remove the selected mailbox"), - "class" : "btn btn-mini"} - ] + {"name": "newmbox", + "url": reverse(webmail.views.newfolder), + "img": "icon-plus", + "title": _("Create a new mailbox"), + "modal": True, + "modalcb": "webmail.mboxform_cb", + "closecb": "webmail.mboxform_close", + "class": "btn btn-mini"}, + {"name": "editmbox", + "url": reverse(webmail.views.editfolder), + "img": "icon-edit", + "title": _("Edit the selected mailbox"), + "class": "btn btn-mini"}, + {"name": "removembox", + "url": reverse(webmail.views.delfolder), + "img": "icon-remove", + "title": _("Remove the selected mailbox"), + "class": "btn btn-mini"} + ] return render_to_string('common/buttons_list.html', dict( - entries=entries, css="nav" - )) + entries=entries, css="nav" + ))