Beispiel #1
0
def follow_location(request, location_id):
    member_login = get_member_login_object(request)
    location = Location.objects.get(pk=location_id)
    location.follow_by.add(member_login)
    friend_activity_content = get_stream_content(
        'follow_location', 'friends_content', {
            'member_login': member_login,
            'location': location
        })
    user_activity_content = get_stream_content(
        'follow_location', 'user_content', {
            'member_login': member_login,
            'location': location
        })
    list_friends_username = Friendship.objects.friends_of(
        member_login.user).values_list('username', flat=True)
    user_streams.add_stream_item(member_login.user, friend_activity_content,
                                 user_activity_content)
    buzz = simplejson.dumps({
        'new_friend_activity':
        friend_activity_content,
        'list_friends_username':
        list(list_friends_username)
    })
    conn.send(buzz, destination='/update')
    return simplejson.dumps({
        'username':
        member_login.user.username,
        'name':
        member_login.user.first_name + " " + member_login.user.last_name,
        'avatar':
        member_login.avatar.url
    })
Beispiel #2
0
def add_message(request, username, message):
    now = datetime.datetime.now()
    member_chat = Member.objects.get(user=User.objects.get(username=username))
    member_login = get_member_login_object(request)
    new_message = Message.objects.create(
        member_send=member_login, member_receive=member_chat, content=message, date=now, status="new"
    )
    new_message.save()
    new_buzz_type = len(Notify.objects.filter(notify_to=member_chat, status="new"))
    new_mail_type = len(Message.objects.filter(member_receive=member_chat, status="new"))
    buzz = simplejson.dumps(
        {
            "new_notify": new_buzz_type + new_mail_type,
            "new_buzz_type": new_buzz_type,
            "new_mail_type": new_mail_type,
            "username": member_chat.user.username,
            "member_send_username": member_login.user.username,
            "member_send_name": member_login.user.first_name + " " + member_login.user.last_name,
            "member_send_avatar": member_login.avatar.url,
            "msg_content": new_message.content_html,
            "date": new_message.elapse_time,
        }
    )
    conn.send(buzz, destination="/update")
    return simplejson.dumps({"message": "Success"})
Beispiel #3
0
def join_activity_request(request,activity_id):
	member_login = get_member_login_object(request)
	activity = Activity.objects.get(pk=activity_id)
	activity_request = ActivityRequest.objects.filter(activity=activity,member_join=member_login,member_create=activity.member_create)
	if len(activity_request) != 0:
		activity_request[0].request_status = 'Waiting'
		activity_request[0].save()
	else:	
		new_request = ActivityRequest.objects.create(activity=activity,member_join=member_login,member_create=activity.member_create,request_status='Waiting',date=datetime.datetime.now())
		new_request.save()
	notify_type= 'join_activity_request'
	content = ("<a href='/" + member_login.user.username + "' >" + 
					member_login.user.first_name + " " + member_login.user.last_name + 
				"</a>" + 
				" want to join your activity " + 
				"<a href='/activity/" + str(activity.pk) + "' >" + 
					activity.name + 
				"</a>")
	new_notify = Notify.objects.create(notify_type=notify_type,notify_to=activity.member_create,notify_from=member_login,status='new',date=datetime.datetime.now(),content=content)
	new_notify.save()
	new_buzz_type = len(Notify.objects.filter(notify_to=activity.member_create,status='new'))
	new_mail_type = len(Message.objects.filter(member_receive=activity.member_create,status='new'))
	buzz = simplejson.dumps({'new_notify': new_buzz_type + new_mail_type, 'new_buzz_type': new_buzz_type, 'new_mail_type': new_mail_type, 'username': activity.member_create.user.username})
	conn.send(buzz,destination='/update')
	return simplejson.dumps({})
Beispiel #4
0
def accept_friend_request(request,username): 
	member_add_request = Member.objects.get(user=User.objects.get(username=username))
	member_receive_request = get_member_login_object(request)
	fr = FriendshipRequest.objects.filter(from_user=member_add_request.user, to_user=member_receive_request.user)
	print fr
	# In case member A click accept while the other member B already cancel the request
	# we handle by reload the page
	if len(fr) != 0:
		fr[0].accept()
		notify_type= 'accept_friend_request'
		content = ("<div class='notify-main-content'>" + 
						"<a href='/" + member_receive_request.user.username + "' >" + 
							member_receive_request.user.first_name + " " + member_receive_request.user.last_name + 
						"</a>" + 
						" accept your friend request" + 
					"</div>") 
		new_notify = Notify.objects.create(notify_type=notify_type,notify_to=member_add_request,notify_from=member_receive_request,status='new',date=datetime.datetime.now(),content=content)
		new_notify.save()
		n = Notify.objects.get(notify_type='add_friend',notify_to=member_receive_request,notify_from=member_add_request)
		new_content = ("<div class='notify-main-content'>" + 
							"<a href='/" + member_add_request.user.username + "' >" + 
								member_add_request.user.first_name + " " + member_add_request.user.last_name + 
							"</a>" + 
							" want to be friend with you" + 
						"</div>" +
						"<div class='notify-accept-friend-request'>" + 
							"You have accepted this request " + 
						"</div>")
		n.content = new_content
		n.notify_type = 'add_friend_response_accept'
		n.save()
		new_buzz_type = len(Notify.objects.filter(notify_to=member_add_request,status='new'))
		new_mail_type = len(Message.objects.filter(member_receive=member_add_request,status='new'))
		
		# Add and update streams
		friend_activity_content1 = get_stream_content('befriend','friends_content',{'member1':member_receive_request,'member2':member_add_request})
		user_activity_content1 = get_stream_content('befriend','user_content',{'member1':member_receive_request,'member2':member_add_request})
		list_friends_username1 = Friendship.objects.friends_of(member_receive_request.user).values_list('username', flat=True)
		friend_activity_content2 = get_stream_content('befriend','friends_content',{'member1':member_add_request,'member2':member_receive_request})
		user_activity_content2 = get_stream_content('befriend','user_content',{'member1':member_add_request,'member2':member_receive_request})
		list_friends_username2 = Friendship.objects.friends_of(member_add_request.user).values_list('username', flat=True)
		user_exclude = ''
		common_friend_username = get_duplicate_object(list(list_friends_username1)+list(list_friends_username2))
		if len(common_friend_username) > 0: 
			user_exclude=str(common_friend_username)
		user_streams.add_stream_item(member_receive_request.user, friend_activity_content1, user_activity_content1)
		user_streams.add_stream_item(member_add_request.user, friend_activity_content2, user_activity_content2, user_exclude)

		buzz = simplejson.dumps({'new_notify': new_buzz_type+new_mail_type,'new_buzz_type':new_buzz_type,'new_mail_type':new_mail_type, 'username': member_add_request.user.username, 'new_friend_activity1': friend_activity_content1, 'new_friend_activity2': friend_activity_content2, 'list_friends_username1': list(list_friends_username1), 'list_friends_username2': list(list_friends_username2) })
		conn.send(buzz,destination='/update')
		return simplejson.dumps({'username':username,'firstname': member_add_request.user.first_name,'lastname': member_add_request.user.last_name,'reload': "False"})
	else:
		return simplejson.dumps({'reload': "True"})
Beispiel #5
0
def update_streams(request):
    if request.session['allow_upload_stream']:
        if len(
                Photo.objects.filter(
                    photo_type=request.session['photo_type'],
                    object_id=request.session['object_id'])) > int(
                        request.session['num_photo']):
            member_login = get_member_login_object(request)
            friend_activity_content, user_activity_content = '', ''
            if request.session['photo_type'] == 'activity':
                activity = Activity.objects.get(
                    pk=request.session['object_id'])
                friend_activity_content = get_stream_content(
                    'upload_activity_photo', 'friends_content', {
                        'member_login': member_login,
                        'activity': activity
                    })
                user_activity_content = get_stream_content(
                    'upload_activity_photo', 'user_content', {
                        'member_login': member_login,
                        'activity': activity
                    })
            else:
                location = Location.objects.get(
                    pk=request.session['object_id'])
                friend_activity_content = get_stream_content(
                    'upload_location_photo', 'friends_content', {
                        'member_login': member_login,
                        'location': location
                    })
                user_activity_content = get_stream_content(
                    'upload_location_photo', 'user_content', {
                        'member_login': member_login,
                        'location': location
                    })
            list_friends_username = Friendship.objects.friends_of(
                member_login.user).values_list('username', flat=True)
            user_streams.add_stream_item(member_login.user,
                                         friend_activity_content,
                                         user_activity_content)
            buzz = simplejson.dumps({
                'new_friend_activity':
                friend_activity_content,
                'list_friends_username':
                list(list_friends_username)
            })
            conn.send(buzz, destination='/update')
            request.session['allow_upload_stream'] = False
    return simplejson.dumps({})
Beispiel #6
0
def add_comment(request, location_id, comment_content):
    member_login = get_member_login_object(request)
    location = Location.objects.get(pk=location_id)
    now = datetime.datetime.now()
    new_comment = Comment.objects.create(comment_type='location',
                                         object_id=location_id,
                                         content=comment_content,
                                         member=member_login,
                                         created_date=now)
    new_comment.save()
    result = {}
    result['comment_id'] = new_comment.pk
    result['member'] = {
        'username': member_login.user.username,
        'first_name': member_login.user.first_name,
        'last_name': member_login.user.last_name,
        'avatar': member_login.avatar.url
    }
    result['content'] = new_comment.content_html
    result['date'] = new_comment.created_elapse_time

    #if request.session['allow_comment_stream']:
    friend_activity_content = get_stream_content(
        'add_location_comment', 'friends_content', {
            'member_login': member_login,
            'location': location,
            'comment': new_comment,
            'comment_content': set_fixed_string(new_comment.content, 30)
        })
    user_activity_content = get_stream_content(
        'add_location_comment', 'user_content', {
            'member_login': member_login,
            'location': location
        })
    list_friends_username = Friendship.objects.friends_of(
        member_login.user).values_list('username', flat=True)
    user_streams.add_stream_item(member_login.user, friend_activity_content,
                                 user_activity_content)
    buzz = simplejson.dumps({
        'new_friend_activity':
        friend_activity_content,
        'list_friends_username':
        list(list_friends_username)
    })
    conn.send(buzz, destination='/update')
    #request.session['allow_comment_stream'] = False

    return simplejson.dumps(result)
Beispiel #7
0
def join_activity_request(request, activity_id):
    member_login = get_member_login_object(request)
    activity = Activity.objects.get(pk=activity_id)
    activity_request = ActivityRequest.objects.filter(
        activity=activity,
        member_join=member_login,
        member_create=activity.member_create)
    if len(activity_request) != 0:
        activity_request[0].request_status = 'Waiting'
        activity_request[0].save()
    else:
        new_request = ActivityRequest.objects.create(
            activity=activity,
            member_join=member_login,
            member_create=activity.member_create,
            request_status='Waiting',
            date=datetime.datetime.now())
        new_request.save()
    notify_type = 'join_activity_request'
    content = ("<a href='/" + member_login.user.username + "' >" +
               member_login.user.first_name + " " +
               member_login.user.last_name + "</a>" +
               " want to join your activity " + "<a href='/activity/" +
               str(activity.pk) + "' >" + activity.name + "</a>")
    new_notify = Notify.objects.create(notify_type=notify_type,
                                       notify_to=activity.member_create,
                                       notify_from=member_login,
                                       status='new',
                                       date=datetime.datetime.now(),
                                       content=content)
    new_notify.save()
    new_buzz_type = len(
        Notify.objects.filter(notify_to=activity.member_create, status='new'))
    new_mail_type = len(
        Message.objects.filter(member_receive=activity.member_create,
                               status='new'))
    buzz = simplejson.dumps({
        'new_notify': new_buzz_type + new_mail_type,
        'new_buzz_type': new_buzz_type,
        'new_mail_type': new_mail_type,
        'username': activity.member_create.user.username
    })
    conn.send(buzz, destination='/update')
    return simplejson.dumps({})
Beispiel #8
0
def add_comment(request,activity_id,comment_content):
	member_login = get_member_login_object(request)
	activity = Activity.objects.get(pk=activity_id)
	now = datetime.datetime.now()
	new_comment = Comment.objects.create(comment_type='activity',object_id=activity_id,content=comment_content,member=member_login,created_date=now)
	new_comment.save()
	result = {}
	result['comment_id'] = new_comment.pk
	result['member'] = {'username': member_login.user.username,'first_name':member_login.user.first_name, 'last_name': member_login.user.last_name,'avatar': member_login.avatar.url}
	result['content'] = new_comment.content_html
	result['date'] = new_comment.created_elapse_time
	
	#if request.session['allow_comment_stream']:	
	friend_activity_content = get_stream_content('add_activity_comment','friends_content',{'member_login':member_login,'activity':activity, 'comment': new_comment, 'comment_content':set_fixed_string(new_comment.content,30)})
	user_activity_content = get_stream_content('add_activity_comment','user_content',{'member_login':member_login,'activity':activity})
	list_friends_username = Friendship.objects.friends_of(member_login.user).values_list('username', flat=True)
	user_streams.add_stream_item(member_login.user, friend_activity_content, user_activity_content)
	buzz = simplejson.dumps({'new_friend_activity': friend_activity_content, 'list_friends_username': list(list_friends_username) })
	conn.send(buzz,destination='/update')
	#request.session['allow_comment_stream'] = False
	return simplejson.dumps(result)
Beispiel #9
0
def recommend_friend(request,activity_id,friends):
	activity = Activity.objects.get(pk=activity_id)
	member_login = get_member_login_object(request)
	members = Member.objects.filter(pk__in=friends)
	#print members
	for member in members:
		if len(Notify.objects.filter(notify_type='recommend_activity',notify_to=member,notify_from=member_login,object_id=activity_id)) == 0:
			notify_type = 'recommend_activity'
			content = ("<a href='/" + member_login.user.username + "' >" + 
							member_login.user.first_name + " " + member_login.user.last_name + 
						"</a>" + 
						" recommend you this activity " + 
						"<a href='/activity/" + str(activity.pk) + "' >" + 
							activity.name + 
						"</a>.")
			new_notify = Notify.objects.create(object_id=activity_id,notify_type=notify_type,status='new',notify_to=member,notify_from=member_login,date=datetime.datetime.now(),content=content)
			new_notify.save()
			new_buzz_type = len(Notify.objects.filter(notify_to=member,status='new'))
			new_mail_type = len(Message.objects.filter(member_receive=member,status='new'))
			buzz = simplejson.dumps({'new_notify': new_mail_type+new_buzz_type,'new_buzz_type':new_buzz_type,'new_mail_type': new_mail_type, 'username': member.user.username})
			conn.send(buzz,destination='/update')
	return simplejson.dumps({})
Beispiel #10
0
def cancel_joining_activity(request, activity_id, message):
	member_login = get_member_login_object(request)
	activity = Activity.objects.get(pk=activity_id)
	activity.member_join.remove(member_login)
	activity_request = ActivityRequest.objects.get(activity=activity,member_join=member_login,member_create=activity.member_create)
	activity_request.delete()
	notify_type= 'cancel_joining_activity'
	content = ("<a href='/" + member_login.user.username + "' >" + 
					member_login.user.first_name + " " + member_login.user.last_name + 
				"</a>" + 
				" want to cancel attending your activity " + 
				"<a href='/activity/" + str(activity.pk) + "' >" + 
					activity.name + 
				"</a>." + 
				"\n The reason for this cancel is: \n" + message)
	new_notify = Notify.objects.create(notify_type=notify_type,notify_to=activity.member_create,notify_from=member_login,status='new',date=datetime.datetime.now(),content=content)
	new_notify.save()
	new_buzz_type = len(Notify.objects.filter(notify_to=activity.member_create,status='new'))
	new_mail_type = len(Message.objects.filter(member_receive=activity.member_create,status='new'))
	buzz = simplejson.dumps({'new_notify': new_mail_type + new_buzz_type, 'new_buzz_type':new_buzz_type,'new_mail_type': new_mail_type, 'username': activity.member_create.user.username})
	conn.send(buzz,destination='/update')
	return simplejson.dumps({'activity_id':activity_id})
Beispiel #11
0
def recommend_friend(request, activity_id, friends):
    activity = Activity.objects.get(pk=activity_id)
    member_login = get_member_login_object(request)
    members = Member.objects.filter(pk__in=friends)
    #print members
    for member in members:
        if len(
                Notify.objects.filter(notify_type='recommend_activity',
                                      notify_to=member,
                                      notify_from=member_login,
                                      object_id=activity_id)) == 0:
            notify_type = 'recommend_activity'
            content = ("<a href='/" + member_login.user.username + "' >" +
                       member_login.user.first_name + " " +
                       member_login.user.last_name + "</a>" +
                       " recommend you this activity " +
                       "<a href='/activity/" + str(activity.pk) + "' >" +
                       activity.name + "</a>.")
            new_notify = Notify.objects.create(object_id=activity_id,
                                               notify_type=notify_type,
                                               status='new',
                                               notify_to=member,
                                               notify_from=member_login,
                                               date=datetime.datetime.now(),
                                               content=content)
            new_notify.save()
            new_buzz_type = len(
                Notify.objects.filter(notify_to=member, status='new'))
            new_mail_type = len(
                Message.objects.filter(member_receive=member, status='new'))
            buzz = simplejson.dumps({
                'new_notify': new_mail_type + new_buzz_type,
                'new_buzz_type': new_buzz_type,
                'new_mail_type': new_mail_type,
                'username': member.user.username
            })
            conn.send(buzz, destination='/update')
    return simplejson.dumps({})
Beispiel #12
0
def add_friend(request,username):
	member_add_request = get_member_login_object(request)
	member_receive_request = Member.objects.get(user=User.objects.get(username=username))
	try:
		fr = FriendshipRequest.objects.get(from_user=member_add_request.user,to_user=member_receive_request.user,accepted=True)
		fr.accepted = False
		fr.save()
	except:
		FriendshipRequest.objects.create(from_user=member_add_request.user, to_user=member_receive_request.user, message='')
	try:
		Friendship.objects.get(user=member_add_request.user)
	except Friendship.DoesNotExist:
		Friendship.objects.create(user=member_add_request.user)
	try:
		Friendship.objects.get(user=member_receive_request.user)
	except Friendship.DoesNotExist:
		Friendship.objects.create(user=member_receive_request.user)
	if len(Notify.objects.filter(notify_type='add_friend',notify_to=member_receive_request,notify_from=member_add_request)) == 0:
		notify_type= 'add_friend'
		new_notify = Notify.objects.create(notify_type=notify_type,notify_to=member_receive_request,notify_from=member_add_request,status='new',date=datetime.datetime.now(),content='')
		content = ("<div class='notify-main-content'>" + 
						"<a href='/" + member_add_request.user.username + "/' >" + 
								member_add_request.user.first_name + " " + member_add_request.user.last_name + 
						"</a>" + 
							" want to be friend with you" + 
					"</div>" +
					"<div class='decide-btn-area'>" + 
						"<input type='hidden' id='get_username_notify" + str(new_notify.pk) + "' value='" + member_add_request.user.username + "' >" + 
						"<input type='button' class='btn btn-primary' value='Accept' onClick='handle_accept_friend_request(" + str(new_notify.pk) + ")'/>" + 
						"<input type='button' class='btn' value='Decline' onClick='handle_decline_friend_request(" + str(new_notify.pk) + ")' />" + 
					"</div>")
		new_notify.content = content
		new_notify.save()
		new_buzz_type = len(Notify.objects.filter(notify_to=member_receive_request,status='new'))
		new_mail_type = len(Message.objects.filter(member_receive=member_receive_request,status='new'))
		buzz = simplejson.dumps({'new_notify': new_mail_type+new_buzz_type,'new_buzz_type':new_buzz_type,'new_mail_type':new_mail_type, 'username': member_receive_request.user.username})
		conn.send(buzz,destination='/update')
	return simplejson.dumps({'username':username,'firstname': member_receive_request.user.first_name,'lastname': member_receive_request.user.last_name})
Beispiel #13
0
def cancel_joining_activity(request, activity_id, message):
    member_login = get_member_login_object(request)
    activity = Activity.objects.get(pk=activity_id)
    activity.member_join.remove(member_login)
    activity_request = ActivityRequest.objects.get(
        activity=activity,
        member_join=member_login,
        member_create=activity.member_create)
    activity_request.delete()
    notify_type = 'cancel_joining_activity'
    content = ("<a href='/" + member_login.user.username + "' >" +
               member_login.user.first_name + " " +
               member_login.user.last_name + "</a>" +
               " want to cancel attending your activity " +
               "<a href='/activity/" + str(activity.pk) + "' >" +
               activity.name + "</a>." +
               "\n The reason for this cancel is: \n" + message)
    new_notify = Notify.objects.create(notify_type=notify_type,
                                       notify_to=activity.member_create,
                                       notify_from=member_login,
                                       status='new',
                                       date=datetime.datetime.now(),
                                       content=content)
    new_notify.save()
    new_buzz_type = len(
        Notify.objects.filter(notify_to=activity.member_create, status='new'))
    new_mail_type = len(
        Message.objects.filter(member_receive=activity.member_create,
                               status='new'))
    buzz = simplejson.dumps({
        'new_notify': new_mail_type + new_buzz_type,
        'new_buzz_type': new_buzz_type,
        'new_mail_type': new_mail_type,
        'username': activity.member_create.user.username
    })
    conn.send(buzz, destination='/update')
    return simplejson.dumps({'activity_id': activity_id})
Beispiel #14
0
def add_message(request, username, message):
    now = datetime.datetime.now()
    member_chat = Member.objects.get(user=User.objects.get(username=username))
    member_login = get_member_login_object(request)
    new_message = Message.objects.create(member_send=member_login,
                                         member_receive=member_chat,
                                         content=message,
                                         date=now,
                                         status='new')
    new_message.save()
    new_buzz_type = len(
        Notify.objects.filter(notify_to=member_chat, status='new'))
    new_mail_type = len(
        Message.objects.filter(member_receive=member_chat, status='new'))
    buzz = simplejson.dumps({
        'new_notify':
        new_buzz_type + new_mail_type,
        'new_buzz_type':
        new_buzz_type,
        'new_mail_type':
        new_mail_type,
        'username':
        member_chat.user.username,
        'member_send_username':
        member_login.user.username,
        'member_send_name':
        member_login.user.first_name + " " + member_login.user.last_name,
        'member_send_avatar':
        member_login.avatar.url,
        'msg_content':
        new_message.content_html,
        'date':
        new_message.elapse_time
    })
    conn.send(buzz, destination='/update')
    return simplejson.dumps({'message': 'Success'})