def save_doc(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    print('save doc')
    content = request.POST.get("content")
    key = request.POST.get("doc_id")
    doc_id = transfer(key)
    # create_time = request.POST.get("modified_time")
    doc = Document.objects.get(pk=doc_id)
    doc.content = content
    doc.save()
    data = {'flag': "yes", 'msg': "modified success"}
    # print("success")
    return JsonResponse(data)
def exit_team(request):
    print("exit team")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    team_id = request.POST.get("team_id")
    team = Team.objects.get(id=team_id)
    team_user = TeamUser.objects.filter(team=team, user=user)
    if team_user:
        team_user[0].delete()
        print("exit_team success")
    else:
        print("exit_team fail")
    team_user.delete()
    return JsonResponse({})
def get_deleted_docs(request):
    print("get deleted docs")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    deleted_documents = Delete_document.objects.filter(creator=user)
    deleted_docs = []
    for doc in deleted_documents:
        item = {
            'name': doc.name,
            'doc_id': doc.pk,
        }
        deleted_docs.append(item)
    data = {'deleted_docs': deleted_docs}
    return JsonResponse(data)
def collect_doc(request):
    print("collect doc")
    key = request.POST.get("doc_id")
    doc_id = transfer(key)
    # print(doc_id)
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    doc = Document.objects.get(pk=doc_id)
    data = {'flag': "no", 'msg': "already collected"}
    if not Collection.objects.filter(Q(user=user) & Q(doc=doc)):
        Collection.objects.create(user=user, doc=doc)
        data = {'flag': "yes", 'msg': "collect success"}
    # print("success")
    return JsonResponse(data)
def delete_team_member(request):
    print("delete team member")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    team_id = request.POST.get("team_id")
    team = Team.objects.get(id=team_id)
    target_username = request.POST.get("username")
    user = User.objects.get(username=target_username)
    team_user = TeamUser.objects.filter(team=team, user=user)
    if team_user:
        team_user[0].delete()
        print("delete_team_number success")
    else:
        print("delete_team_number  fail")
    return JsonResponse({})
def doc_search(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    keyword = request.POST.get("keyword")
    search_doc = Document.objects.filter(
        Q(creator=user) & Q(name__icontains=keyword))
    docs = []
    for d in search_doc:
        c_item = {
            'name': d.name,
            'doc_id': d.key,
            'created_time': d.created_date.__format__('%Y-%m-%d %H:%M'),
        }
        docs.append(c_item)
    return JsonResponse({'docs': docs})
def create_team(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    if request.method == "POST":
        print('POST create team')
        team_name = request.POST.get("name")
    elif request.method == "OPTIONS":
        print('OPTIONS create team')
        team_name = request.OPTIONS.get("name")
    else:
        print('error')
    team = Team.objects.create(team_name=team_name)
    TeamUser.objects.create(team=team,
                            user=user,
                            is_leader=True,
                            permission_level=4)
    return JsonResponse({})
def modify_permission(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    team_id = request.POST.get("team_id")
    team = Team.objects.get(id=team_id)
    username = request.POST.get("username")
    target_user = User.objects.get(username=username)
    permission_level = request.POST.get("level")
    team_user = TeamUser.objects.get(team=team, user=target_user)
    if team_user:
        team_user.permission_level = permission_level
        print("权限被设置为", permission_level)
        team_user.save()
        print("modify_permission success")
    else:
        print("modify_permission fail")

    return JsonResponse({})
def is_leader(request):
    print("current user is leader?")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    team_id = request.POST.get("team_id")
    team = Team.objects.get(id=team_id)
    # print("team id")
    # print(team_id)
    try:
        team_user = TeamUser.objects.get(team=team, user=user)
        data = {
            "is_leader": team_user.is_leader,
            "level": team_user.permission_level
        }
        print("team user permission level")
        print(team_user.permission_level)
    except:
        data = {}
    return JsonResponse(data)
示例#10
0
def response_invitation(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    notice_id = request.POST.get("notice_id")
    if request.POST.get("answer") == 'Yes':
        # 用户接受邀请
        # 获取团队
        team = Team.objects.get(id=request.POST.get("team_id"))
        # User作为组员加入团队
        TeamUser.objects.create(user=user, team=team, is_leader=False)
        print('Success')
    elif request.POST.get("answer") == 'No':
        # 用户拒绝邀请
        print('Refuse')
    else:
        print('There must be something wrong with the data!')

    Notification.objects.get(id=notice_id).delete()

    return JsonResponse({})
示例#11
0
def delete_doc(request):
    print("delete doc")
    key = request.POST.get("doc_id")
    doc_id = transfer(key)
    user = authentication(request)
    try:
        doc = Document.objects.get(pk=doc_id)
        delete_doc = Delete_document.objects.create(
            creator=doc.creator,
            team=doc.team,
            in_group=doc.in_group,
            name=doc.name,
            content=doc.content,
            created_date=doc.created_date,
            modified_date=doc.modified_date)
        doc.delete()
        data = {'flag': "yes", 'delete_doc_id': delete_doc.pk}
        print("success")
    except expression as identifier:
        data = {'flag': "no"}
    return JsonResponse(data)
示例#12
0
def get_team_docs(request):
    # print("get team docs")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    team_id = request.POST.get("team_id")
    # print(team_id)
    team = Team.objects.get(pk=team_id)
    # print(team)
    documents = Document.objects.filter(team=team)
    # print(documents)
    docs = []
    for doc in documents:
        item = {
            'name': doc.name,
            # 'content': d.content,
            'doc_id': doc.key,
        }
        docs.append(item)
    data = {'team_docs': docs}
    return JsonResponse(data)
示例#13
0
def get_team_member(request):
    # print("get team list")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    team_id = request.POST.get("team_id")
    team = Team.objects.get(id=team_id)
    team_user = TeamUser.objects.filter(team=team)
    user_list = []
    for relation in team_user:
        if relation.is_leader:
            continue
        target_user = relation.user
        team_user = TeamUser.objects.get(user=target_user, team=team)
        item = {
            'username': target_user.username,
            "level": str(team_user.permission_level)
        }
        user_list.append(item)
    # fake_list = [{'username': "******", "level": "1"}, {'username': "******", "level": "2"}, {'username': "******", "level": "3"}]
    data = {'user_list': user_list}
    return JsonResponse(data)
示例#14
0
def get_user_notice(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    unread_notice = user.notifications.unread()
    notice_list = []
    for notice in unread_notice:
        team = notice.target
        actor = notice.actor
        item = {
            'notice_id': notice.id,
            'actor_id': actor.id,
            'actor_name': actor.username,
            'actor_avatar': ABSOLUTE_URL + actor.avatar.url,
            'verb': notice.verb,
            'target_id': team.id,
            'target_name': team.team_name,
            'sent_time': datetime.strftime(notice.timestamp, '%Y-%m-%d %H:%M'),
        }
        notice_list.append(item)
    data = {"notice_list": notice_list}
    return JsonResponse(data)
示例#15
0
def get_my_team(request):
    print('get my team')
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    try:
        team_user = TeamUser.objects.filter(user=user)
        team_list = []
        for relation in team_user:
            item = {
                'team_name': relation.team.team_name,
                'team_id': relation.team.id,
                "introduction": relation.team.introduction,
                "is_leader": relation.is_leader,
                "level": relation.permission_level
            }
            team_list.append(item)
        data = {"team_list": team_list}
    except:
        print("没有team")
        data = {"team_list": []}
    return JsonResponse(data)
示例#16
0
def restore_doc(request):
    print("restore")
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    delete_doc_id = request.POST.get("doc_id")
    delete_doc = Delete_document.objects.get(pk=delete_doc_id)
    data = {'flag': "no"}
    if user == delete_doc.creator:
        # 生成独特的原始码
        name = delete_doc.name
        key = user.username + name + str(datetime.now())
        doc = Document.objects.create(creator=delete_doc.creator,
                                      team=delete_doc.team,
                                      in_group=delete_doc.in_group,
                                      name=delete_doc.name,
                                      key=key,
                                      content=delete_doc.content,
                                      created_date=delete_doc.created_date,
                                      modified_date=delete_doc.modified_date)
        delete_doc.delete()
        data = {'flag': "yes", 'doc_id': doc.key}
    return JsonResponse(data)
示例#17
0
def get_comment_list(request):
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    # 获取被评论的文档id
    key = request.POST.get("doc_id")
    doc_id = transfer(key)
    document = Document.objects.get(id=doc_id)
    # 获取评论
    comments = Comment.objects.filter(document=document)
    # 返还评论列表
    comment_list = []
    for comment in comments:
        item = {
            'comment_id': comment.id,
            'user': comment.user.username,
            'content': comment.body,
            'post_time': datetime.strftime(comment.created_time,
                                           '%Y-%m-%d %H-%M'),
        }
        comment_list.append(item)

    data = {"comment_list": comment_list, "current_user": user.username}
    return JsonResponse(data)
示例#18
0
def my_doc(request):
    # print('my docs')
    user = authentication(request)
    if user is None:
        return HttpResponse('Unauthorized', status=401)
    created_documents = Document.objects.filter(creator=user)
    created_docs = []
    collections = Collection.objects.filter(user=user)
    collected_docs = []
    browsing = Browsing.objects.filter(user=user)
    browsing_docs = []
    # 我创建的
    for d in created_documents:
        if not d.in_group:
            c_item = {
                'name': d.name,
                # 'content': d.content,
                'doc_id': d.key,
                'created_time': d.created_date.__format__('%Y-%m-%d %H:%M'),
            }
            created_docs.append(c_item)
    # 我收藏的
    for d in collections:
        if not d.doc.in_group:
            c_item = {
                'name': d.doc.name,
                # 'content': d.content,
                'doc_id': d.doc.key,
                'collected_time':
                d.collected_date.__format__('%Y-%m-%d %H:%M'),
            }
            collected_docs.append(c_item)
    # 最近浏览
    for d in browsing:
        if d.doc.in_group:
            team = d.doc.team
            team_user = TeamUser.objects.get(user=user, team=team)
            c_item = {
                'name': d.doc.name,
                'doc_id': d.doc.key,
                'in_group': True,
                'team_id': team.pk,
                'level': team_user.permission_level,
                'browse_time': d.browsing_date.__format__('%Y-%m-%d %H:%M'),
            }
        else:
            c_item = {
                'name': d.doc.name,
                'doc_id': d.doc.key,
                'in_group': False,
                'team_id': -1,
                'level': 4,
                'browse_time': d.browsing_date.__format__('%Y-%m-%d %H:%M'),
            }
        browsing_docs.append(c_item)
    data = {
        'browsing_docs': browsing_docs,
        'created_docs': created_docs,
        'collected_docs': collected_docs
    }
    return JsonResponse(data)