"""
Task models for Centralize
Models for tasks, translations, and user groups (REST API).
"""
from datetime import date
from typing import List, Optional
from ace.centralize.models.base import ModelBase
[docs]
class Translation(ModelBase):
[docs]
def __init__(
self,
language_id: int,
name: str,
description: str
):
self.languageId = language_id
self.name = name
self.description = description
[docs]
class UserGroup(ModelBase):
[docs]
def __init__(
self,
name: str,
description: Optional[str] = None,
translations: Optional[List[Translation]] = None,
users: list[int] = None
):
self.name = name
self.description = description
self.translations = translations
self.users = users
[docs]
class Task(ModelBase):
[docs]
def __init__(
self,
include_folder_responsible: bool,
is_create_template: bool,
language_id: int,
priority_id: int,
title: str,
start_date: date,
entity_type_name: Optional[str] = None,
entity_id: Optional[int] = None,
note: Optional[str] = None,
reminder_date: Optional[date] = None,
due_date: Optional[date] = None,
completed_date: Optional[date] = None,
deleted_date: Optional[date] = None,
responsible_user_group_ids: Optional[list[int]] = None,
responsible_user_ids: Optional[list[int]] = None,
private_user_group_ids: Optional[list[int]] = None
):
if start_date:
start_date = start_date.strftime('%Y-%m-%d')
if reminder_date:
reminder_date = reminder_date.strftime('%Y-%m-%d')
if due_date:
due_date = due_date.strftime('%Y-%m-%d')
if completed_date:
completed_date = completed_date.strftime('%Y-%m-%d')
if deleted_date:
deleted_date = deleted_date.strftime('%Y-%m-%d')
if responsible_user_group_ids is None:
responsible_user_group_ids = []
if responsible_user_ids is None:
responsible_user_ids = []
if private_user_group_ids is None:
private_user_group_ids = []
self.entityTypeName = entity_type_name
self.entityId = entity_id
self.priorityId = priority_id
self.includeFolderResponsible = include_folder_responsible
self.isCreateTemplate = is_create_template
self.languageId = language_id
self.title = title
self.note = note
self.startDate = start_date
self.reminderDate = reminder_date
self.dueDate = due_date
self.completedDate = completed_date
self.deletedDate = deleted_date
self.responsibleUserGroupIds = responsible_user_group_ids
self.responsibleUserIds = responsible_user_ids
self.privateUserGroupIds = private_user_group_ids