Example #1
0
    def read(self, request):
        """
        获取某个活动的信息

        ``GET`` 

        :param id:
            某个活动的 id
        """
        params = request.GET
        active_id = params.get("id")
        user_id = params.get("uid")
        class_id = params.get("class_id")
        if active_id:
            try:
                active = Activity.objects.get(pk=active_id)
                return active
            except Activity.DoesNotExist:
                return rc.NOT_HERE
            
        if not user_id and not class_id:
            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 = Activity.objects.filter(q).order_by("-start_time","-id")
        return query_range_filter(params, queryset, "actives")
Example #2
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()
                
                add_daily_record_visitor(request.user,tile)
                
                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).exclude(new_type_id=4).order_by("-microsecond","-id")
        
        mictime = request.GET.get("mictime", "")      
        if mictime:
            queryset = queryset.filter(microsecond__lte=mictime)
            
        return query_range_filter(params, queryset, "tiles")
Example #3
0
    def read(self, request):
        """
        获取某个食谱的详情

        ``GET`` 

        param id:某个食谱的 id
        param date:日期
        param class_id:班级id
        """
        params = request.GET
        id = params.get("id")
        date = params.get("date")
        class_id = params.get("class_id")
        if id:
            try:
                cookbook = Cookbook.objects.get(pk=id)
                helpers.mark_cookbook_as_read(request,cookbook)
                return cookbook
            except Cookbook.DoesNotExist:
                return rc.NOT_HERE
            
        if not date and not class_id:
            return rc.bad_request( "date or class_id is requierd")
        
        try:
            group = Group.objects.get(pk=class_id)
        except Group.DoesNotExist:
            return rc.not_here("froup object is not exist")
        
        #date = datetime.datetime.strptime(date,"%Y-%m-%d")
        cookbooks = Cookbook.objects.filter(date=date,group=group)

        if cookbooks:
            cookbook = cookbooks[0]
            helpers.mark_cookbook_as_read(request,cookbook)
        else:
            cookbook = ''
        return cookbook