示例#1
0
    def post(self, request):
        """
        喜欢某个瓦片(tile)

        ``POST`` `tiles/like/ <http://192.168.1.222:8080/v1/tiles/like>`_

        :param id:
            某个瓦片的 id

        """
        params = request.POST
        tag = params.get("tag",'')
        d = []
        try:
            t = eval(tag)
        except:
            return rc.not_here("please pass the correct parameters")
        for g in t:
            if g:
                num = TileCreateTag.objects.filter(tag=g).count()
                if num:
                    d.append({"tag":g,"exist": True})
                else:
                    d.append({"tag":g,"exist": False})   
        return rc.accepted(d)
示例#2
0
    def modify(self, request):
        """
        修改一条内容, 针对个人或者班级.

        ``POST`` `tiles/modify/ <http://192.168.1.222:8080/v1/tiles/modify>`_

        :param id:
            瓦片id
            
        :param type_id:
            瓦片类型

        :param uid:
            发布者,默认为匿名用户(uid: -1)

        :param class_id:
            瓦片所属班级,是否属于班级的内容

        :param content:
            内容描述

        :param img:
            二进制图片信息.
        """
        params = request.POST
        id = params.get("id")
        type_id = params.get("type_id","")
        uid = params.get("uid", "")
        class_id = params.get("class_id","")
        content = params.get("content", "")
        category_id = params.get("category_id",type_id)
        img = request.FILES.get('img','')
        video = params.get("video", "")
        title = params.get("title", "")
        print id,'======='
        try:
            tile = Tile.objects.get(pk=id)
        except Tile.DoesNotExist:
            return rc.not_here("tile object is not exist")

        category_id = int(category_id)
        if category_id in (1,2,3):
            category_id = 17

        if type_id:
            try:
                tile_type = TileType.objects.get(pk=type_id)
            except TileType.DoesNotExist:
                return rc.not_here("tile_type object is not exist")
            tile.type_id = type_id
            #return rc.NOT_HERE
        if category_id:
            try:
                tile_category = TileCategory.objects.all_with_deleted().get(pk=category_id)
            except TileCategory.DoesNotExist:
                return rc.not_here("tile_category object is not exist")
            tile.category_id = category_id
            
        if uid:
            try:
                user = User.objects.get(pk=uid)
            except User.DoesNotExist:
                return rc.not_here("user object  is not exist")
            tile.user = user

        if class_id:
            try:
                group = Group.objects.get(pk=class_id)
            except Group.DoesNotExist:
                return rc.not_here("group object  is not exist")
            tile.group = group
        
        if title:
            tile.title = title
        if content:
            tile.description = content
        if img:
            tile.img = img 
        if video:
            tile.video = video
        
        if tile.category_id == 9:
            #if not group:
                #return rc.not_here("group object is not exist for Activity")
            try:
                desc = json.loads(tile.description)
                act = desc['events']
            except:
                return rc.not_here("Activity description object must be json include key events")
            if not act:
                desc = ''
            else:
                i = 0
                for d in act:
                    if not d['content']:
                       i += 1 
                if i == len(act):
                    desc = ''
            if not desc:
                return rc.not_here("Activity description object can not be null")
            try:
                has_migration = TileToActivity.objects.get(tile=tile)
            except:
                has_migration = None
            if has_migration:
                active = has_migration.active
            else:
                active = Activity()
                
            active.user = tile.user
            active.creator = tile.creator
            active.group = tile.group
            active.start_time = tile.start_time
            active.microsecond = tile.microsecond
            active.description = json.dumps({"events":desc['events']})
            active.save()   
            
            if not has_migration:
                migration = TileToActivity()
                migration.tile = tile
                migration.active = active
                migration.save()  
            
        tile.save()
        return tile
示例#3
0
    def post(self, request):
        """
        发布一条内容, 针对个人或者班级.

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

        :param type_id:
            瓦片类型

        :param uid:
            发布者,默认为匿名用户(uid: -1)

        :param class_id:
            瓦片所属班级,是否属于班级的内容

        :param content:
            内容描述

        :param img:
            二进制图片信息.
        """
        params = request.POST
        type_id = params.get("type_id")
        uid = params.get("uid", -1)
        class_id = params.get("class_id")
        content = params.get("content", "")
        category_id = params.get("category_id",0)
        img = request.FILES.get('img')
        video = params.get("video", "")
        title = params.get("title", "")
        tag = params.get("tag", "")

        category_id = int(category_id)

        try:
            tile_type = NewTileType.objects.get(pk=type_id)
            if not title:
                title = tile_type.name
        except NewTileType.DoesNotExist:
            pass
            #return rc.NOT_HERE

        try:
            tile_category = NewTileCategory.objects.all_with_deleted().get(pk=category_id)
            if not title:
                title = tile_category.name
        except NewTileCategory.DoesNotExist:
            return rc.not_here("tile_category object is not exist")
            #return rc.NOT_HERE

        try:
            user = User.objects.get(pk=uid)
        except User.DoesNotExist:
            return rc.not_here("user object  is not exist")
            #return rc.NOT_HERE

        try:
            group = Group.objects.get(pk=class_id) if class_id else None
        except Group.DoesNotExist:
            group = None

        tile = Tile(creator=request.user, user=user, group=group)
        tile.title = title
        tile.new_type_id = type_id
        tile.description = content
        tile.img = img
        tile.video = video

        tile.new_category_id = category_id
        try:
            is_exist = Tile.objects.get(creator=request.user, user=user, group=group,\
                title = title,description = content,img = img,video = video,new_category_id = category_id)
            return None
        except:
            tile.save()
            if tag and tile.id:
                tile_tag = TileCreateTag()
                tile_tag.tag = tag
                tile_tag.tile = tile
                tile_tag.save()
            
        return tile if tile.id else None