refactor message

This commit is contained in:
baoliang 2021-02-01 09:35:29 +08:00
parent 26374732fd
commit 570e1bb347
4 changed files with 24 additions and 8 deletions

View File

@ -5,7 +5,7 @@ import datetime
from polls.decorators import polls_login_required from polls.decorators import polls_login_required
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from polls.models import Message, TaskRecord from polls.models import Message, Task, TaskRecord
from dashboard.models import Group_user, Userprofile from dashboard.models import Group_user, Userprofile
@ -18,10 +18,24 @@ def last_messages(request):
group_id = request.GET.get('group_id') group_id = request.GET.get('group_id')
messages = Message.objects.filter(send_to_id=group_id)[:100] messages = Message.objects.filter(send_to_id=group_id)[:100]
results = [] results = []
filter_dict = dict()
for m in messages:
if m.type == 4 or m.type == 1:
task_id = m.task_id
if task_id:
if task_id in filter_dict:
c = filter_dict[task_id]
for o in messages: for o in messages:
result = dict() result = dict()
t = o.type
if t == 4:
continue
result['id'] = str(o.id) result['id'] = str(o.id)
result['type'] = o.type result['type'] = t
if t == 1:
t_id = o.task_id
task = Task.objects.get(id=t_id)
result['title'] = task.content
profile = Userprofile.objects.filter(user_id=o.send_from_id).first() profile = Userprofile.objects.filter(user_id=o.send_from_id).first()
result['user_name'] = profile.name result['user_name'] = profile.name
result['organization'] = profile.organization.name result['organization'] = profile.organization.name
@ -70,7 +84,7 @@ def is_read_message(request):
return JsonResponse({'status': 'success', 'message': False}, safe=False) return JsonResponse({'status': 'success', 'message': False}, safe=False)
is_exists = TaskRecord.objects.filter( is_exists = TaskRecord.objects.filter(
task__message__id=message_id).exists() task__message__id=message_id, user_id=id).exists()
return JsonResponse({'status': 'success', 'message': is_exists}, safe=False) return JsonResponse({'status': 'success', 'message': is_exists}, safe=False)
@ -81,6 +95,7 @@ def read_message(request):
return HttpResponse(status=405) return HttpResponse(status=405)
user = request.user user = request.user
message_id = request.POST.get('message_id') message_id = request.POST.get('message_id')
print(message_id)
if not message_id: if not message_id:
return JsonResponse({'status': 'success', 'message': False}, safe=False) return JsonResponse({'status': 'success', 'message': False}, safe=False)
message = Message.objects.get(id=message_id) message = Message.objects.get(id=message_id)

View File

@ -38,7 +38,7 @@ def create_task(request):
if request.method == 'GET': if request.method == 'GET':
return HttpResponse(status=405) return HttpResponse(status=405)
user = request.user user = request.user
profile = user.userprofile_set.first() creater_profile = user.userprofile_set.first()
content = request.POST.get('content') content = request.POST.get('content')
if not content: if not content:
return JsonResponse({'status': 'error', 'message': '内容不能为空'}) return JsonResponse({'status': 'error', 'message': '内容不能为空'})
@ -63,16 +63,15 @@ def create_task(request):
if picture: if picture:
pictureAddtion = TaskAddition.objects.create( pictureAddtion = TaskAddition.objects.create(
task=task, category=2, image=picture) task=task, category=2, image=picture)
for group in groups: for group in groups:
users = Group_user.objects.filter(group_id=group) users = Group_user.objects.filter(group_id=group)
for u in users: for u in users:
g = Group.objects.get(id=group) g = Group.objects.get(id=group)
profile = Userprofile.objects.filter(user_id=u.user_id).first() profile = Userprofile.objects.filter(user_id=u.user_id).first()
if profile and profile.status == 1: if profile and profile.status == 1:
content = '%s在群组“%s”发布了任务,请查收消息' % (profile, g.name) content = '%s在群组“%s”发布了任务,请查收消息' % (creater_profile, g.name)
Notice.create_normal_notice(u.user_id, content, group) Notice.create_normal_notice(u.user_id, content, group)
# send_tnps([u.username], content) send_tnps([u.username], content)
return JsonResponse({'status': 'success'}) return JsonResponse({'status': 'success'})
@ -102,7 +101,8 @@ def get_task(request):
for r in records: for r in records:
p = dict() p = dict()
p['id'] = r.user_id p['id'] = r.user_id
is_finished = TaskRecord.objects.filter(user_id=r.user_id, task_id=task_id) is_finished = TaskRecord.objects.filter(
user_id=r.user_id, task_id=task_id)
p['status'] = '完成' if is_finished else '未完成' p['status'] = '完成' if is_finished else '未完成'
profile = Userprofile.objects.filter(user_id=r.user_id).first() profile = Userprofile.objects.filter(user_id=r.user_id).first()
p['name'] = profile.name p['name'] = profile.name
@ -112,6 +112,7 @@ def get_task(request):
result['added'] = task.added.strftime("%Y-%m-%d %H:%M:%S") result['added'] = task.added.strftime("%Y-%m-%d %H:%M:%S")
return JsonResponse({'status': 'success', 'message': result}) return JsonResponse({'status': 'success', 'message': result})
@csrf_exempt @csrf_exempt
def create_test_task(request): def create_test_task(request):
# if request.method == 'GET': # if request.method == 'GET':