Refactoring the way a selected sub is opened
This commit is contained in:
@@ -153,7 +153,7 @@ class BaseContent(object):
|
||||
data = {}
|
||||
data['object'] = subscription
|
||||
data['type'] = 'Subscription'
|
||||
data['name'] = "/r/" + subscription._case_name
|
||||
data['name'] = "/r/" + subscription.display_name
|
||||
data['title'] = subscription.title
|
||||
|
||||
return data
|
||||
|
||||
@@ -167,9 +167,15 @@ class SubredditPage(BasePage):
|
||||
show_notification(self.stdscr, ['Not logged in'])
|
||||
return
|
||||
|
||||
# Open subscriptions page
|
||||
page = SubscriptionPage(self.stdscr, self.reddit)
|
||||
page.loop()
|
||||
|
||||
# When user has chosen a subreddit in the subscriptions list, refresh content with the selected subreddit
|
||||
chosen_subreddit = page.get_selected_subreddit_data()
|
||||
if chosen_subreddit is not None:
|
||||
self.refresh_content(name=chosen_subreddit['name'])
|
||||
|
||||
@staticmethod
|
||||
def draw_item(win, data, inverted=False):
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ class SubscriptionPage(BasePage):
|
||||
def __init__(self, stdscr, reddit):
|
||||
self.controller = SubscriptionController(self)
|
||||
self.loader = LoadScreen(stdscr)
|
||||
self.selected_subreddit_data = None
|
||||
|
||||
content = SubscriptionContent.get_list(reddit, self.loader)
|
||||
super(SubscriptionPage, self).__init__(stdscr, reddit, content)
|
||||
@@ -30,6 +31,9 @@ class SubscriptionPage(BasePage):
|
||||
cmd = self.stdscr.getch()
|
||||
self.controller.trigger(cmd)
|
||||
|
||||
def get_selected_subreddit_data(self):
|
||||
return self.selected_subreddit_data
|
||||
|
||||
@SubscriptionController.register(curses.KEY_F5, 'r')
|
||||
def refresh_content(self):
|
||||
"Re-download all subscriptions and reset the page index"
|
||||
@@ -38,13 +42,11 @@ class SubscriptionPage(BasePage):
|
||||
self.nav = Navigator(self.content.get)
|
||||
|
||||
@SubscriptionController.register(curses.KEY_ENTER, 10, curses.KEY_RIGHT)
|
||||
def open_selected_subreddit(self):
|
||||
"Open the selected subreddit"
|
||||
def store_selected_subreddit(self):
|
||||
"Store the selected subreddit and return to the subreddit page"
|
||||
|
||||
from .subreddit import SubredditPage
|
||||
data = self.content.get(self.nav.absolute_index)
|
||||
page = SubredditPage(self.stdscr, self.reddit, data['name'][2:]) # Strip the leading /r
|
||||
page.loop()
|
||||
self.selected_subreddit_data = self.content.get(self.nav.absolute_index)
|
||||
self.active = False
|
||||
|
||||
@SubscriptionController.register(curses.KEY_LEFT, 's')
|
||||
def close_subscriptions(self):
|
||||
|
||||
Reference in New Issue
Block a user