예제 #1
0
파일: resources.py 프로젝트: NeroSouza/zou
    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
예제 #2
0
파일: resources.py 프로젝트: NeroSouza/zou
    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
예제 #3
0
파일: resources.py 프로젝트: tokejepsen/zou
    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
예제 #4
0
파일: resources.py 프로젝트: NeroSouza/zou
    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)
예제 #5
0
 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"])
예제 #6
0
파일: resources.py 프로젝트: tokejepsen/zou
    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
예제 #7
0
 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"])
예제 #8
0
 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"])
예제 #9
0
파일: resources.py 프로젝트: NeroSouza/zou
 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"])
예제 #10
0
 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))
예제 #11
0
파일: resources.py 프로젝트: tokejepsen/zou
 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