Class Artist(studio)

class edit_db.artist

level = „studio“

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

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

Examples

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

import edit_db as db

artist = db.artist()
username

Никнейм (уникально).

Type:str
user_name

Юзернейм в текущей системе, откуда сделан вход.

Type:str
password

Пароль в текстовом виде.

Type:str
first_name

Имя.

Type:str
last_name

Фамилия.

Type:str
date_joined

Дата и время регистрации.

Type:timestamp
date_joined_to_studio

Дата и время регистрации в студии.

Type:timestamp
email

Email

Type:str
phone

Номер телефона

Type:str
specialty

Специализация.

Type:str
profile

Словарь специфичных данных, как ссылки на портфолио и прочее.

Type:dict
outsource

Статус аутсорса: 0 или 1

Type:int
workroom

Список id отделов, в которых сосотоит артист.

Type:list
level

Уровень, значение из edit_db.studio.USER_LEVELS

Type:str
share_dir

Путь к директории обмена пока не используется

Type:str
status

Статус активности пользователя, значение из ['active', 'none'] - Возможно перейти на булевские значения?.

Type:str
working_tasks

Словарь списков имён назначенных задач, (по именам отделов ?).

Type:dict
checking_tasks

Словарь списков имён назначенных на проверку задач, (по именам отделов ?).

Type:dict
add_artist(keys, registration=True, cloud=False)

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

Параметры:
  • keys (dict) – Словарь по ключам edit_db.studio.artists_keys, обязательные поля - username и password.
  • registration (bool, optional) –
    • Если =*True* - произойдёт заполнение полей edit_db.studio.artists_keys экземпляра класса, поле user_name будет заполнено.
    • Если =*False* - поля заполняться не будут, поле user_name - останется пустым.
Результат:

(True, „Ok!“) или (False, comment).

Тип результата:

tuple

edit_artist(keys, current_user=False)

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

Примечание

Для django редактирует только параметры модели edit_db.models.StudioMember и группы данной студии (django.contrib.auth.models.Group).

Параметры:
  • keys (dict) – данные на замену - username - не редактируется, не зависимо от того передан или нет.
  • current_user (edit_db.artist, str, optional) – редактор - залогиненный пользователь, если False - то будет создан новый экземпляр и произведено edit_db.artist.get_user() (лишнее обращени е к БД) . если передать 'force' - проверки уровней и доступов не выполняются.
Результат:

(True, «Ok!») или (False, comment)

Тип результата:

tuple

get_artists_for_task_type(task_type, workroom_ob)

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

Параметры:
Результат:

(True, [сортированный список имён артистов], {словарь артистов по именам}) или (False, comment).

Тип результата:

tuple

get_reading_tasks(project_ob, status=False)

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

Параметры:
  • project_ob (edit_db.project) – Проект для которого ищется список задач.
  • status (str) – Возвращает задачи соответствующие данному статусу, если не передавать - то все статусы.
Результат:

(True, {task_name: task_ob, …}) или (False, comment)

Тип результата:

tuple

get_user(outsource=False, cloud=False)

Определение текущего пользователя, инициализация текущего экземпляра. В случае sqlite3 происходит чтение БД, в случае django - чтение файла edit_db.studio.USER_DATA_FILE_NAME.

Параметры:
  • outsource (bool) – С точки зрения удалённого пользователя или нет.
  • cloud (bool, str) – Определяет используемый интерфейс хранения данных. Если False то - локальная схема sqlite3.
Результат:

если cloud = False: (True, (username, user_name, outsource (bool), {данные артиста - словарь})) или (False, comment). если cloud = django: (True, „ok!“) или (False, comment).

Тип результата:

tuple

get_working_tasks(project_ob, statuses=False)

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

Параметры:
  • project_ob (edit_db.project) – Проект для которого ищется список задач.
  • statuses (list) – Фильтр по статтусам (список статусов). Если не передавать - то все статусы.
Результат:

(True, {task_name: task_ob, …}) или (False, comment)

Тип результата:

tuple

init(username, new=True, cloud=False)

Инициализация по имени, возвращает новый, или инициализирует текущий экземпляр.

Параметры:
  • username (str) – Ник нейм артиста.
  • new (bool) – Если True - возвращает новый инициализированный экземпляр, если False то инициализирует текущий экземпляр.
  • cloud (bool, str) – Определяет используемый интерфейс хранения данных. Если False то - локальная схема sqlite3.
Результат:

  • если new= True - экземпляр класса edit_db.artist,
  • если new= False - (True, „Ok!“) или (False, comment)

Тип результата:

edit_db.artist, tuple

init_by_keys(keys, new=True, cloud=False)

Инициализация по словарю (без чтения БД), возвращает новый, или инициализирует текущий экземпляр.

Параметры:
  • keys (dict) – Словарь по edit_db.studio.artists_keys
  • new (bool, optional) – Если True - возвращает новый инициализированный экземпляр, если False то инициализирует текущий.
  • cloud (bool, str) – Определяет используемый интерфейс хранения данных. Если False то - локальная схема sqlite3.
Результат:

  • если new= True - экземпляр класса edit_db.artist,
  • если new= False - (True, „Ok!“) или (False, comment)

Тип результата:

edit_db.artist, tuple

is_member()

Проверка является ли данный юзер, в составе данной студии. Для случая смены студии или перелогинивания пользователя.

Внимание

Пустая процедура.

Результат:(True, „Ok!“) или (False, commit)
Тип результата:tuple
login_user(username, password, cloud=False)

Логин юзера.

Если cloud =*False*: Перезаписывает текущее имя пользователя пк, в соответствие указанного ник-нейма, при этом проверит и удалит данное имя пользователя из под других ник-неймов. Произойдёт заполнение полей edit_db.artist.artists_keys экземпляра класса.

Если cloud =*django* или edit_db.studio.studio_database = django: * логинится через сайт, записывая файлы cookie и user_data. * заполнит поля текущего экземпляра.

Параметры:
  • username (str) – Никнейм.
  • password (str) – Пароль
  • cloud (bool, str) – Определяет используемый интерфейс хранения данных. Если False то - локальная схема sqlite3.
Результат:

Если cloud =*False*: (True, (username, user_name)) или (False, comment). Если cloud =*django* или edit_db.studio.studio_database = django: (True, {user_data}) или (False, comment).

Тип результата:

tuple

read_artists(keys, objects=True)

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

Параметры:
  • keys (dict) – словарь по ключам edit_db.studio.artists_keys - критерии для поиска, если ``keys``= „all“ вернёт данные по всем артистам.
  • objects (bool, optional) – Если True - вернёт экземпляры edit_db.artist, если False - словари по edit_db.studio.artists_keys.
Результат:

(True, [артисты - словари или экземпляры]) или (False, comment)

Тип результата:

tuple

read_artists_of_workroom(wr, active=True, objects=True)

Чтение списка артистов отдела.

Параметры:
  • wr (str, uuid.UUID, edit_db.workroom) – id отдела или экземпляр объекта отдела.
  • active (bool, optional) – Если True то вернётся список только активных атристов.
  • objects (bool, optional) – Если True - вернёт экземпляры edit_db.artist, если False - словари по edit_db.studio.artists_keys.
Результат:

(True, {ключи - username, значения - артисты (словари или экземпляры)}) или (False, comment).

Тип результата:

tuple

test_unicum(name, cloud='django')

Проверка уникальности имени. Применяется при выборе имени для регистрации нового пользователя.

Параметры:
  • name (str) – Проверяемое имя.
  • cloud (str) – Тип облака.
Результат:

Если имя уникально: (True, comment) или: (False, comment)

Тип результата:

tuple