mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Adding search to shared stories, removing from folders.
This commit is contained in:
parent
4e54bc5238
commit
41b794adf6
5 changed files with 21 additions and 6 deletions
|
@ -9,6 +9,7 @@ import random
|
||||||
import requests
|
import requests
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from BeautifulSoup import BeautifulSoup
|
from BeautifulSoup import BeautifulSoup
|
||||||
|
from mongoengine.queryset import Q
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
|
@ -180,7 +181,17 @@ class MSocialProfile(mongo.Document):
|
||||||
kwargs={'user_id': self.user_id,
|
kwargs={'user_id': self.user_id,
|
||||||
'username': self.username_slug}))
|
'username': self.username_slug}))
|
||||||
|
|
||||||
|
def find_stories(self, query, offset=0, limit=25):
|
||||||
|
stories_db = MSharedStory.objects(
|
||||||
|
Q(user_id=self.user_id) &
|
||||||
|
(Q(story_title__icontains=query) |
|
||||||
|
Q(story_content__icontains=query) |
|
||||||
|
Q(story_author_name__icontains=query))
|
||||||
|
).order_by('-shared_date')[offset:offset+limit]
|
||||||
|
stories = Feed.format_stories(stories_db)
|
||||||
|
|
||||||
|
return stories
|
||||||
|
|
||||||
def recommended_users(self):
|
def recommended_users(self):
|
||||||
r = redis.Redis(connection_pool=settings.REDIS_POOL)
|
r = redis.Redis(connection_pool=settings.REDIS_POOL)
|
||||||
following_key = "F:%s:F" % (self.user_id)
|
following_key = "F:%s:F" % (self.user_id)
|
||||||
|
|
|
@ -45,6 +45,7 @@ def load_social_stories(request, user_id, username=None):
|
||||||
page = request.REQUEST.get('page')
|
page = request.REQUEST.get('page')
|
||||||
order = request.REQUEST.get('order', 'newest')
|
order = request.REQUEST.get('order', 'newest')
|
||||||
read_filter = request.REQUEST.get('read_filter', 'all')
|
read_filter = request.REQUEST.get('read_filter', 'all')
|
||||||
|
query = request.REQUEST.get('query')
|
||||||
stories = []
|
stories = []
|
||||||
message = ""
|
message = ""
|
||||||
|
|
||||||
|
@ -60,6 +61,8 @@ def load_social_stories(request, user_id, username=None):
|
||||||
|
|
||||||
if social_profile.private and not social_profile.is_followed_by_user(user.pk):
|
if social_profile.private and not social_profile.is_followed_by_user(user.pk):
|
||||||
message = "%s has a private blurblog and you must be following them in order to read it." % social_profile.username
|
message = "%s has a private blurblog and you must be following them in order to read it." % social_profile.username
|
||||||
|
elif query:
|
||||||
|
stories = social_profile.find_stories(query, offset=offset, limit=limit)
|
||||||
elif socialsub and (read_filter == 'unread' or order == 'oldest'):
|
elif socialsub and (read_filter == 'unread' or order == 'oldest'):
|
||||||
story_hashes = socialsub.get_stories(order=order, read_filter=read_filter, offset=offset, limit=limit)
|
story_hashes = socialsub.get_stories(order=order, read_filter=read_filter, offset=offset, limit=limit)
|
||||||
story_date_order = "%sshared_date" % ('' if order == 'oldest' else '-')
|
story_date_order = "%sshared_date" % ('' if order == 'oldest' else '-')
|
||||||
|
|
|
@ -636,7 +636,8 @@ NEWSBLUR.AssetModel = Backbone.Router.extend({
|
||||||
this.make_request('/social/stories/'+user_id+'/', {
|
this.make_request('/social/stories/'+user_id+'/', {
|
||||||
page: page,
|
page: page,
|
||||||
order: this.view_setting(feed_id, 'order'),
|
order: this.view_setting(feed_id, 'order'),
|
||||||
read_filter: this.view_setting(feed_id, 'read_filter')
|
read_filter: this.view_setting(feed_id, 'read_filter'),
|
||||||
|
query: NEWSBLUR.reader.flags.search
|
||||||
}, pre_callback, error_callback, {
|
}, pre_callback, error_callback, {
|
||||||
'ajax_group': (page > 1 ? 'feed_page' : 'feed'),
|
'ajax_group': (page > 1 ? 'feed_page' : 'feed'),
|
||||||
'request_type': 'GET'
|
'request_type': 'GET'
|
||||||
|
|
|
@ -1177,7 +1177,7 @@
|
||||||
this.active_feed == 'river:global') {
|
this.active_feed == 'river:global') {
|
||||||
this.open_river_blurblogs_stories({'global': true});
|
this.open_river_blurblogs_stories({'global': true});
|
||||||
} else if (this.flags['social_view']) {
|
} else if (this.flags['social_view']) {
|
||||||
this.open_social_stories(this.active_feed);
|
this.open_social_stories(this.active_feed, options);
|
||||||
} else if (this.flags['river_view']) {
|
} else if (this.flags['river_view']) {
|
||||||
this.open_river_stories(this.active_folder &&
|
this.open_river_stories(this.active_folder &&
|
||||||
this.active_folder.folder_view &&
|
this.active_folder.folder_view &&
|
||||||
|
@ -1767,11 +1767,10 @@
|
||||||
this.iframe_scroll = null;
|
this.iframe_scroll = null;
|
||||||
this.flags['opening_feed'] = true;
|
this.flags['opening_feed'] = true;
|
||||||
feed.set('selected', true, options);
|
feed.set('selected', true, options);
|
||||||
|
this.set_correct_story_view_for_feed(this.active_feed);
|
||||||
this.make_feed_title_in_stories();
|
this.make_feed_title_in_stories();
|
||||||
this.$s.$body.addClass('NB-view-river');
|
this.$s.$body.addClass('NB-view-river');
|
||||||
|
|
||||||
this.set_correct_story_view_for_feed(this.active_feed);
|
|
||||||
|
|
||||||
// TODO: Only make feed the default for blurblogs, not overriding an explicit pref.
|
// TODO: Only make feed the default for blurblogs, not overriding an explicit pref.
|
||||||
this.switch_taskbar_view(this.story_view);
|
this.switch_taskbar_view(this.story_view);
|
||||||
this.setup_mousemove_on_views();
|
this.setup_mousemove_on_views();
|
||||||
|
|
|
@ -42,6 +42,7 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
|
||||||
<div class="folder_title_text">Saved Stories</div>\
|
<div class="folder_title_text">Saved Stories</div>\
|
||||||
</div>\
|
</div>\
|
||||||
', {}));
|
', {}));
|
||||||
|
$view.append(search_view.$el);
|
||||||
} else if (this.showing_fake_folder) {
|
} else if (this.showing_fake_folder) {
|
||||||
$view = $(_.template('\
|
$view = $(_.template('\
|
||||||
<div class="NB-folder NB-no-hover">\
|
<div class="NB-folder NB-no-hover">\
|
||||||
|
@ -84,9 +85,9 @@ NEWSBLUR.Views.StoryTitlesHeader = Backbone.View.extend({
|
||||||
type: 'story'
|
type: 'story'
|
||||||
}).render();
|
}).render();
|
||||||
$view = this.view.$el;
|
$view = this.view.$el;
|
||||||
|
$view.append(search_view.$el);
|
||||||
}
|
}
|
||||||
|
|
||||||
$view.append(search_view.$el);
|
|
||||||
this.$el.html($view);
|
this.$el.html($view);
|
||||||
this.setElement($view);
|
this.setElement($view);
|
||||||
this.show_feed_hidden_story_title_indicator();
|
this.show_feed_hidden_story_title_indicator();
|
||||||
|
|
Loading…
Add table
Reference in a new issue