diff --git a/oml/item/handlers.py b/oml/item/handlers.py index 36ca61a..b13c9f4 100644 --- a/oml/item/handlers.py +++ b/oml/item/handlers.py @@ -191,7 +191,13 @@ class UploadHandler(tornado.web.RequestHandler): file.move() else: user = state.user() - item = file.item + if not file.item: + item = Item.get_or_create(id=file.sha1, info=file.info) + file.item_id = item.id + state.db.session.add(file) + state.db.session.commit() + else: + item = file.item if user not in item.users: logger.debug('add %s to local user', id) item.add_user(user)