Class Artist

artist(studio)

level = ‘studio’

Данные хранимые в БД (имя столбца : тип данных):

artists_keys = {
'nik_name': 'text',
'user_name': 'text',
'password': 'text',
'date_time': 'timestamp',
'email': 'text',
'phone': 'text',
'specialty': 'text',
'outsource': 'integer',
'workroom': 'json', # список id отделов
'level': 'text',
'share_dir': 'text',
'status': 'text',
'working_tasks': 'json',# словарь списков имён назначенных задач, по именам отделов.
'checking_tasks': 'json',# словарь списков имён назначенных на проверку задач, по именам отделов.
}

Создание экземпляра класса:

import edit_db as db

artist = db.artist()

Атрибуты

nik_name:(str) - никнейм (уникально).
user_name:(str) - юзернейм в текущей системе, откуда сделан вход.
password:(str) -
date_time:(timestamp) - дата и время регистрации в студии.
email:(str) -
phone:(str) -
specialty:(str) -
outsource:(int) - 0 или 1
workroom:(list) - список id отделов
level:(str) - уровень, значение из studio.user_levels
share_dir:(str) - путь к директории обмена пока не используется
status:(str) - значение из [‘active’, ‘none’]
working_tasks:(dict) - словарь списков имён назначенных задач, по именам отделов ? на счёт того что по именам отделов.
checking_tasks:(dict) - словарь списков имён назначенных на проверку задач, по именам отделов ? на счёт того что по именам отделов.

Методы

init(nik_name[, new = True])

инициализация (заполнение полей экземпляра соответственно данного артиста) по nik_name

Параметры:

  • nik_name (str) - никнейм
  • new (bool) - если True - то возвращается новый инициализированный экземпляр класса artist, если False - то инициализируется текущий экземпляр
  • return - new_artist (artist) / (True, ‘Ok!’) или (False, comment)
init_by_keys(keys[, new = True])

инициализация (заполнение полей экземпляра соответственно данного артиста) по словарю

Параметры:

  • keys (dict) - словарь по studio.artists_keys
  • new (bool) - если True - то возвращается новый инициализированный экземпляр класса artist, если False - то инициализируется текущий экземпляр
  • return - new_artist (artist) / (True, ‘Ok!’) или (False, comment)
add_artist(keys[, registration = True])

добавление нового пользователя

Параметры:

  • keys (dict) - словарь по ключам artists_keys, обязательные значения - nik_name и password.
  • registration (bool) если =*True* - произойдёт заполнение полей artists_keys экземпляра класса, поле user_name будет заполнено, если registration*=*False - поля artists_keys заполняться не будут, поле user_name - останется пустым.
  • return - (True, ‘Ok!’) или (False, comment)
read_artist(keys[, objects=True])

чтение списка данных артистов

Параметры:

  • keys (dict) - словарь по ключам artists_keys - критерии для поиска, если keys= ‘all’ вернёт данные по всем артистам.
  • objects (bool) - если True - то возвращаются экземпляры, если False - то словари.
  • return - (True, [артисты - словари или экземпляры]) или (False, comment)
read_artist_of_workroom(workroom_id[, objects=True])

чтение списка данных артистов по id отдела

Параметры:

  • workroom_id (str) - id отдела
  • objects (bool) - если True - то возвращаются экземпляры, если False - то словари.
  • return - (True, [артисты - словари или экземпляры]) или (False, comment)
get_artists_for_task_type(task_type, workroom_ob)

сортированный список активных артистов подходящих для данного типа задачи.

Параметры:

  • task_type (str) - тип задачи
  • workroom_ob (workroom) - предполагается что выполнена процедура workroom.get_list() и заполнено поле list_workroom (список всех отделов)
  • rturn - (True, сортированный список имён артистов, словарь артистов по именам.) или (False, comment)
login_user(nik_name, password)

Логин юзера. Перезаписывает текущее имя пользователя пк, в соответствие указанного ник-нейма, при этом проверит и удалит данное имя пользователя из под других ник-неймов. Произойдёт заполнение полей artists_keys экземпляра класса.

Параметры:

  • nik_name (str) - никнейм
  • password (str) - пароль
  • return - (True, (nik_name, user_name)) или (False, comment)
get_user([outsource = False])

определение текущего пользователя, заполнение полей artists_keys экземпляра класса.

Параметры:

  • outsource (bool)- с точки зрения удалённого пользователя или нет.
  • return -(True, (nik_name, user_name, outsource, {данные артиста - словарь})) или (False, comment)
edit_artist(key_data[, current_user=False])

редактирование данного (инициализированного) экземпляра артиста.

Параметры:

  • keys (dict) - данные на замену - nik_name - не редактируется, поэтому удаляется из данных перед записью.
  • current_user (artist) - редактор - залогиненный пользователь, если False - то будет создан новый экземпляр и произведено get_user() (лишнее обращени е к БД) . если force - проверки уровней и доступов не выполняются.
  • return - (True, ‘Ok!’) или (False, comment)
get_working_tasks(project_ob[, statuses=False])

получение словаря задач (назначенных на артиста) по именам.

Параметры:

  • project_ob (project) - текущий проект
  • statuses (bool / list) - False или список статусов задач
  • return (True, {task_name: task_ob, …}) или (False, comment)
get_reading_tasks(project_ob[, status=False])

получение словаря задач (назначенных на артиста в качестве проверяющего) по именам.

Параметры:

  • project_ob (project) - текущий проект
  • status (bool/ str) - если не False, то возвращает только задачи соответствующие данному статусу.
  • return (True, {task_name: task_ob, …}) или (False, comment)

Note

add_stat(), read_stat(), edit_stat() - не правились, возможно будут удалены.