def track(request,template_name="aq/track.html"): # 得到筛选的导师 try: the_mentor = int(request.GET['mentor']) except: the_mentor = '' mentors = Mentor.objects.all() if the_mentor == '': mentor_id_list = [mentor.user_id for mentor in mentors] else: mentor_id_list = [the_mentor] # 取得跟导师的对话,且是跟踪的 to_mentor_conversation = MessageContact.objects.filter(Q(from_user__in=mentor_id_list), mentor_track__is_track=True) # 构建数据 mes = [] for c in to_mentor_conversation: # 得到最后一条消息 conversation = Message.objects.get_conversation_between(c.from_user,c.to_user)[:3] last_message = conversation[0] user = c.to_user to_user = c.from_user try: is_track = c.mentor_track.is_track except: is_track = False mes.append({ 'contact_id':c.id, 'user':user, 'to_user':to_user, 'last_message':last_message, 'conversation':conversation, 'is_track':is_track, 'unread_num': MessageRecipient.objects.count_unread_messages_between(to_user,user) }) # 未回消息数 # mes_count = len(mes) # 已跟踪人数 trackers_count = len(to_mentor_conversation) mes,query = pagination(request,mes,10) ctx = { 'mes':mes, 'trackers_count':trackers_count, 'page_type':'track', 'query':query, 'mentors': mentors } return render(request,template_name,ctx)
def index(request,template_name="aq/index.html"): # 得到筛选的导师 try: the_mentor = int(request.GET['mentor']) except: the_mentor = '' mentors = Mentor.objects.all() if the_mentor == '': mentor_id_list = [mentor.user_id for mentor in mentors] else: mentor_id_list = [the_mentor] # 取得跟导师的对话的人 to_mentor_conversation = MessageContact.objects.filter(Q(from_user__in=mentor_id_list)) # 提问总人数 askers_count = to_mentor_conversation.count() # 筛选出最后一次回复是家长的对话,并构建数据 mes = [] for c in to_mentor_conversation: # 得到最后一条消息->会话以导师的角度为准 conversation = Message.objects.get_conversation_between(c.from_user,c.to_user)[:3] last_message = conversation[0] if not last_message.sender.pk in mentor_id_list: user = c.to_user to_user = c.from_user try: is_track = c.mentor_track.is_track except: is_track = False mes.append({ 'contact_id':c.id, 'user':user, 'to_user':to_user, 'last_message':last_message, 'conversation':conversation, 'is_track':is_track, 'unread_num': MessageRecipient.objects.count_unread_messages_between(to_user,user) }) mes_count = len(mes) mes,query = pagination(request,mes,10) return render(request,template_name,{'mes':mes,'mes_count':mes_count,'askers_count':askers_count,'mentors': mentors,'query':query, 'page_type':'ask'})
def history(request,user_id,to_user_id,template_name="aq/history.html"): if request.method == 'GET': userid = user_id to_userid = to_user_id user = get_object_or_404(User,id=userid) to_user = get_object_or_404(User,id=to_userid) conversation = Message.objects.get_conversation_between(to_user,user) # 分页 conversation,query = pagination(request,conversation,10) return render(request,template_name,{'conversation':conversation,'user':user})
def index(request,template_name="waiter/default/index.html"): # 得到筛选的客服人员 try: the_waiter = int(request.GET['waiter']) except: the_waiter = '' waiters = Waiter.objects.all() if the_waiter == '': waiter_id_list = [waiter.user_id for waiter in waiters] else: waiter_id_list = [the_waiter] # 取得跟客服的对话的人 to_waiter_conversation = MessageContact.objects.filter(Q(from_user__in=waiter_id_list)) # 提问总人数 askers_count = to_waiter_conversation.count() # 筛选出最后一次回复是家长的对话,并构建数据 mes = [] for c in to_waiter_conversation: # 得到最后一条消息->会话以导师的角度为准 conversation = Message.objects.get_conversation_between(c.from_user,c.to_user)[:3] last_message = conversation[0] if not last_message.sender.pk in waiter_id_list: user = c.to_user to_user = c.from_user mes.append({ 'contact_id':c.id, 'user':user, 'to_user':to_user, 'last_message':last_message, 'conversation':conversation, 'unread_num': MessageRecipient.objects.count_unread_messages_between(to_user,user) }) mes_count = len(mes) mes,query = pagination(request,mes,10) return render(request,template_name,{'mes':mes,'mes_count':mes_count,'askers_count':askers_count,'waiters': waiters,'query':query})