Fixing variety of exceptions on adding a site, interactions, services, loading friends.

This commit is contained in:
Samuel Clay 2012-08-31 13:51:24 -07:00
parent c6ff2093c9
commit 9a873aecc3
4 changed files with 17 additions and 7 deletions

View file

@ -86,7 +86,7 @@ def add_site_load_script(request, token):
usf = UserSubscriptionFolders.objects.get(
user=profile.user
)
user_profile = MSocialProfile.objects.get(user_id=profile.user.pk)
user_profile = MSocialProfile.get_user(user_id=profile.user.pk)
else:
code = -1
except Profile.DoesNotExist:

View file

@ -897,6 +897,7 @@ def add_url(request):
url = request.POST['url']
auto_active = is_true(request.POST.get('auto_active', 1))
skip_fetch = is_true(request.POST.get('skip_fetch', False))
feed = None
if not url:
code = -1
@ -906,8 +907,9 @@ def add_url(request):
code, message, us = UserSubscription.add_subscription(user=request.user, feed_address=url,
folder=folder, auto_active=auto_active,
skip_fetch=skip_fetch)
return dict(code=code, message=message, feed=us.feed)
feed = us and us.feed
return dict(code=code, message=message, feed=feed)
@ajax_login_required
@json.json_view

View file

@ -1711,7 +1711,16 @@ class MSocialServices(mongo.Document):
@classmethod
def get_user(cls, user_id):
profile, created = cls.objects.get_or_create(user_id=user_id)
try:
profile, created = cls.objects.get_or_create(user_id=user_id)
except cls.MultipleObjectsReturned:
dupes = cls.objects.filter(user_id=user_id)
logging.debug(" ---> ~FRDeleting dupe social services. %s found." % dupes.count())
for dupe in dupes[1:]:
dupe.delete()
profile = dupes[0]
created = False
if created:
profile.save()
return profile
@ -2273,7 +2282,6 @@ class MActivity(mongo.Document):
story_feed_id=story_feed_id,
content_id=story_id,
defaults={
'with_user_id': source_user_id,
'title': story_title,
'content': comments,
})

View file

@ -827,8 +827,8 @@ def save_blurblog_settings(request):
@json.json_view
def load_user_friends(request):
user = get_user(request.user)
social_profile, _ = MSocialProfile.objects.get_or_create(user_id=user.pk)
social_services, _ = MSocialServices.objects.get_or_create(user_id=user.pk)
social_profile = MSocialProfile.get_user(user_id=user.pk)
social_services = MSocialServices.get_user(user_id=user.pk)
following_profiles = MSocialProfile.profiles(social_profile.following_user_ids)
follower_profiles = MSocialProfile.profiles(social_profile.follower_user_ids)
recommended_users = social_profile.recommended_users()