Beispiel #1
0
    def sub_category(self, request):
        """
        获取某个父类的子类

        ``GET`` `tiles/categorys/subcategory <http://192.168.1.222:8080/v1/tiles/categorys/subcategory>`_

        """
        self.fields = ('new_category_id','name','parent_id','parent_name','sort')

        is_tips = request.GET.get('is_tips', 1)
        parent_id = request.GET.get('parent_id')
        identity = request.GET.get('identity')

        try:
            if parent_id:
                # 特定父类的子类
                qs = NewTileCategory.objects.get_one_parent_sub(parent_id)
            else:
                # 某个类型的子类
                qs = NewTileCategory.objects.get_category(layer='sub', tips=is_tips, identity=identity)
            
            return query_range_filter(request.GET, qs, "categorys")

        except Exception, e:
            print e
            return rc.BAD_REQUEST    
Beispiel #2
0
    def read(self, request):
        '''
        获取瓦片类型列表

        ``GET`` `tiles/types/ <http://192.168.1.222:8080/v1/tiles/types>`_

        '''
        qs = TileType.objects.all()
        return query_range_filter(request.GET, qs, "types")
Beispiel #3
0
    def read(self, request):
        '''
        获得瓦片标签列表

        ``GET`` `tiles/tags/ <http://192.168.1.222:8080/v1/tiles/tags>`_

        '''
        qs = TileTag.objects.all()
        return query_range_filter(request.GET, qs, "tags")
Beispiel #4
0
    def parent_category(self, request):
        """
        获取父类

        ``GET`` `tiles/categorys <http://192.168.1.222:8080/v1/tiles/categorys>`_

        """       

        self.fields = ('new_category_id','name','sort')

        identity = request.GET.get('identity')
        is_tips = request.GET.get('is_tips', False)

        qs = NewTileCategory.objects.get_category(layer='parent', tips=is_tips, identity=identity)

        return query_range_filter(request.GET, qs, "categorys")
Beispiel #5
0
    def read(self, request):
        """
        获得所有内容(教师使用)

        ``GET`` `tiles/ <http://192.168.1.222:8080/v1/tiles>`_

        :param uid:
            用户 id. 用于查询与某用户相关的瓦片

        :param class_id:
            班级 id, 查询用户所在班级相关的瓦片


        获得某条内容的详细信息

        ``GET`` `tiles/show/ <http://192.168.1.222:8080/v1/tiles/show>`_

        :param id:
            某个瓦片的 id
        """
    
        params = request.GET
        tile_id = params.get("id")
        user_id = params.get("uid")
        class_id = params.get("class_id")


        if tile_id:
            try:
                tile = Tile.objects.get(pk=tile_id)
                tile.api_count += 1
                tile.save()
                
                pro = request.user.get_profile()
                pro.last_access = datetime.datetime.now()
                pro.save()
                return tile
            except Tile.DoesNotExist:
                return rc.NOT_HERE

        if not user_id and not class_id:
            #return rc.BAD_REQUEST
            return rc.bad_request( "user_id or class_id is requierd")

        q = Q(user__pk=user_id) if user_id else Q(group__pk=class_id)
        queryset = Tile.objects.filter(q).order_by("-ctime","-id")
        return query_range_filter(params, queryset, "tiles")
Beispiel #6
0
        ids = request.GET.get("tag_id", "")

        qs = Tile.objects.get_tiles_edu(request.user)
                
        if ids:
            qs = qs.filter(tags__pk__in=ids.split(","))
        
        try:
            category_ids = request.GET.get("category_id", "")   
            if category_ids:
                qs = qs.filter(category__pk__in=category_ids.split(","))
        except Exception, e:
            pass

        #return query_range_filter(request.GET, qs, "tiles")
        rs = query_range_filter(request.GET, qs, "tiles")
 
        self.cache_last_tile_id(rs,request.user)
        return rs

    def for_baby_with_promotion(self, request):
        '''
        ``by_babys`` + ``by_tags`` 接口的所有内容(家长使用)

        ``GET`` `tiles/by_babys_with_push/ <http://192.168.1.222:8080/v1/tiles/by_babys_with_push>`_

        '''

        qs = Tile.objects.get_tiles_all_login(request.user)

        try: