mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-04-13 09:42:01 +00:00
Refactoring folder creation. This could be done a lot more abstractly as to make sense to new functions I build which include folder subscription creating. Let this be a reminder as to how shoddy code is born. And let this be quickly remedied.
This commit is contained in:
parent
1c3ba0cdbe
commit
a31717b7ca
3 changed files with 20 additions and 20 deletions
|
@ -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 apps.analyzer.models import apply_classifier_titles, apply_classifier_feeds, apply_classifier_authors, apply_classifier_tags
|
||||||
from utils import urlnorm
|
from utils import urlnorm
|
||||||
from utils.feed_functions import fetch_address_from_page
|
from utils.feed_functions import fetch_address_from_page
|
||||||
|
from utils.feed_functions import add_object_to_folder
|
||||||
|
|
||||||
class UserSubscription(models.Model):
|
class UserSubscription(models.Model):
|
||||||
"""
|
"""
|
||||||
|
@ -105,7 +106,7 @@ class UserSubscription(models.Model):
|
||||||
user_sub_folders = []
|
user_sub_folders = []
|
||||||
else:
|
else:
|
||||||
user_sub_folders = json.decode(user_sub_folders_object.folders)
|
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.folders = json.encode(user_sub_folders)
|
||||||
user_sub_folders_object.save()
|
user_sub_folders_object.save()
|
||||||
|
|
||||||
|
@ -401,17 +402,3 @@ class Feature(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ["-date"]
|
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
|
|
|
@ -14,7 +14,6 @@ from django.contrib.auth.models import User
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
|
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.mail import mail_admins
|
from django.core.mail import mail_admins
|
||||||
from django.contrib.sites.models import Site
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
from mongoengine.queryset import OperationError
|
from mongoengine.queryset import OperationError
|
||||||
|
@ -27,9 +26,10 @@ try:
|
||||||
from apps.rss_feeds.models import Feed, MFeedPage, DuplicateFeed, MStory, MStarredStory, FeedLoadtime
|
from apps.rss_feeds.models import Feed, MFeedPage, DuplicateFeed, MStory, MStarredStory, FeedLoadtime
|
||||||
except:
|
except:
|
||||||
pass
|
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.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__short
|
||||||
from utils.story_functions import format_story_link_date__long
|
from utils.story_functions import format_story_link_date__long
|
||||||
from utils.story_functions import bunch
|
from utils.story_functions import bunch
|
||||||
|
@ -687,7 +687,7 @@ def add_folder(request):
|
||||||
else:
|
else:
|
||||||
user_sub_folders = []
|
user_sub_folders = []
|
||||||
obj = {folder: []}
|
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.folders = json.encode(user_sub_folders)
|
||||||
user_sub_folders_object.save()
|
user_sub_folders_object.save()
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -168,4 +168,17 @@ def format_relative_date(date, future=False):
|
||||||
'' if future else 'ago')
|
'' if future else 'ago')
|
||||||
else:
|
else:
|
||||||
return "%s hours %s" % ((((diff.seconds / 60) + 15) / 60),
|
return "%s hours %s" % ((((diff.seconds / 60) + 15) / 60),
|
||||||
'' if future else 'ago')
|
'' 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
|
Loading…
Add table
Reference in a new issue