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)
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
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