Beispiel #1
0
 def generate_fixture_task_standard(self):
     start_date = fields.get_date_object("2017-02-20")
     due_date = fields.get_date_object("2017-02-28")
     real_start_date = fields.get_date_object("2017-02-22")
     self.task_standard = Task.create(name="Super modeling",
                                      project_id=self.project_standard.id,
                                      task_type_id=self.task_type.id,
                                      task_status_id=self.task_status.id,
                                      entity_id=self.asset_standard.id,
                                      assignees=[self.person],
                                      assigner_id=self.assigner.id,
                                      duration=50,
                                      estimation=40,
                                      start_date=start_date,
                                      due_date=due_date,
                                      real_start_date=real_start_date)
     self.project.team.append(self.person)
     self.project.save()
     return self.task_standard
Beispiel #2
0
 def get(self):
     args = self.get_args([("before", None, None),
                           ("page_size", 100, False)])
     permissions.check_manager_permissions()
     before = None
     if args["before"] is not None:
         before = fields.get_date_object(args["before"],
                                         "%Y-%m-%dT%H:%M:%S")
     page_size = args["page_size"]
     return events_service.get_last_login_logs(before, page_size)
Beispiel #3
0
 def test_get_last_events(self):
     asset = assets_service.create_asset(self.project.id,
                                         self.asset_type.id, "test 1", "",
                                         {})
     date = fields.get_date_object(asset["created_at"], "%Y-%m-%dT%H:%M:%S")
     time.sleep(1)
     asset = assets_service.create_asset(self.project.id,
                                         self.asset_type.id, "test 2", "",
                                         {})
     time.sleep(1)
     asset = assets_service.create_asset(self.project.id,
                                         self.asset_type.id, "test 3", "",
                                         {})
     events = events_service.get_last_events()
     self.assertEqual(len(events), 3)
     events = events_service.get_last_events(page_size=2)
     self.assertEqual(len(events), 2)
     date = fields.get_date_object(asset["created_at"], "%Y-%m-%dT%H:%M:%S")
     events = events_service.get_last_events(before=date)
     self.assertEqual(len(events), 2)
Beispiel #4
0
    def generate_fixture_task(self, name="Master", asset_id=None):
        if asset_id is None:
            asset_id = self.asset.id

        start_date = fields.get_date_object("2017-02-20")
        due_date = fields.get_date_object("2017-02-28")
        real_start_date = fields.get_date_object("2017-02-22")
        self.task = Task.create(name=name,
                                project_id=self.project.id,
                                task_type_id=self.task_type.id,
                                task_status_id=self.task_status.id,
                                entity_id=asset_id,
                                assignees=[self.person],
                                assigner_id=self.assigner.id,
                                duration=50,
                                estimation=40,
                                start_date=start_date,
                                due_date=due_date,
                                real_start_date=real_start_date)
        return self.task
Beispiel #5
0
 def save_version_if_needed(self, shot, previous_shot):
     previous_data = previous_shot.get("data", {}) or {}
     data = shot.get("data", {})
     frame_in = data.get("frame_in", 0)
     pframe_in = previous_data.get("frame_in", 0)
     frame_out = data.get("frame_in", 0)
     pframe_out = previous_data.get("frame_in", 0)
     name = data.get("name", "")
     pname = previous_shot["name"]
     version = None
     if frame_in != pframe_in or frame_out != pframe_out or name != pname:
         current_user_id = persons_service.get_current_user()["id"]
         previous_updated_at = fields.get_date_object(
             previous_shot["updated_at"], date_format="%Y-%m-%dT%H:%M:%S")
         updated_at = fields.get_date_object(
             shot["updated_at"], date_format="%Y-%m-%dT%H:%M:%S")
         if date_helpers.get_date_diff(previous_updated_at,
                                       updated_at) > 60:
             version = EntityVersion.create(entity_id=shot["id"],
                                            name=pname,
                                            data=shot["data"],
                                            person_id=current_user_id)
     return version
Beispiel #6
0
def new_comment(
    task_id,
    task_status_id,
    person_id,
    text,
    object_type="Task",
    files={},
    checklist=[],
    created_at="",
):
    """
    Create a new comment for given object (by default, it considers this object
    as a Task).
    """
    created_at_date = None
    task = tasks_service.get_task(task_id)
    if created_at is not None and len(created_at) > 0:
        try:
            created_at_date = fields.get_date_object(
                created_at, date_format="%Y-%m-%d %H:%M:%S")
        except ValueError:
            pass

    comment = Comment.create(
        object_id=task_id,
        object_type=object_type,
        task_status_id=task_status_id,
        person_id=person_id,
        mentions=get_comment_mentions(task_id, text),
        checklist=checklist,
        text=text,
        created_at=created_at_date,
    )

    comment = comment.serialize(relations=True)
    comment["attachment_files"] = []
    for uploaded_file in files.values():
        attachment_file = create_attachment(comment, uploaded_file)
        comment["attachment_files"].append(attachment_file)

    events.emit(
        "comment:new",
        {
            "comment_id": comment["id"],
            "task_id": task_id
        },
        project_id=task["project_id"],
    )
    return comment