示例#1
0
    def get(self, request, team):
        """获取指定团队发布的成果
        :return:
            count: 成果总数
            list: 成果列表
                id: 成果ID
                team_id: 团队ID
                team_name: 团队名称
                icon_url: 团队头像
                description: 成果描述
                picture: 图片
                time_created: 发布时间
        """

        # 团队成果,要 team 非空
        achievements = team.achievements.all()
        c = achievements.count()
        l = [{
            'id': a.id,
            'name': a.name,
            'team_id': a.team.id,
            'team_name': a.team.name,
            'icon_url': a.team.icon,
            'description': a.description,
            'tags': deal_tags(a.tags),
            'picture': a.picture,
            'yes_count': a.likers.count(),
            'is_yes': request.user in a.likers.all(),
            'require_count': a.requirers.count(),
            'is_require': request.user in a.requirers.all(),
            'time_created': a.time_created
        } for a in achievements]
        return JsonResponse({'count': c, 'list': l, 'code': 0})
示例#2
0
    def get(self, request, description='', offset=0, limit=10, order=1):
        """获取所有用户发布的成果

        :param offset: 偏移量
        :param limit: 数量上限
        :param order: 排序方式
            0: 发布时间升序
            1: 发布时间降序(默认值)
        :return:
            count: 成果总数
            list: 成果列表
                id: 成果ID
                user_id: 团队ID
                user_name: 团队名称
                icon_url: 团队头像
                description: 成果描述
                picture: 图片
                time_created: 发布时间
        """
        # 获取当前用户好友id.
        userIds = []
        for item in request.user.friends.all():
            userIds.append(str(item.other_user.id))
        userIds.append(str(request.user.id))
        i, j, k = offset, offset + limit, self.ORDERS[order]

        achievements = Achievement.objects.filter(
            team=None, description__icontains=description).order_by(k)
        c = achievements.count()
        achievements = achievements[i:j]
        l = [{
            'id':
            a.id,
            'name':
            a.name,
            'user_id':
            a.user.id,
            'user_name':
            a.user.real_name if str(a.user.id) in userIds
            and a.user.real_name != '' else a.user.name,
            'icon_url':
            a.user.icon,
            'description':
            a.description,
            'tags':
            deal_tags(a.tags),
            'picture':
            a.picture,
            'time_created':
            a.time_created,
            'yes_count':
            a.likers.count(),
            'is_yes':
            request.user in a.likers.all(),
            'require_count':
            a.requirers.count(),
            'is_require':
            request.user in a.requirers.all(),
        } for a in achievements]
        return JsonResponse({'count': c, 'list': l, 'code': 0})
示例#3
0
文件: action.py 项目: gaolilina/sjzk
    def get(self, request, achievement):
        # 获取当前用户好友id.
        userIds = []
        for item in request.user.friends.all():
            userIds.append(str(item.other_user.id))
        userIds.append(str(request.user.id))
        result = {
            'achievement_id': achievement.id,
            'name': achievement.name,
            'desc': achievement.description,
            'tags': deal_tags(achievement.tags),
            'pics': achievement.picture,
            'yes_count': achievement.likers.count(),  # 点赞数
            'is_yes': request.user in achievement.likers.all(),  # 是否点赞
            'require_count': achievement.requirers.count(),  # 需求树
            'is_require': request.user in achievement.requirers.all(),  # 是否需求
        }
        if achievement.team == None:
            result['user_id'] = achievement.user.id
            result[
                'user_name'] = achievement.user.unit1 if achievement.user.is_role_verified else achievement.user.name
            result['real_name'] = achievement.user.real_name if str(
                achievement.user.id) in userIds else ''
            result['icon_url'] = achievement.user.icon
        else:
            result['team_id'] = achievement.team.id
            result['team_name'] = achievement.team.name
            result['icon_url'] = achievement.team.icon

        return JsonResponse(result)
示例#4
0
    def get(self, request, team, offset=0, limit=10, order=1):
        """获取某团队发布的成果
        TODO 使用 SearchTeamAchievement

        :param offset: 偏移量
        :param limit: 数量上限
        :param order: 排序方式
            0: 发布时间升序
            1: 发布时间降序(默认值)
        :return:
            count: 成果总数
            list: 成果列表
                id: 成果ID
                description: 成果描述
                picture: 图片
                time_created: 发布时间
        """
        i, j, k = offset, offset + limit, self.ORDERS[order]
        c = team.achievements.count()
        achievements = team.achievements.order_by(k)[i:j]
        l = [{
            'id': a.id,
            'description': a.description,
            'picture': a.picture,
            'tags': deal_tags(a.tags),
            'time_created': a.time_created
        } for a in achievements]
        return JsonResponse({'count': c, 'list': l, 'code': 0})
示例#5
0
 def get(self, request, offset=0, limit=10, order=1):
     """获取当前用户发布的成果
             :param offset: 偏移量
             :param limit: 数量上限
             :param order: 排序方式
                 0: 发布时间升序
                 1: 发布时间降序(默认值)
             :return:
                 count: 成果总数
                 list: 成果列表
                     id: 成果ID
                     description: 成果描述
                     picture: 图片
                     time_created: 发布时间
             """
     i, j, k = offset, offset + limit, self.ORDERS[order]
     c = request.user.achievements.count()
     achievements = request.user.achievements.order_by(k)[i:j]
     l = [{
         'id': a.id,
         'name': a.name,
         'user_id': request.user.id,
         'user_name': request.user.name,
         'require_count': a.requirers.count(),
         'is_require': request.user in a.requirers.all(),
         'yes_count': a.likers.count(),
         'is_yes': request.user in a.likers.all(),
         'icon_url': request.user.icon,
         'description': a.description,
         'picture': a.picture,
         'time_created': a.time_created,
         'tags': deal_tags(a.tags)
     } for a in achievements]
     return JsonResponse({'count': c, 'list': l, 'code': 0})
示例#6
0
    def get(self, request, user):
        """获取用户发布的成果
        :return:
            count: 成果总数
            list: 成果列表
                id: 成果ID
                user_id: 团队ID
                user_name: 团队名称
                icon_url: 团队头像
                description: 成果描述
                picture: 图片
                time_created: 发布时间
        """
        # 获取当前用户好友id.
        userIds = []
        for item in request.user.friends.all():
            userIds.append(str(item.other_user.id))
        userIds.append(str(request.user.id))

        achievements = user.achievements.all()
        c = achievements.count()
        l = [{
            'id':
            a.id,
            'name':
            a.name,
            'user_id':
            a.user.id,
            'user_name':
            a.user.real_name if str(a.user.id) in userIds
            and a.user.real_name != '' else a.user.name,
            'icon_url':
            a.user.icon,
            'description':
            a.description,
            'tags':
            deal_tags(a.tags),
            'picture':
            a.picture,
            'time_created':
            a.time_created,
            'yes_count':
            a.likers.count(),
            'is_yes':
            request.user in a.likers.all(),
            'require_count':
            a.requirers.count(),
            'is_require':
            request.user in a.requirers.all(),
        } for a in achievements]
        return JsonResponse({'count': c, 'list': l, 'code': 0})
示例#7
0
    def get(self, request, description='', offset=0, limit=10, order=1):
        """获取所有团队发布的成果

        :param offset: 偏移量
        :param limit: 数量上限
        :param order: 排序方式
            0: 发布时间升序
            1: 发布时间降序(默认值)
        :return:
            count: 成果总数
            list: 成果列表
                id: 成果ID
                team_id: 团队ID
                team_name: 团队名称
                icon_url: 团队头像
                description: 成果描述
                picture: 图片
                time_created: 发布时间
        """
        i, j, k = offset, offset + limit, self.ORDERS[order]

        # 团队成果,要 team 非空
        achievements = Achievement.objects.filter(
            team__isnull=False, description__icontains=description).order_by(k)
        c = achievements.count()
        achievements = achievements[i:j]
        l = [{
            'id': a.id,
            'name': a.name,
            'team_id': a.team.id,
            'team_name': a.team.name,
            'icon_url': a.team.icon,
            'description': a.description,
            'tags': deal_tags(a.tags),
            'picture': a.picture,
            'yes_count': a.likers.count(),
            'is_yes': request.user in a.likers.all(),
            'require_count': a.requirers.count(),
            'is_require': request.user in a.requirers.all(),
            'time_created': a.time_created
        } for a in achievements]
        return JsonResponse({'count': c, 'list': l, 'code': 0})