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 })
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"})
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({})
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"})
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({})
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)
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({})
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)
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({})
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})
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({})
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})
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})
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'})