Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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'})
Exemplo n.º 3
0
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})
Exemplo n.º 4
0
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})