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:
Samuel Clay 2011-01-23 02:13:55 -05:00
parent 1c3ba0cdbe
commit a31717b7ca
3 changed files with 20 additions and 20 deletions

View file

@ -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

View file

@ -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:

View file

@ -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