def put(self, task_id): (person_id, comment, working_file_id) = self.get_arguments() try: task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) person = persons_service.get_person(person_id) preview_path = "" if working_file_id is not None: working_file = files_service.get_working_file(working_file_id) software = files_service.get_software( working_file["software_id"]) revision = working_file["revision"] preview_path = self.get_preview_path(task, working_file["name"], revision, software) task = tasks_service.task_to_review(task["id"], person, comment, preview_path) except PersonNotFoundException: return {"error": "Cannot find given person."}, 400 return task
def post(self, task_id, comment_id): is_movie = self.get_arguments() task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) comment = tasks_service.get_comment(comment_id) task_status = tasks_service.get_task_status(comment.task_status_id) person = persons_service.get_current_user() if not task_status["is_reviewable"]: return { "error": "Comment status is not reviewable, you cannot link a " "preview to it." }, 400 revision = tasks_service.get_next_preview_revision(task_id) preview = files_service.create_preview_file(task["name"], revision, task["id"], person["id"], is_movie) comment.update({"preview_file_id": preview["id"]}) events.emit("preview:add", { "comment_id": comment_id, "task_id": task_id, "preview": preview }) return preview, 201
def post(self, task_id): (task_status_id, comment, person_id) = self.get_arguments() task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) task_status = tasks_service.get_task_status(task_status_id) if person_id: person = persons_service.get_person(person_id) else: person = persons_service.get_current_user() comment = tasks_service.create_comment(object_id=task_id, object_type="Task", task_status_id=task_status_id, person_id=person["id"], text=comment) status_changed = task_status_id != task["task_status_id"] tasks_service.update_task(task_id, {"task_status_id": task_status_id}) notifications_service.create_notifications_for_task_and_comment( task, comment, change=status_changed) comment["task_status"] = task_status comment["person"] = person events.emit("comment:new", {"id": comment["id"]}) return comment, 201
def post(self, task_id, date, person_id): args = self.get_arguments() try: if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) tasks_service.get_task(task_id) persons_service.get_person(person_id) time_spent = tasks_service.create_or_update_time_spent( task_id, person_id, date, args["duration"]) return time_spent, 200 except WrongDateFormatException: abort(404)
def is_allowed(self, preview_file_id): """ Return true if user is allowed to add a preview. """ if permissions.has_manager_permissions(): return True else: preview_file = files_service.get_preview_file(preview_file_id) return user_service.check_assigned(preview_file["task_id"])
def put(self, task_id): (person_id, comment, name, revision) = self.get_arguments() try: task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) if person_id is not None: person = persons_service.get_person(person_id) else: person = persons_service.get_current_user() preview_path = self.get_preview_path(task, name, revision) task = tasks_service.task_to_review(task["id"], person, comment, preview_path) except PersonNotFoundException: return {"error": True, "message": "Cannot find given person."}, 400 return task
def check_update_permissions(self, preview_file, data): if permissions.has_manager_permissions(): return True else: return user_service.check_assigned(preview_file["task_id"])
def check_update_permissions(self, instance, data): working_file = files_service.get_working_file(instance["id"]) return permissions.has_manager_permissions or \ user_service.check_assigned(working_file["task_id"])
def put(self, task_id): task = tasks_service.get_task(task_id) if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) return tasks_service.start_task(task["id"])
def test_check_assigned(self): with self.assertRaises(permissions.PermissionDenied): user_service.check_assigned(self.task_id) self.task.assignees.append(self.user) self.task.save() self.assertTrue(user_service.check_assigned(self.task_id))
def delete(self, task_id, comment_id): if not permissions.has_manager_permissions(): user_service.check_assigned(task_id) comment = self.remove_comment_and_related(comment_id) self.update_task_status(task_id) return comment