diff --git a/apps/reader/models.py b/apps/reader/models.py index 38e37cfda..1779e267f 100644 --- a/apps/reader/models.py +++ b/apps/reader/models.py @@ -11,6 +11,7 @@ from apps.analyzer.models import MClassifierFeed, MClassifierAuthor, MClassifier from apps.analyzer.models import apply_classifier_titles, apply_classifier_feeds, apply_classifier_authors, apply_classifier_tags from utils import urlnorm from utils.feed_functions import fetch_address_from_page +from utils.feed_functions import add_object_to_folder class UserSubscription(models.Model): """ @@ -105,7 +106,7 @@ class UserSubscription(models.Model): user_sub_folders = [] else: user_sub_folders = json.decode(user_sub_folders_object.folders) - user_sub_folders = _add_object_to_folder(feed.pk, folder, user_sub_folders) + user_sub_folders = add_object_to_folder(feed.pk, folder, user_sub_folders) user_sub_folders_object.folders = json.encode(user_sub_folders) user_sub_folders_object.save() @@ -401,17 +402,3 @@ class Feature(models.Model): class Meta: ordering = ["-date"] - - -def _add_object_to_folder(obj, folder, folders): - if not folder: - folders.append(obj) - return folders - - for k, v in enumerate(folders): - if isinstance(v, dict): - for f_k, f_v in v.items(): - if f_k == folder: - f_v.append(obj) - folders[k][f_k] = _add_object_to_folder(obj, folder, f_v) - return folders \ No newline at end of file diff --git a/apps/reader/views.py b/apps/reader/views.py index cdaa67284..847316bf0 100644 --- a/apps/reader/views.py +++ b/apps/reader/views.py @@ -14,7 +14,6 @@ from django.contrib.auth.models import User from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 from django.conf import settings from django.core.mail import mail_admins -from django.contrib.sites.models import Site from collections import defaultdict from operator import itemgetter from mongoengine.queryset import OperationError @@ -27,9 +26,10 @@ try: from apps.rss_feeds.models import Feed, MFeedPage, DuplicateFeed, MStory, MStarredStory, FeedLoadtime except: pass -from utils import json_functions as json, urlnorm +from utils import json_functions as json from utils.user_functions import get_user, ajax_login_required -from utils.feed_functions import fetch_address_from_page, relative_timesince +from utils.feed_functions import relative_timesince +from utils.feed_functions import add_object_to_folder from utils.story_functions import format_story_link_date__short from utils.story_functions import format_story_link_date__long from utils.story_functions import bunch @@ -687,7 +687,7 @@ def add_folder(request): else: user_sub_folders = [] obj = {folder: []} - user_sub_folders = _add_object_to_folder(obj, parent_folder, user_sub_folders) + user_sub_folders = add_object_to_folder(obj, parent_folder, user_sub_folders) user_sub_folders_object.folders = json.encode(user_sub_folders) user_sub_folders_object.save() else: diff --git a/utils/feed_functions.py b/utils/feed_functions.py index a695b785c..3836e8958 100644 --- a/utils/feed_functions.py +++ b/utils/feed_functions.py @@ -168,4 +168,17 @@ def format_relative_date(date, future=False): '' if future else 'ago') else: return "%s hours %s" % ((((diff.seconds / 60) + 15) / 60), - '' if future else 'ago') \ No newline at end of file + '' if future else 'ago') + +def add_object_to_folder(obj, folder, folders): + if not folder: + folders.append(obj) + return folders + + for k, v in enumerate(folders): + if isinstance(v, dict): + for f_k, f_v in v.items(): + if f_k == folder: + f_v.append(obj) + folders[k][f_k] = _add_object_to_folder(obj, folder, f_v) + return folders \ No newline at end of file