From f3cab67aafa2660ebaa7b7291d48ca224ac6b764 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Sun, 1 May 2016 12:34:15 -0500 Subject: [PATCH] Add 'index title' setting to master view This was needed due to a new way of showing the index link when e.g. viewing a record, particularly with regard to messaging and a new template design. --- tailbone/views/master.py | 8 ++++++++ tailbone/views/messages.py | 21 ++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/tailbone/views/master.py b/tailbone/views/master.py index 413b2e33..1b4f5e04 100644 --- a/tailbone/views/master.py +++ b/tailbone/views/master.py @@ -296,6 +296,13 @@ class MasterView(View): """ return self.request.route_url(self.get_route_prefix()) + @classmethod + def get_index_title(cls): + """ + Returns the title for the index page. + """ + return getattr(cls, 'index_title', cls.get_model_title_plural()) + def get_action_url(self, action, instance): """ Generate a URL for the given action on the given instance. @@ -317,6 +324,7 @@ class MasterView(View): 'model_title_plural': self.get_model_title_plural(), 'route_prefix': self.get_route_prefix(), 'permission_prefix': self.get_permission_prefix(), + 'index_title': self.get_index_title(), 'index_url': self.get_index_url(), 'action_url': self.get_action_url, } diff --git a/tailbone/views/messages.py b/tailbone/views/messages.py index 82d8f375..a4006646 100644 --- a/tailbone/views/messages.py +++ b/tailbone/views/messages.py @@ -128,6 +128,18 @@ class MessagesView(MasterView): replying = False reply_header_sent_format = '%a %d %b %Y at %I:%M %p' + def get_index_title(self): + if self.listing: + return self.index_title + if self.viewing: + message = self.get_instance() + recipient = self.get_recipient(message) + if recipient and recipient.status == enum.MESSAGE_STATUS_ARCHIVE: + return "Message Archive" + elif not recipient: + return "Sent Messages" + return "Message Inbox" + def get_index_url(self): # not really used, but necessary to make certain other code happy return self.request.route_url('messages.inbox') @@ -344,11 +356,7 @@ class MessagesView(MasterView): Move a message, either to the archive or back to the inbox. """ message = self.get_instance() - recipient = None - for recip in message.recipients: - if recip.recipient is self.request.user: - recipient = recip - break + recipient = self.get_recipient(message) if not recipient: raise httpexceptions.HTTPForbidden @@ -414,6 +422,7 @@ class InboxView(MessagesView): """ url_prefix = '/messages/inbox' grid_key = 'messages.inbox' + index_title = "Message Inbox" def get_index_url(self): return self.request.route_url('messages.inbox') @@ -429,6 +438,7 @@ class ArchiveView(MessagesView): """ url_prefix = '/messages/archive' grid_key = 'messages.archive' + index_title = "Message Archive" def get_index_url(self): return self.request.route_url('messages.archive') @@ -445,6 +455,7 @@ class SentView(MessagesView): url_prefix = '/messages/sent' grid_key = 'messages.sent' checkboxes = False + index_title = "Sent Messages" def get_index_url(self): return self.request.route_url('messages.sent')