Beispiel #1
0
 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
Beispiel #2
0
 def get(self, person_id):
     if not permissions.has_manager_permissions():
         projects = user_service.related_projects()
     else:
         projects = projects_service.open_projects()
     return tasks_service.get_person_done_tasks(person_id, projects)
Beispiel #3
0
 def get(self, task_id):
     task = tasks_service.get_task(task_id)
     if not permissions.has_manager_permissions():
         user_service.check_has_task_related(task["project_id"])
     return files_service.get_preview_files_for_task(task_id)
Beispiel #4
0
 def get(self, task_id):
     task = tasks_service.get_task(task_id)
     if not permissions.has_manager_permissions():
         user_service.check_has_task_related(task["project_id"])
     return tasks_service.get_comments(task_id)
Beispiel #5
0
    def post(self, task_id):
        (task_status_id, comment, person_id, created_at,
         checklist) = self.get_arguments()

        task = tasks_service.get_task(task_id)
        user_service.check_project_access(task["project_id"])
        user_service.check_entity_access(task["entity_id"])
        task_status = tasks_service.get_task_status(task_status_id)

        if not permissions.has_manager_permissions():
            person_id = None
            created_at = None

        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",
                                               files=request.files,
                                               person_id=person["id"],
                                               task_status_id=task_status_id,
                                               text=comment,
                                               checklist=checklist,
                                               created_at=created_at)

        status_changed = task_status_id != task["task_status_id"]
        new_data = {
            "task_status_id": task_status_id,
            "last_comment_date": comment["created_at"],
        }
        if status_changed:
            if task_status["is_retake"]:
                retake_count = task["retake_count"]
                if retake_count is None or retake_count == "NoneType":
                    retake_count = 0
                new_data["retake_count"] = retake_count + 1

            if task_status["is_done"]:
                new_data["end_date"] = datetime.datetime.now()
            else:
                new_data["end_date"] = None

            if (task_status["short_name"] == "wip"
                    and task["real_start_date"] is None):
                new_data["real_start_date"] = datetime.datetime.now()

        tasks_service.update_task(task_id, new_data)
        if status_changed:
            events.emit(
                "task:status-changed", {
                    "task_id": task_id,
                    "new_task_status_id": new_data["task_status_id"],
                    "previous_task_status_id": task["task_status_id"]
                })

        task = tasks_service.get_task_with_relations(task_id)

        notifications_service.create_notifications_for_task_and_comment(
            task, comment, change=status_changed)
        news_service.create_news_for_task_and_comment(task,
                                                      comment,
                                                      change=status_changed)

        comment["task_status"] = task_status
        comment["person"] = person
        return comment, 201
Beispiel #6
0
 def get(self, task_id):
     task = tasks_service.get_task(task_id)
     user_service.check_project_access(task["project_id"])
     is_client = permissions.has_client_permissions()
     is_manager = permissions.has_manager_permissions()
     return tasks_service.get_comments(task_id, is_client, is_manager)
Beispiel #7
0
 def serialize_instance(self, instance, relations=False):
     if permissions.has_manager_permissions():
         return instance.serialize_safe(relations=relations)
     else:
         return instance.present_minimal(relations=relations)
Beispiel #8
0
 def check_permissions(self, instance_id):
     is_current_user = \
         persons_service.get_current_user()["id"] != instance_id
     if is_current_user and not permissions.has_manager_permissions():
         raise permissions.PermissionDenied
Beispiel #9
0
 def serialize_instance(self, instance):
     if permissions.has_manager_permissions():
         return instance.serialize_safe()
     else:
         return instance.serialize_without_info()
Beispiel #10
0
 def check_update_permissions(self, output_file, data):
     if permissions.has_manager_permissions():
         return True
     return False
Beispiel #11
0
 def check_update_permissions(self, output_file, data):
     if permissions.has_manager_permissions():
         return True
     else:
         return user_service.check_working_on_entity(
             output_file["entity_id"])
Beispiel #12
0
def check_project_access(project_id):
    return permissions.has_manager_permissions() or \
        check_has_task_related(project_id)
Beispiel #13
0
 def check_update_permissions(self, preview_file, data):
     task = tasks_service.get_task(preview_file["task_id"])
     user_service.check_project_access(task["project_id"])
     if not permissions.has_manager_permissions():
         user_service.check_working_on_task(task["entity_id"])
     return True
Beispiel #14
0
 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"])
Beispiel #15
0
 def is_allowed(self, preview_file_id):
     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"])
Beispiel #16
0
 def get(self, entity_id, task_type_id):
     entity = entities_service.get_entity(entity_id)
     if not permissions.has_manager_permissions():
         user_service.check_has_task_related(entity["project_id"])
     return tasks_service.get_tasks_for_entity_and_task_type(
         entity_id, task_type_id)
Beispiel #17
0
 def serialize_instance(self, instance):
     if permissions.has_manager_permissions():
         return instance.serialize_safe()
     else:
         return instance.present_minimal()
Beispiel #18
0
 def get(self, entity_id):
     entity = entities_service.get_entity(entity_id)
     if not permissions.has_manager_permissions():
         user_service.check_has_task_related(entity["project_id"])
     return files_service.get_last_output_files_for_entity(entity["id"])
Beispiel #19
0
def is_current_user_manager():
    """
    Return true is current user is manager or admin.
    """
    return permissions.has_manager_permissions()