{ "data" : [ { "gid" : "1185035033109793", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-09-15T16:33:24.860Z", "created_at" : "2020-07-17T11:11:29.976Z", "due_at" : null, "due_on" : "2020-07-17", "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2020-09-15T16:33:25.009Z", "name" : "Giftoman обновить страницу KPI", "notes" : "Обновить табличную логику на странице с KPI, райзнуть платформу до 10.0, перейти на autoSizableCells", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1185035033109793", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1183548197148369", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-07-07T16:16:13.730Z", "created_at" : "2020-07-07T15:05:02.969Z", "due_at" : null, "due_on" : "2020-07-07", "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : true, "hearts" : [ { "gid" : "1183566005805312", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "liked" : true, "likes" : [ { "gid" : "1183566005805312", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2020-07-07T16:16:13.845Z", "name" : "Heado / Taskmessenger / Правки ч2", "notes" : "1. Нет кнопки возврата в список задач по дню из задачи\n2. Почему то приложение не дает войти на ролях дивизионный менеджер или топ. Пишет \"Серверная ошибка, нет данных для отображения. Проверяли на penina@vita-samara.ru, naumenko@vita-samara.ru, evgeniy.lisenkov@mympr.ru. На андроиде ок.", "num_hearts" : 1, "num_likes" : 1, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1183548197148369", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1183367883159283", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-07-06T17:45:14.052Z", "created_at" : "2020-07-06T16:16:44.502Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2020-07-06T17:45:14.165Z", "name" : "Heado / Taskmessenger / Багофиксы", "notes" : "1. Двойные нотификации о поставленной задаче\n2. Html теги в описании задач\n3. Плейсхолдер для поля ввода комментария", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1183367883159283", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136874597566833", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:13.707Z", "created_at" : "2019-08-23T08:35:23.915Z", "due_at" : null, "due_on" : "2019-09-02", "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:14.136Z", "name" : "Heado / Переход на Firebase Crash", "notes" : "Сабж", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136874597566833", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "701905766191098", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-06-14T16:40:07.675Z", "created_at" : "2018-06-07T11:17:45.160Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2018-06-14T16:40:07.728Z", "name" : "[iOS] фильтровка продавцов на экране выполнения KPI", "notes" : "Сделать фильтрацию продавцов только относящихся к текущей группе/магазину", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/701905766191098", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200530119392296", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:18.078Z", "created_at" : "2021-06-29T10:39:24.797Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:18.322Z", "name" : "Обновление ссылки политики конфиденциальности в плее", "notes" : "сменить на https://heado.ru/legal/personal_data_policy", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200530119392296", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200530119392299", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-07-19T14:45:44.467Z", "created_at" : "2021-06-29T10:40:19.751Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2021-07-19T14:45:44.755Z", "name" : "Обновление ссылки политики конфиденциальности в сторе", "notes" : "сменить на https://heado.ru/legal/personal_data_policy", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200530119392299", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "690794151229845", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-05-30T18:41:25.382Z", "created_at" : "2018-05-30T04:08:46.287Z", "due_at" : null, "due_on" : "2018-05-30", "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : true, "hearts" : [ { "gid" : "690794108034825", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "liked" : true, "likes" : [ { "gid" : "690794108034825", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2018-05-30T18:41:25.494Z", "name" : "ЛК iOS/Дашборд/Выбор периода", "notes" : "период» начальная дата всегда остается текущий день>\nЕсли нужно просмотреть данные за несколько дней в будущем через «Выбрать период» - приложение не выбирает начальную дату, а оставляет текущий день – соответственно суммируются и планы и факты по будущим дням и за сегодня. Пример – хотим просмотреть за 1 июня, выбираем 1 июня как начало и конец периода, в приложении показываются данные с сегодняшнего дня (30 мая) по 1 июня включительно – суммируются планы, прогнозы, факт за сегодня. Задача от директоров магазинов – они просматривают планы на ближайшие дни через приложение\n", "num_hearts" : 1, "num_likes" : 1, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/690794151229845", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "642158265686328", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-05-01T08:37:35.631Z", "created_at" : "2018-04-19T17:21:35.237Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2018-05-01T08:37:35.738Z", "name" : "[iOS][Dashboard] Push to content-available = 0", "notes" : "в версии 2.9.0 добавлена поддержка пушей без content-available = 1\n\nспека сообщения старая, но добавляется пара новых полей\n\n{\n \"alert\": {\n \"title\": \"Требуется действие\",\n \"body\": \"В точке №3, ул. Хипстеровского, 90210, перестал продаваться фалафель с хумусом. Артикул NaN\"\n },\n \"badge\": 1, // *\n \"extra\": {...} // **\n}\n\n* - в виду того, что пуш теперь не приводит к запуску приложения в фоне - невозможно сменить бейдж с количеством непрочитанных сообщений. Надо либо присылать всегда хотя бы 1, ну или вычислять точное число на сервере\n\n** - пейлоад для extra старый\n\n*** - из сообщения надо убрать content-available", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/642158265686328", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "208780962590060", "name" : "dashboard", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "642158265686327", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-04-30T19:08:07.685Z", "created_at" : "2018-04-19T17:20:03.628Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2018-04-30T19:08:07.919Z", "name" : "[iOS][Dashboard] Добавить недельные фильтры в рейтинги", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/642158265686327", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "208780962590060", "name" : "dashboard", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "654942111980318", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-04-30T18:35:35.577Z", "created_at" : "2018-04-30T18:17:43.350Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785059646190", "name" : "(no section)", "resource_type" : "section" } } ], "modified_at" : "2018-04-30T18:35:35.662Z", "name" : "[iOS][Dashboard] уменьшить шрифт в имени аккаунта в слайд меню", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/654942111980318", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "208780962590060", "name" : "dashboard", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "164231894816415", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:08.481Z", "created_at" : "2016-08-05T03:10:37.291Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:08.632Z", "name" : "iOS / Партнёрское приложение / Переход на единые показатели", "notes" : "- Исходные требования тут https://app.asana.com/0/547756917302/154682065766547\n-- По факту переходим над подсистему дашбордного стэка + доп фильтрация по продавцам. И это всё в одном флаконе без разделения на KPI и \"Общие показатели\" - всё в пункте \"Показатели\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/164231894816415", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "12476952559102", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "183570128405238", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:07.949Z", "created_at" : "2016-09-20T03:09:04.501Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:08.129Z", "name" : "iOS / Партнёрское приложение / Рейтинг магазинов", "notes" : "- помним об https://app.asana.com/0/547756917302/167191121010134\n- Появляется новый пункт: \"Рейтинг магазинов\" (после Показателей)\n-- Фиксированный отчёт #59\n-- Фильтрация по range \n-- Драфт интерфейса в приложении\n--- Сборка такая же как в вебе, только появляется расцветка план-факта как показано в макете (цвета в макете неточные, поэтому пользуй свой светофор ессно)\n---- round(fact/plan)*100 >= 100 - зелёное\n---- round(fact/plan)*100 in [80,100) - оранжевое\n---- round(fact/plan)*100 < 80 - красное\n--- если plan == 0, то процентилей не показываем вовсе\n-- Хидер рейтинг-таблицы по-хорошему нужно фиксить", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/183570128405238", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "12476952559102", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "204508613176227", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:06.609Z", "created_at" : "2016-10-31T08:49:20.258Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:06.758Z", "name" : "iOS / Ошибка / Детальный просмотр проказателя вылетает", "notes" : "-Таки не смог решить проблему серверно\n-- https://app.raygun.com/crashreporting/hruwbk/errors/1698855862/\n- Возникает при просмотре детальной статистики по показателю за период больший дня.\n- Первой жалуется семья  vasilevskiydv@elite-parfum.ru / sARD9kf3\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/204508613176227", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "868668733395", "name" : "Ошибка", "resource_type" : "tag" }, { "gid" : "12476952559102", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "256887714998638", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:05.407Z", "created_at" : "2017-01-30T05:43:24.255Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:05.547Z", "name" : "Рейтинги торговых точек / v2 / Переход к фискированным заголовкам и endless скроллу", "notes" : "- Левая (торговые точки) и заголовки становятся фиксированными\n-- Левую фиксируем по ширине, чтобы не ползало и чтобы влезало 1.5-1.7 показателя\n-- Название торговой точки враппим и троеточим, если не влезает\n- Пагинацию отчёт уже поддерживает - endless или баттон \"Показать ещё\"\n- Соответственно, теперь нет ограничения на 3 показателя - показываем в скроллере все показатели.\n- поддержка лэндскейпа", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/256887714998638", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "12476952559102", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "273128502152143", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:04.866Z", "created_at" : "2017-02-15T06:03:53.084Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:05.023Z", "name" : "Рейтинги торговых точек / Переход на cpa[].ratio", "notes" : "- сообразно https://app.asana.com/0/201687425733823/270453731473804\n-- Реализовать на мобильной части", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/273128502152143", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "12476952559102", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "302272184133464", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:04.030Z", "created_at" : "2017-03-24T04:09:45.218Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:04.192Z", "name" : "Рейтинги торговых точек / Переключатель группировки", "notes" : "- Меняется схема отображения фильтра периода - теперь его отображаем с префиксом \"За\" \n-- Убрать из выбора \"Недели\"\n- Появляется перключатель групп (по схеме вебных рейтингов)\n-- приходит в profile().ratingGroups со спекой https://app.asana.com/0/201687425733823/277902321901929\n--- Могут быть пустыми, тогда выбор групп не отображаем\n--- Спека отправки параметров отчёта такая же - group: \n-- Сохранять последний выбранный переключатель групп в персист.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/302272184133464", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "308590107404200", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:02.773Z", "created_at" : "2017-04-03T09:31:27.077Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:03.312Z", "name" : "Общие показатели / Проблема с необщими KeyMetrics", "notes" : "- Похоже keymetrics уровня \"магазины\" не подцепляются к торговым точкам этих магазинов\n- bukreeva.m@kopdom.ru / 79624014935", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/308590107404200", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "309876409493372", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:02.773Z", "created_at" : "2017-04-04T03:22:00.832Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:02.932Z", "name" : "Keymetrics / Расширение датасета зон / Привязка shopId метрик", "notes" : "- Расширил датасет zones - добавил shopId\n- При построении отображаемых метрик в закладке нужно допривязывать метрики зоны SHOP (zoneType == 2) по shopId зоны.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/309876409493372", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "311810892465257", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:01.601Z", "created_at" : "2017-04-06T03:22:30.049Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:01.764Z", "name" : "Рейтинги продавцов / Фильтрация по зонам", "notes" : "- Та же \"закладочная\" схема со стандартным фильтром зон", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/311810892465257", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "302283465855888", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:56.224Z", "created_at" : "2017-03-24T04:26:57.280Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:56.700Z", "name" : "Чаты ", "notes" : "- Драфтовый дезинг тут https://drive.google.com/drive/u/0/folders/0B4nLFB2L9e54YVBwVWZwZEQ5c1E\n- Но я склоняюсь к тому, чтобы взять https://codecanyon.net/item/chatty-ios-universal-chat-app-template-swift/16141898\n-- Глянь на варианты и приступим через Шубина в случае чего. \n- В плане минимум нужны основные интерфейсы чата:\n-- Список контактов/групп\n-- Чат-окно\n-- Информация о \"собеседнике\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/302283465855888", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "46149969251447", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2015-08-20T03:14:57.069Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-04-21T03:51:54.197Z", "name" : "Получение истории чата (оперативной и расширенной)", "notes" : "- chat( chat, lastid = false)\n-- chat : \n-- lastid: <задний фильтрующий ид сообщения>\n- OUT\n- [ \n-- persons: [ {\n--- id:,\n--- name: \n-- },.. ],\n-- messages: [ {\n---- id: ,\n---- contact: ,\n---- type: \n---- body: ,\n---- ts: \n- },... ]\n\n#UPD.1.\n-- contacts >> persons (для соблюдения общей нотации)\n\n#UPD.2.\n- Коррекция persons - теперь объекты id/name", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "302283465855888", "name" : "Чаты ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/46149969251447/46149969251447", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "46149969251454", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2015-08-20T03:15:33.726Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-03-24T04:27:25.020Z", "name" : "Отсылка сообщения / Создание чата", "notes" : "- messageSend( mid, body, opts)\n-- mid : \n-- body : \n-- opts: \n- OUT\n-- {\n--- id: ,\n--- chatId: \n--- ts: \n-- }\n\n#UPD.1.\n-- Проверять на клиенте, что сообщение длиной не больше 1024 символа (сервер тоже отдаст ошибку, но так гораздо лучше)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "302283465855888", "name" : "Чаты ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/46149969251454/46149969251454", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "46149969251450", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2015-08-20T03:15:17.804Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-04-14T06:26:47.136Z", "name" : "Получение списка контактов", "notes" : "- contacts()\n- OUT\n- {\n-- groups: [\n--- { id : , name: }\n-- persons: [\n--- { \n---- id: ,\n---- group: ,\n---- status: <0 - offline, 10 - online>,\n---- lastonline: ,\n---- profile: {\n----- name: ,\n----- pic: ,\n----- role: \n----- phone: ,\n----- ... /* e.t.c. extendible list of params */\n---- }\n---} , ... ]\n-- chats: [ {\n--- id: ,\n--- name: ,\n--- persons: [ ,...], \n--- lastmessage: {\n---- id: ,\n---- contact: ,\n---- ts: ,\n---- type: ,\n---- body: ,\n--- }, ...\n-- ]\n- }", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "302283465855888", "name" : "Чаты ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/46149969251450/46149969251450", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "324472094191357", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2017-04-21T05:33:10.559Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-04-24T06:14:11.802Z", "name" : "APN регистрация", "notes" : "- Добавил на бой два метода\n-- apnRegister(registrationId, deviceId = 0) - добавляет токен registrationId для устройства deviceId \n-- apnRemove(deviceId = 0)\n--- Удаляет текущие сохранённые токены для deviceId\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "302283465855888", "name" : "Чаты ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/324472094191357/324472094191357", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "319341437518435", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:55.625Z", "created_at" : "2017-04-17T07:23:34.848Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:55.791Z", "name" : "Автоматический разлогин на дополнительных ошибках", "notes" : "-Логаутить так же, если приходят ошибки [ UNKNOWN_USER(-33000), INVALD_SESSION(-35006)]\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/319341437518435", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "356063620311673", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:54.114Z", "created_at" : "2017-06-05T10:00:52.851Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:54.298Z", "name" : "Выполнение планов", "notes" : "- Запросная схема по 95-му отчёту - всё то же самое https://app.asana.com/0/201687425733823/346641528345990\n- Мокап https://xd.adobe.com/view/ca1b09b4-4b54-4397-b1b4-665e6ae8d489\n- Новый пункт меню \"Выполнение планов\" (после \"Общих показателей\")\n-- icon: chart-areaspline\n-- Верхние \"Периоды\" - закладки (или индикаторы - как удобней)\n--- При первом клике - выбираем и показываем \"вид\" (0-ой и 1-ой колонки), \n--- При втором клике на нулевой закладке выбираем дату (range[to])\n--- Заголовчная часть внутренних \"колонок\" (План/Факт/%/Отклонение) - активная и переключает сортировки (умолчание такое же как на дашборде)\n---- Индикатор выбора пока отображаем только на самом элементе колонки\n--- Слайд влево-вправо переключает \"закладки\" как обычно\n--- Первый верхний ряд (row[].order == 0) зафиксирован как заголовок\n--- Позицию скроллера нужно сохранять между \"закладками\"\n---- Скроллер \"endless\"\n---- \"Подтяжка вниз\" - обновление запроса\n\n<#UPD.1>\n- мнемо для user.assets флага: performance\n- Добавляем флаг для показа/прятания\n\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/356063620311673", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "387499376956883", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:16:27.939Z", "created_at" : "2017-07-18T04:32:28.318Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:16:28.323Z", "name" : "Сигналы в статистику / Запуск приложения", "notes" : "- метод status(event, data)\n- При старте приложения или возобновлении работы шлём запрос { method: status, params: { event : 1 } }\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/387499376956883", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "7403887251262", "name" : "mobile", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "463219863290630", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-09-10T15:34:03.214Z", "created_at" : "2017-10-26T05:03:54.040Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-09-10T15:34:03.865Z", "name" : "Общие показатели / Выбор фильтра в закладке / Быстрый поиск", "notes" : "- Если кол-во элементов > одного полного скролла (> x2 от высоты контейнера по кол-ву элементов) , то добавлять сверху списка поле \"быстрого поиска\" с предфильтрацией списка\n\n#UPD.1.\nhttps://xd.adobe.com/view/efd8917e-e1d8-4de8-927a-9233c0e45ff9", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/463219863290630", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "594450088018678", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:33.376Z", "created_at" : "2018-03-15T10:40:03.140Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:33.539Z", "name" : "Общие показатели / Выбор периода / Недельные шорткаты", "notes" : "- Добавить дополнительные шорткаты периодов\n-- Эта неделя\n-- Прошлая неделя \n- Сортировка как водится по значимости периода. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/594450088018678", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "730630234427373", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:51.564Z", "created_at" : "2018-07-03T03:46:33.160Z", "due_at" : null, "due_on" : "2018-08-22", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:51.751Z", "name" : "Переход на FCM", "notes" : "- https://firebase.google.com/docs/cloud-messaging/ios/client\n- Отпиши идентификатор проекта и аппсторе, надо создать FCM ключи для iOS\n- Добавил в pAPI методы fcmRegister( registrationId [,deviceId]) ( и на всякий случай fcmRemove(uid [,deviceId [, registrationId] ) )\n- В общем-то, для начала хватит, payload в message: {\n-- body: \n-- title : <просто для спеки>\n-- icon: \n-- sound: \n}", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/730630234427373", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "457376420809493", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:16:29.979Z", "created_at" : "2017-10-19T06:20:28.338Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:16:30.211Z", "name" : "Проект \"Тикеты\" ", "notes" : "- Статусы сообщений\n- Микроформы в сообщениях\n- Отсылка действий по микроформам", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/457376420809493", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "457377095930132", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2017-10-19T06:21:24.168Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-12-11T19:09:50.991Z", "name" : "Отсылка статуса \"Сообщение принято\"", "notes" : "- По факту принятия: messageReceived ( $msgId )\n\n#UPD.1.\n- Добавил в пейлоад пуша msgId - это уникальный идентификатор сообщения, поэтому надо передавать его в messageReceived() вместо id, который увязан с chatId.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "457376420809493", "name" : "Проект \"Тикеты\" ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/457377095930132/457377095930132", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "7403887251262", "name" : "mobile", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "496230370096158", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2017-12-06T05:37:20.063Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-12-15T22:07:17.885Z", "name" : "Микроформы в сообщениях и действия", "notes" : "- Чаты вперёд!\n- Вместе с прошлой моделью сообщений в них chat() начали приходить дополнительные поля\n-- msgid (глобальный идентификатор сообщения BIGINT)\n-- actions (доступный набор действий для сообщения)\n---  Пример: \"actions\": [ \n {\n                        \"id\": \"accept\", /* Идентификатор действия */ \n                            \"title\": \"Принять\", /* Заголовок кнопки действия */\n                            \"enabed\": false, /* Статус кнопки - доступна к нажатию или нет */\n                            \"selected\": true /* Признак выбранного действия */ \n                        },\n                        {\n \"id\": \"reject\",\n                            \"title\": \"Нет на складе\",\n                            \"eventId\": 21, /* Опциональный идентификатор события по действию - пока резервед */\n                            \"enabed\": false,\n                            \"selected\": false\n                        }\n                    },\n-- Интерфейс микроформы https://xd.adobe.com/view/8934b09e-ad69-4385-9425-a23a9ea95366/\n--- Предусматриваемое кол-во действий : 1-3\n-- При нажатии на кнопку вызываем pAPI.messageAction( msgid, action )\n--- msgid = chat.message.msgid\n--- action = chat.message.actions => ключ действия нажатой кнопки\n--- метод вернёт модель сообщения как в chat().messages, то бишь обновляем состояния кнопок", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "457376420809493", "name" : "Проект \"Тикеты\" ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/496230370096158/496230370096158", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744094396222300", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:16:31.991Z", "created_at" : "2018-07-16T04:13:31.023Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:16:32.153Z", "name" : "Проект \"Задачи\" / Газон", "notes" : "- Новый интерфейс таск-менеджера ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/744094396222300", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "744094396222304", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-10T08:44:56.071Z", "created_at" : "2018-07-16T04:13:31.286Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-08-10T08:44:56.950Z", "name" : "Общие реформы проекта \"Задачи\"", "notes" : "- В меню https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A456&scaling=min-zoom\n-- Переносим пункт \"Контакты\" - в контекстное меню в Чаты\n-- Появляется пункт \"Задачи\" - каунтеры из ticketSummary() за сегодня events[].done/events[].failed\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744094396222304/744094396222304", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744094396222306", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-20T20:31:20.607Z", "created_at" : "2018-07-16T04:13:31.464Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-08-20T20:31:20.828Z", "name" : "Задачи (Инбокс)", "notes" : "- https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A376&scaling=min-zoom\n- https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A282&scaling=min-zoom\n- В Инбкосе отображается сгруппированная по хронологии и видам задач количественная информация о задачах\n-- В каунтерах инбокса пишем /\n-- если есть priority == true, то рисуем иконку алерта\n-- По умолчанию отображаем саммари на сегодня\n-- С помощью нижнего плейсхолдера идём по истории по неделям\n-- Фильтр - дейтпикер, позволяет выбрать произвольный период\n- pAPI.ticketSummary(filters) \n- IN.filters: { \"dateFrom\": ,\"dateTo\": },\n- OUT: {\n- \"items\": [ // Раскладка по хронологии (по дням) и по доступным видам задач\n     { \n\t   \"day\": ,\n\t   \"events\": [\n\t      {\n\t\t    \"eventId\": ,\n\t\t\t\"title\": <Название>,\n \"priority\": ,\n\t\t\t\"failed\": ,\n\t\t\t\"done\": ,\n\t\t\t\"inprocess\": \n\t\t  },..\n\t   }\n\t   \n\t }\n  ]\n- \"total\": {\n   \"failed\": ,\n   \"done\" : ,\n   \"inprocess\": \n }\n}\n\n#UPD.1.\n- См. мокапы: добавлен общий каунтер (в скобках у названия) для каждого раздела = inprocess+done+failed\n\n#UPD.2\n- См. мокапы - появилась \"пустая\" страничка", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744094396222306/744094396222306", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744094396222308", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-23T20:19:33.696Z", "created_at" : "2018-07-16T04:13:32.088Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-03T07:26:16.038Z", "name" : "Интерфейс работы с Тикет-пакетами", "notes" : "- https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A529&scaling=min-zoom\n- Тикет-пакет - это список задач, объединённый по признаку общих: Вида задачи, Торговой точки, Даты выполнения и Исполнителя\n-- Поэтому шапка максимаьно общая, в списке самих задач только статусы и их брифы в сокращённом виде (<= 3 задачи с возможностю развернуть)\n-- При клике на шапку пакета переходим в детальный интерфейс тикет-пакета https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A660&scaling=min-zoom\n--- Здесь запросов не делаем, т.к. модель уже получена\n-- При удержании на элементе списка - интерфейс переключается в выделение элементов списка https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A824&scaling=min-zoom\n--- Это работает как для общего списка Тикет-пакетов, так и для детального интерфейса просмотра Тикет-пакета\n--- в контекстном меню выбора - список доступных действий по пакету, выполняется для всех выбранных\n-- Можно вызвать контекстное меню на отдельный задачу - те же действия из actions\n-- При клике на Задачу переходим в интерфейс детальной информации по Задаче\n- pAPI.ticketBatches(filters)\n- Получает данные для выбора вида и хронологии из Инбокса\n- IN.filters: { \"eventId\" : , \"dateFrom\": }\n- OUT: [\n  {\n<#UPD.3> id: \n    \"created\": ,\n\t\"address\": ,\n\t\"assignee\": { \n\t    \"id\" : ,\n\t    \"name\": ,\n\t\t\"role\": \n\t},\t\n\t\"duedate\": ,\n\t\"karma\": ,\n\t\"priority\": ,\n\t\"tickets\" : [\n\t   {\n          \"id\": ,\n\t\t  \"text\": ,\n\t\t  \"status_id\": ,\n<#UPD.5>\n\t\"actions\": [\n\t  {\n\t   \"id\" : ,\n\t   \"title\": ,\n\t  }\n\t]\n\n\t   },..\n\t]\n  },..\n]\n\n- Действие с Задачами:\n-- Сервер определяет легитимность действия для каждой задачи и может просто не применить действие на задаче, на котором это действие уже невозможно, поэтому здесь никаких проверок не делаем.\n-- pAPI.ticketAction(ticketsId, actionId [, params = false])\n-- IN.ticketsId = [,...]\n-- IN.actionId = \n-- IN.params (опционально) = <Объект FFU>\n-- OUT:  {\n--- \"tickets\": [ { // Обновлённое состояние зацепленных задач\n----    \"id\": ,\n----\t\"text\" : ,\n----\t\"status_id\" : \n  } ],...\n}\n\n- Кодировка статусов:\n-- const STATUS_PREPARING = 0;\n-- const STATUS_SENT = 5;\n-- const STATUS_DELIVERED = 10;\n-- const STATUS_REMIND_LATER = 15;\n-- const STATUS_SEEN = 20;\n<#UPD.4>\n-- const STATUS_ALERTED = 21\n\n-- const STATUS_REJECTED = 25;\n-- const STATUS_ESCALATED = 30;\n-- const STATUS_FAILED = 40;\n-- const STATUS_USER_RESOLVED = 50;\n-- const STATUS_RESOLVED = 100;\n-- const STATUS_DELETED = 150;\n\n\n\n\n#UPD.1.\n- status >> status_id\n\n#UPD.2. \n- Мап status_id в иконки. В датасетах будут приходить только эти статусы на данном этапе\n-- const STATUS_SENT => sent_icon\n-- const STATUS_DELIVERED => delivered_icon\n-- const STATUS_REMIND_LATER => prorogued_icon\n-- const STATUS_SEEN = seen_icon\n-- const STATUS_REJECTED => declined_icon;\n-- const STATUS_ESCALATED => escalated_icon;\n-- const STATUS_FAILED => undone_icon;\n-- const STATUS_USER_RESOLVED => done_icon;\n-- const STATUS_RESOLVED => done_icon;\n-- const STATUS_DELETED = deleted_icon;\n\n#UPD.3.\n- batch теперь получил id\n- Появился метод ticketBatch($batchId) - модель элемента идентична\n-- Переход на детальный экран батча по заголовку пакета из списка или по \"Показать ещё N элементов\"\n\n#UPD.4\n-- Добавлен доп-статус STATUS_ALERTED (21) - ему надо поставить в соответствие иконку алерта (треугольник с восклицательным знаком)\n\n#UPD.5.\n- actions перенесены из батчевой модели в модель тикета\n-- При мультиселекте брать экшоны из первого выбранного тикета.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744094396222308/744094396222308", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744094396222310", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-10T08:44:56.071Z", "created_at" : "2018-07-16T04:13:32.257Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-08-10T08:44:56.237Z", "name" : "Детальная информация по Задаче", "notes" : "- Карточка задачи\n- pAPI.ticket(ticketId)\n- IN.ticketId: \n- OUT: {\n    \"id\": ,\n \"title\" : ,\n    \"text\": ,\n    \"created\": ,\n\t\"address\": ,\n\t\"assignee\": { \n\t    \"id\" : ,\n\t    \"name\": ,\n\t\t\"role\": \n\t},\t\n\t\"duedate\": ,\n\t\"karma\": ,\n\t\"priority\": ,\n\t\"status\": {\n \"id\" : ,\n \"title\" : ,\n \"datetime\": ,\n }\n\t],\n\t\"actions\": [\n\t  {\n\t   \"id\" : ,\n\t   \"title\": ,\n\t  }\n\t]\n}\n\n#UPD.1. \n- Добавил statusdate для даты текущего статуса - пускай будет\n#UPD.2.\n- Первели status в модель вообще.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744094396222310/744094396222310", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744094396222312", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-10T08:44:53.400Z", "created_at" : "2018-07-16T04:13:32.420Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-08-10T08:44:53.525Z", "name" : "История задачи", "notes" : "- Тут всё просто - список вешек\n- https://www.figma.com/proto/fz22CSD1NDYhxvy04lUc4rCu/Tasks_iOs?node-id=362%3A192&scaling=min-zoom\n- pAPI.ticketHistory(ticketId)\n-- IN.ticketId = \n-- OUT: [ {\n--- \"id\": \n--- \"title\" : ,\n--- \"user\" : {\n---- \"id\" : ,\n---- \"name\" : ,\n---- \"role\" : \n--- },\n--- \"datetime\" : ,\n--- \"current\" : \n } ]", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744094396222312/744094396222312", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "782006182531534", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-28T17:12:13.376Z", "created_at" : "2018-08-17T04:34:09.506Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-08-28T17:12:13.641Z", "name" : "Кастомные пуши по задачам", "notes" : "- в data у нас есть event, который по умолчанию \"message\" - это чатовый пуш, так уж повелось, но появились новые event:\n-- ticketbatch\n--- Наряду с ним в data приходит ticketBatchId (bigint)\n--- Если получаем, то пишем mbody и отсылаем в экран ticektBatch(ticketBatchId)\n-- ticket\n--- Наряду с ним в data приходит ticketId (bigint)\n--- Если получаем, то пишем mbody и отсылаем в экран ticekt(ticketId)\n\n#UPD.1\n- В ticketbatch и ticket добавил msgId (они всё равно приходят в чаты)\n-- Соответственно, на эти пуши тоже надо слать соответствующий messageReceived(msgId)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/782006182531534/782006182531534", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "786087020075967", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-08-28T17:44:12.353Z", "created_at" : "2018-08-20T11:15:38.066Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-08-28T17:44:12.956Z", "name" : "Кастомный action для сообщений в чатах", "notes" : "- Появляется новый экшон в сообщении\n-- actions = [ \n { id: \"link:\" + <\"ticket\",\"ticketbatch\">, // link:ticket, link:ticketbatch\n eventId: \n \"title\":\"Перейти\", \n \"selected\": ,\n \"status\": <1(enabled)|0(disabled)>, \n } \n ]\n-- Как может быть понятным из названия - при нажатии должны перейти в соответствующий params.type интерфейс: тут пока либо ticket(params.eventId), либо ticketbatch(params.eventId) ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744094396222300", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/786087020075967/786087020075967", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "815362992669294", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:49.627Z", "created_at" : "2018-09-11T04:36:48.824Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:35:39.102Z", "name" : "Задачи / Комментарии & Вложения", "notes" : "Вторая итерация: Комментарии и вложения\n- Мокап тут: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=1434%3A926 \n-- В серых кружках - да, аватарка, берётся из author.image\n-- На этом этапе не смотрим на тулбар и фиды, это в следующем\n-- Кнопку SHOW_HISTORY убрать (сам экран пока оставляем в проекте), будем обкатывать вариант с интеграцией истории в портянку комментов. \n\n- Модель ticket() расширяется\n-- На верхнем уровне появляется параметр \"comments\": [ {\n--- id: bigint,\n--- type: <\"statement\",\"status\">, \n---- В мокапе показано два стиля в портянке комментария. \"серый-мелкий\" типа \"Петров завершил задачу\" - это элемент истории \"status\", а остальное с аватарками - это \"statement\"\n---- Для статусов контекстного меню редактирования нет, они неактивны. Идентификаторы статусов так же фиктивны по отношению к комментам.\n--- author: {\n---- id : bigint,\n---- name : string(100),\n---- role : string(40)\n---- image: string(255) // URI\n---- },\n--- datetime: ,\n--- text: string(2048)\n--- attachments: [ {\n---- title: string(100),\n---- type: <\"file\", \"image\", \"video\", \"audio\">, //Реализуем пока file и image\n---- size: uint\n---- uri: \n---- thumb_uri : \n--- }, ...]\n--- },...\n-- ] \n\n#UPD.1.\n- attachments расширили до size+thumb_uri", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/815362992669294", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "815362992669298", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-09-11T04:36:49.248Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-10-22T06:18:40.540Z", "name" : "CRUD комментария", "notes" : "- ticketAddComment( ticketId:bigint, text:string(2048) [, attachments])\n-- IN: \n--- ticketId : идентификатор тикета\n--- text: комментарий UTF-8\n--- attachments: [ ,... ] - массив файловых ключей\n-- OUT { // Модель коммента\n--- id : bigint,\n---  type: \"statement\",\n---  author : {\n----  id : bigint,\n----  name : string(100),\n----  role : string(40),\n----  image : string(255) // URI аватарки\n--- }\n--- text: string(2048) \n--- \"attachments\" : []\n-- }\n\n-- ERRORS: \n--- Не существует тикета, \n--- Недостаточно прав, \n--- Текст слишком большой\n\n- ticketRemoveComment( commentId: bigint )\n-- IN: \n--- commentId : идентификатор комментария\n-- OUT: \n--- result: \"ok\"\n-- ERRORS: \n--- Не существует, \n--- Недостаточно прав\n\n- ticketUpdateComment(commentId:bigint, text:string(2048))\n-- IN \n--- commentId: идекнтификатор комментария\n--- text: текст комментария в UTF-8\n-- OUT\n--- result: \"ok\"\n-- ERRORS: \n--- как в ticketAddComment, только с commentId, \n--- Текст слишком большой\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "815362992669294", "name" : "Задачи / Комментарии & Вложения", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/815362992669298/815362992669298", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "815362992669300", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-09-11T04:36:49.486Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-10-22T06:19:00.330Z", "name" : "Общий файловый CRUD ", "notes" : "- fileCreate(name:string(128), type:<\"file\", \"image\", \"video\", \"audio\">, size:uint ) \n-- IN:  \n--- name: Полное название файла (с расширением)\n--- type: медиа-тип файла\n--- size: размер файла в байтах <= 10MB\n-- OUT:\n--- { \n--- publicKey:string(128), - ключ файла\n--- download_uri:string(255), - download URI (MULTIPART POST)\n--- upload_uri:string(255) - upload URI\n--- }\n-- ERRORS: \n--- Недостаточно прав, \n--- Слишком большой файл\n\n- загрузку производим мультипартом по upload_uri с передачей в параметрах &sid=\n-- файл в поле 'file'\n\n- fileDelete(publicKey) - удаляет файл\n-- IN\n--- publicKey: файловый ключ\n-- OUT\n--- {result:\"ok\"}\n-- ERRORS\n--- Файл не существует\n--- Недостаточно прав", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "815362992669294", "name" : "Задачи / Комментарии & Вложения", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/815362992669300/815362992669300", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "879985917428680", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-10-24T18:06:54.912Z", "created_at" : "2018-10-24T03:30:54.724Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-10-24T18:06:55.078Z", "name" : "Оснастить ячейки рейтингов границами", "notes" : "- Изображение приложено. Цвет бордера - #e1e1e1 (как у фона заголовков)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/879985917428680", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "894023363308969", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-12-17T10:26:43.557Z", "created_at" : "2018-11-02T02:51:41.751Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-12-17T10:26:43.820Z", "name" : "Нижний тулбар", "notes" : "- Нижний тулбар должен быть доступен на основных экранах:\n-- Показатели\n-- Выполнение планов\n-- Рейтинги (Продавцы и Магазины)\n-- Задачи\n- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A0\n-- Начальный вид в \"Газон / Основа\" - кадр \"Toolbar_simple_it1\"\n-- Слева-направо переходы по шорткатам:\n--- Общие показатели\n--- Задачи\n--- События \n--- Профиль\n\n-- События снабжаются тикером новых событий. \n--- Для начала пойдёт без каунтера, просто синяя точка, в случае присутствия нового события.\n---- Для этого, думаю, проще хранить lasteventId и сравнивать\n--- Нужно обсудить откуда удобней брать оперативно эту информацию", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/894023363308969", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "879985917428688", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-10-24T18:06:48.060Z", "created_at" : "2018-10-24T03:31:22.925Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-10-26T07:10:23.101Z", "name" : "Расширить валидатор логина", "notes" : "- Если был )\n- кроме просто e-mail-паттерна может быть ещё две:\n-- email/email (my@account.ru/his@account.com)\n-- word/email (my/his@account.com)\n-- Ну и просто email\n- explode по '/' , trim частей и обратная сборка с разделителем", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/879985917428688", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "894023363308988", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-12-04T20:21:31.915Z", "created_at" : "2018-11-02T02:54:57.157Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2018-12-04T20:21:32.130Z", "name" : "Экран фида событий", "notes" : "- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=1994%3A5054\n-- Внизу, всё, что с префиксом Feed_\n- метод pAPI.feed([offset =0 ,count  = 10, eventsId = false])\n- IN\n-- offset (опционально): отступ от свежих \n-- count (опционально): кол-во получаемых записей (по умолчанию 10)\n-- eventsId (опционально): массив идентификаторов событий (на будущее)\n- OUT data: {\n-- id: ,\n-- datetime: ISO8601\n-- author: {\n--- id: ,\n--- name: ,\n--- role: ,\n--- image: \n-- },\n-- text: ,\n-- target: {\n--- \"id\": \n--- \"name\" : \n--- \"type\" : \n<#UPD.1>\n--- \"parentType\": \n--- \"parentId\" : \n\n\n-- } \n- } \n\n- Сборка текста: Author.name text target.name\n- При клике - переход на соответствующий экран target.type + target.id\n\n#UPD.1\n- В target добавлены parentType, parentId. \n-- Если они null, то роутим как есть в target[type/id] экран\n-- Иначе, \n--- для comment parentType = 'ticket', parentId = ticket.id, роутим в интерфейс тикета, и скроллим до коммента target.id.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/894023363308988", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "904244648846592", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:16:33.906Z", "created_at" : "2018-11-09T06:10:09.819Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:16:34.358Z", "name" : "Общие показатели / Сортировка показателей ", "notes" : "https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=2271%3A0\n- Появляется иконка сортировки показателей\n-- При её нажатии раскрываются варианты сортировки\n--- По убыванию приоритета\n---- Это стандартный вариант по metrics.order\n--- По убыванию отставания прогнозов показателей \n---- Это сортировка по plan-predict DESC\n--- По убыванию отставания фактов показателей\n---- Это сортировка по plan_today-y DESC\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/904244648846592", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1107520139336083", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:16:37.814Z", "created_at" : "2019-01-31T04:37:37.608Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:38:46.440Z", "name" : "Задачи / Проект \"Действия\"", "notes" : "Доформализовали схему взаимодействия с задачами до разумного, поэтому приступаем.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1107520139336083", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1107520139336087", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-02-04T17:42:03.636Z", "created_at" : "2019-01-31T04:37:37.967Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-02-04T17:42:03.829Z", "name" : "Предварительный этап для Действий / Действие \"Открыть\"", "notes" : "Спека действий остаётся в силе, приходя в векторе actions для каждого тикета\nНо со стороны приложения это перестаёт быть прозрачным набором пунктов меню для выполнения ticketAction():\n- Есть ограниченный предопределённый набор действий, для которых реализуется свой флоу:\n-- action.id =1 (Отчитаться)\n-- action.id = 2 (Поручить)\n-- action.id = 3 (Открыть)\n- Эти действия могут приходить в векторе actions тикета, те, что не предопределены - игнорируются.\n- В этой задаче нужно реализовать флоу для действия \"Открыть\" (по факту в тикетах может прийти до следующего этапа реализации только оно)\n-- доп. параметры действия:\n-- href = \n-- При активации, соответственно, переходим по этому URL, добавив к нему GET-параметр ticketId=, в браузер\n--- Учтите, там могут быть свои GET-параметры, поэтому добавляйте по всей строгости.\n\n#UPD.1.\n- Мультивыбор для \"Открыть\" на пакете задач\n-- Позволяем делать мультивыбор\n-- Но в контекстном меню \"Открыть\" в этом случае задизейблено, т.к. поведение функции неочевидно, таким образом дадим рефлекс пользователю, что Открыть на мультивыборе не работает.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1107520139336087/1107520139336087", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1108974024418113", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-02-13T21:07:34.013Z", "created_at" : "2019-02-11T04:02:10.098Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-02-13T21:07:34.206Z", "name" : "Небольшая улучшалка Действий, пока готовят iOS-лейауты", "notes" : "- При просмотре задачи в её подножии выделено место под шорткаты действий (их там на два действия)\n-- https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A1062&scaling=min-zoom\n-- Если одно (Сейчас будет приходить только \"Открыть\"), то, соответственно, один шорткат справа", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1108974024418113/1108974024418113", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "7403887251262", "name" : "mobile", "resource_type" : "tag" }, { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1110302967201052", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-03-06T20:16:04.333Z", "created_at" : "2019-02-19T06:13:56.504Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-18T10:01:00.141Z", "name" : "Действие \"Отчитаться\"", "notes" : "- id действия == 1\n- https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=2383%3A0\n-- В фигме для iOS - это \"Задачи / Действия 2\"\n-- Лучше запустить просмотр прототипа прежде определения с ориентацией\n- В прототие реализовано больше функций, поэтому ограничивать буду описанием конкретной задачи:\n-- В дропдаунах у действий появились иконки - их нужно хардкоднуть по идентификатору действия\n-- В просмотре конкретной задачи для скорости работы пользователя и акцента его внимания помимо контекстного меню появляются шорткаты в подножии описания. Там место для первых двух действий из списка (на самом деле их будет всегда не больше двух, но это как ремарка для возможных вопросов).-. При нажатии на \"Отчитаться\" показывается соответствующая форма, предварительные данные для которой берутся из:\n--- ticket.reasons = [ {//Причины\n---- id : \n---- title: <Название причины VARCHAR(100)>,\n---- icon: \n---- routes: [ // Получатель - если один, то дропдаун зафиксирован\n----- [ id: , \n----- title: <Название маршрута varchar(255)>],...\n---- },...\n--- ]\n--- Формат работы с аттачментами такой же как с комментариями\n-- Сабмит производится в метод ticketReport(ticketId, reasonId, routeId, text, attachments = [])\n--- IN: \n---- ticketId = ticket.id\n---- reasonId = ticket.reasons[selected].id,\n---- routeId = ticket.reasons[selected].routes[selected].id,\n---- text = Комментарий\n---- attachments = [Формат работы с аттачментами такой же как с комментариями]\n--- OUT : { <Как при ticketAddComment, только type == \"report\" > } // Пока можно не парсить\n--- По сабмиту возвращаемся в пакетный список тикетов со снекбаром \"Отчёт отправлен\" и перечитываем список \n\n#UPD.1.\n- При отчёте в тикет добавляется коммент с новым типом 'report', обрабатывать его пока как тип status по визуалу с текстом: $name + \"отчитался по задаче: \"+$comment\n\n#UPD.2\n- Меакульпа, reasons перенёс в actions[].reasons, теперь они стали зависимыми, т.к. всё-таки хотят разные наборы причин для действий. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1110302967201052/1110302967201052", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1113485203272610", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-03-18T19:21:21.681Z", "created_at" : "2019-03-11T06:13:17.193Z", "due_at" : null, "due_on" : "2019-03-21", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-03-18T19:21:21.848Z", "name" : "Статусы и иконки", "notes" : "- В экранах ticketBatches, ticketBatch переходим с Ticket.status_id на Ticket.status :\n-- {\n\t\t\"id\" : \n\t\t\"title\" => ,\n\t\t\"datetime\" => ,\n\t\t\"priority\"=>,\n\t\t\"reasonId\"=>\n--  }\n- https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=2383%3A0 / Действия 2\n- Иконку для Ticket.status.id == 50 - нужно сменить иконку на иконку действия \"Отчитаться\".\n- Далее, у нас появляются хардкод-иконки детализации статуса справа (см. макет)\n-- Инфа берётся из Ticket.status.reasonId, иконки из Frame3 (скрин приложил)\n--- 0 - Нет иконки\n--- 1 - Приоритет (иконка алерта)\n--- 10 - Нет на складе\n--- 11 - Нет спроса\n--- 255 - Причина не установлена \n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1113485203272610/1113485203272610", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1113485203272611", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-03-22T21:27:22.716Z", "created_at" : "2019-03-11T06:28:38.745Z", "due_at" : null, "due_on" : "2019-03-22", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-03-22T21:27:22.894Z", "name" : "Участники", "notes" : "- https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3005%3A0\n-- В экране Ticket Появляется строчка с аватарками \"Участники\", изображения берём из Ticket.followers\n-- При клике на строчку открываем диалог\n-- Если owner.isme == true, то доступна фурнитура добавления и удаления:\n--- метод удаления: \n---- ticketFollowersRemove( $ticketId, userIds : Array of bigint )\n--- метод добавления:\n---- ticketFollowersAdd($ticketId, userids: Array of bigint)\n--- Получение пользователей для вертушки добавления новых Участников:\n---- ticketStaffList($ticketId):\n----- [ { id: , \"name\": ,\"role\":,\"image\":},.. ] \n- Соответствующие спеки в Ticket:\n            \"followers\": [\n                {\n                    \"id\": ,\n                    \"name\": \"Игорь Петров\",\n                    \"role\": \"Зональный директор\",\n                    \"image\": \"https://ui-avatars.com/api/?rounded=true&background=4035a2&name=%D0%98%D0%B3%D0%BE%D1%80%D1%8C+%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2\"\n                },\n                {\n                    \"id\": ,\n                    \"name\": \"Вера Дулина\",\n                    \"role\": \"Директор магазина\",\n                    \"image\": \"https://ui-avatars.com/api/?rounded=true&background=45e654&name=%D0%92%D0%B5%D1%80%D0%B0+%D0%94%D1%83%D0%BB%D0%B8%D0%BD%D0%B0\"\n                },...\n            ],\n            \"owner\": {\n                \"id\": ,\n                \"isme\": \n            },\n- ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1113485203272611/1113485203272611", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119160760651994", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:44.740Z", "created_at" : "2019-04-18T04:20:26.477Z", "due_at" : null, "due_on" : "2019-05-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-21T14:53:44.910Z", "name" : "Действие \"Назначить\"", "notes" : "- id действия == 2\n- спека уже стандартная из действия \"Отчитаться\"\n-- Сабмит производится в метод ticketAssign(ticketId, reasonId, routeId, text, attachments = [])\n--- IN: \n---- ticketId = ticket.id\n---- reasonId = ticket.actions[ACTION_ASSIGN].reasons[selected].id,\n---- routeId = ticket..actions[ACTION_ASSIGN].reasons[selected].routes[selected].id,\n---- text = Комментарий\n---- attachments = [Формат работы с аттачментами такой же как с комментариями]\n--- OUT : { \"assignee\": { \"name\": <ФИО назначенного>,\"role\":<Роль назначенного>,\"id\": } } // Пока можно не парсить\n--- По сабмиту возвращаемся в пакетный список тикетов со снекбаром \"Задача назначена \" + OUT.assignee.name + ' ( ' + OUT.assignee.role.' )' и перечитываем список.\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119160760651994/1119160760651994", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119160760651996", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:42.099Z", "created_at" : "2019-04-18T04:32:10.741Z", "due_at" : null, "due_on" : "2019-04-30", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-21T14:53:42.247Z", "name" : "Действие \"Отметить выполнение\"", "notes" : "- id действия == 50\n- Нужен диалог подтверждения \"Задача будет отмечена как выполеннная (Продолжить)\"\n-- Сабмит производится в метод ticketMarkAsComplete([ticketIds])\n--- IN: \n---- ticketIds = Array of ticket.id\n--- OUT : data: { } возвращает полную модель тикета в data если в массиве был один элемент, либо сокращённую (для ticketBatches). если больше одного\n--- По сабмиту возвращаемся в пакетный список тикетов со снекбаром \"Задача отмечена как выполненная\" и перечитываем список.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107520139336083", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119160760651996/1119160760651996", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1114243606198326", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-03-14T18:38:54.358Z", "created_at" : "2019-03-14T10:08:26.423Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-03-14T18:38:54.522Z", "name" : "Задачи / Просмотр задачи / Убрать date_created", "notes" : "- Иконку календаря с датой убрать, и на её место поставить будильник с due_date ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1114243606198326", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1114940797133336", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-27T19:52:25.022Z", "created_at" : "2019-03-19T09:46:44.525Z", "due_at" : null, "due_on" : "2019-05-23", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-05-27T19:52:25.269Z", "name" : "Задачи / Показ списка батчей / Раскрытие батча", "notes" : "- Если в ticketBatches пришёл один батч, то раскрывать список задач полностью, без сокращения с show all", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1114940797133336", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118408982025908", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-04-13T17:02:28.988Z", "created_at" : "2019-04-12T10:26:58.174Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-04-13T17:02:29.178Z", "name" : "Задачи / Просмотр / Убрать \"карма-индикатор\"", "notes" : "- Иконку Р со значением долой. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1118408982025908", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118589757673636", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:16:40.898Z", "created_at" : "2019-04-15T03:22:27.174Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:39:05.875Z", "name" : "Пакет обновлений по фидбэку #201904-1", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1118589757673636", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1118589757673640", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:50.680Z", "created_at" : "2019-04-15T03:22:27.643Z", "due_at" : null, "due_on" : "2019-05-01", "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-21T14:53:50.758Z", "name" : "Задачи / Комментирование&Отчёты / Работа с открытием клавиатуры", "notes" : "- При открытии клавиатуры нужно сокращать хидер задачи до двух строчек, как это показано в исходниках (см вложение)\n- Клаву не спрятать, однажды открыв коммент - надо бы это порешать, например при клике на хидер задачи.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118589757673636", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118589757673640/1118589757673640", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118589757673642", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-27T19:52:22.786Z", "created_at" : "2019-04-15T03:22:27.937Z", "due_at" : null, "due_on" : "2019-05-27", "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-27T19:52:22.961Z", "name" : "Целевые нотификации при открытом приложении", "notes" : "Нужно отображать нотификации, если приложение открыто и целевой экран и объект нотификации отличается от того, где находится пользователь.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118589757673636", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118589757673642/1118589757673642", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118590257736523", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:47.281Z", "created_at" : "2019-04-15T04:08:28.959Z", "due_at" : null, "due_on" : "2019-05-08", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-03T07:11:31.004Z", "name" : "Стиль для отчёта", "notes" : "-https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=2383%3A0 (в самом низу)\n- Новый стиль если comment[].type == report, относится ко всему блоку (вместе с аттачментами)\n- В комменте появилось поле reasonId - это для иконки причины, если false, то нет.\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118589757673636", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118590257736523/1118590257736523", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119332406772597", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:39.536Z", "created_at" : "2019-04-19T09:25:17.357Z", "due_at" : null, "due_on" : "2019-05-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-21T14:53:39.681Z", "name" : "Коррекция стилей для статусных комментариев report и assign", "notes" : "- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A17 (в самом низу)\n- Наряду с остальными, появляется Message.type == assign (Назначить)\n-- Для него стиль \"синенький\", который был до этог назначен на type = report\n-- Автотекст: \"назначил(а) задачу\"\n- Для Message.type == report теперь зелёненький\n-- Автотекст: \"отправил(а) отчёт\"", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118589757673636", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119332406772597/1119332406772597", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119477483898157", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:36.450Z", "created_at" : "2019-04-22T11:16:41.767Z", "due_at" : null, "due_on" : "2019-05-07", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-21T14:53:36.590Z", "name" : "Переход со статус-иконок на цветовую и шрифтовую индикацию", "notes" : "- https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3082%3A143\n- Отказываемся от статус-иконок (которые слева) - высвобождается немного места для текста.\n- Вместо этого появляется кодировка статусов через шрифты и цветные ярлыки. Status\n-- status.is_read ==0 >> Жирный (Не прочитано)\n-- status.is_read == 1>> Простой (Прочитано)\n-- = 21 - Оранжевый ярлык\n-- IN (25,30,40) - Красный ярлык\n-- = 100 - Зелёный ярлык", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118589757673636", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119477483898157/1119477483898157", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119477483898172", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:33.751Z", "created_at" : "2019-04-22T11:17:34.670Z", "due_at" : null, "due_on" : "2019-05-08", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-05-21T14:53:33.938Z", "name" : "Рефакторинг шапки пакета и тикета", "notes" : "- https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3082%3A143\n- Шрифт названия ТТ притушаем\n- Шрифт исполнителя задачи черним\n- Около исполнителя появляется аватарка >> assignee.image\n- Иконка будильника изменяется", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118589757673636", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119477483898172/1119477483898172", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1126928230472828", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2019-07-22T20:11:49.403Z", "created_at" : "2019-06-13T06:19:46.777Z", "due_at" : null, "due_on" : "2019-06-24", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-12-26T09:58:23.798Z", "name" : "Задачи / Поддержка тегов в комментариях и описаниях задач", "notes" : ", ,, , ,
, ,
\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1126928230472828", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "302272184133465", "name" : "ios", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119785421933438", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-05-21T14:53:31.296Z", "created_at" : "2019-04-24T05:50:06.360Z", "due_at" : null, "due_on" : "2019-05-07", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-05-21T14:53:31.529Z", "name" : "Задачи / Выделение статус \"Прочитано\"", "notes" : "- Рефакторим этот момент, т.к. это User-specific + flow статус, так что придётся его вынести из статуса тикета\n-- status.is_read = [1(Прочитано), 0 ( Не прочитано) ]\n-- Соответственно, завязываем индикацию на него, уходим от Ticket.status", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1119785421933438", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1127089786496195", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2019-07-22T20:11:39.667Z", "created_at" : "2019-06-14T03:43:55.948Z", "due_at" : null, "due_on" : "2019-07-09", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-07-22T20:11:44.369Z", "name" : "Задачи / Список пакетов задач / Трекер Выполнения дисциплины", "notes" : "https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3163%3A0\n- Вверху списка пакетов появляется фиксированный блок с индикацией выполнения дисциплины\n-- Справа отображаем текущий период\n-- Слева - индикатор\n--- Состояние индикатора определяется по TicketBatch().discipline = {warning_severity: , administrative_severity: }\n---- discipline.warning_severity относится к \"смайлу\" и имеет четыре состояния:\n----- 0 - зелёный смайл\n----- 1-2 - первые две жёлтые риски с жёлтым смайлом\n----- 3 - красная риска с красным смайлом\n---- discipline.administrative_severity относится к красному каунтеру справа и от него зависит смайл:\n----- 0 - красного i-каунтера нет\n----- >=1 красный i-каунтер и смайл красный \"злой\"\n\n- При нажатии на индикатор переходим на disciplineTrack(eventId)\n-- eventId - это идентификатор дисциплины\n-- OUT data (двухмодельное _RECORD, _PERIOD в зависимости от type ): [ {\n--- type: < TRACK_TYPE_WARNING(1) - Предупржедение (_RECORD), TRACK_TYPE_WARNING(2) - Административное оповещение (_RECORD), TRACK_TYPE_PERIOD_START(250) - Открытие периода (_PERIOD), TRACK_TYPE_PERIOD_END(251) - Закрытие периода (_PERIOD)>,\nTRACK_TYPE_OK_STUB(252) - Зелёный смайл с заголовком\"Всё в порядке\" и текстом \" текстом \"Продолжайте в том же духе\"\"\n---- <Модель _RECORD>\n---- severity : \n---- reason : \n---- ts: <персональная метка дата-времени>\n---- batchId: \n---- \n---- <Модель _PERIOD>\n---- period : { \"from\" : , \"to\": } \n---- actual : \n---- \n--- },... ]\n\n- В фиде будет возвращаться список, из элементов _RECORD и _PERIOD - _PERIOD будут \"обрамлять\" _RECORD, т.е. сначала всегда гарантированно _PERIOD_START, потом _RECORD предупреждения и/или административные оповещения, потом _PERIOD_END и т.д.\n- Заголовки _RECORD статичные по type (Брать из мокапа)\n- Сортировка as is, вверху будут самые свежие. \n-- period.actual == ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1127089786496195", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1127089786496201", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2019-06-14T03:43:57.036Z", "due_at" : null, "due_on" : null, "followers" : [ ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-06-14T03:43:57.225Z", "name" : "", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1127089786496195", "name" : "Задачи / Список пакетов задач / Трекер Выполнения дисциплины", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1127089786496201/1127089786496201", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1131694951655056", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2019-07-31T19:34:20.275Z", "created_at" : "2019-07-17T13:22:09.866Z", "due_at" : null, "due_on" : "2019-07-22", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-07-31T19:34:29.463Z", "name" : "Задачи / Действие \"Открыть\" / Расширение возможностей для открытия экранов приложения", "notes" : "- в href теперь может передаваться следующая конструкция local://<название экрана>?\n-- <Название экрана из валидируемого списка, конечно>\n-- по JSON-object спеке, например:\n--- eventId=12&filter.uid=112232323 >> { eventId:12, filter: { uid : 112232323 } }\n- Соответственно, если в начале встречено local://, и название экрана попадает в валидные - открываем экран с указанными параметрами.\n- Реализация перехода на экран:\n-- disciplineTrack(eventId, filter.uid)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1131694951655056", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1140599894776674", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-10-10T18:13:36.993Z", "created_at" : "2019-09-19T03:26:48.083Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-10-10T18:13:37.587Z", "name" : "Giftoman + Heado / Добавление меток времени на фото перед отправкой", "notes" : "- Датавремя берём из exif, если нет, то фоллбэк до датавремя создания файла с добавлением \" *\"\n- В нижнем левом углу. Меры привожу в пикселах, т.к. на канвасе фотки по идее нет необходимости создания адаптивных лейаутов, главное чтобы видно было:\n-- Y-m-d H:i:s (ISO 8601 на 24-х часовом времени)\n-- Отбивка от левого и нижнего края: 50px\n-- Medium. 24px. Белый поверх чёрного, смещённого на 3px вправо и 3px вниз ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1140599894776674", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1135958506488713", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-09-01T15:27:44.703Z", "created_at" : "2019-08-16T14:14:09.897Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-09-01T15:27:44.969Z", "name" : "Heado / Добавление обращения в поддержку на экран логина", "notes" : "Экран логина – добавить по аналогии с андройд-приложением кнопку-ссылку «Вопрос? Напишите нам» и ведем на ссылку http://support.heado.ru/ticket \nПС – проверить, сворачивается ли в айфоне клавиатура, чтоб было видно ссылку-кнопку в нижней части экрана? Будет ли возможность нажать на кнопку", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1135958506488713", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136107904448706", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-09-02T04:55:49.008Z", "created_at" : "2019-08-19T07:09:58.484Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2019-09-02T04:55:49.235Z", "name" : "HEADO / ссылка на privacy policy", "notes" : "Для приложений HEADO - новая ссылка на Прайвеси полиси - https://heado.ru/privacypolicy надо обновить", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136107904448706", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084204", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-01-20T15:12:54.129Z", "created_at" : "2019-10-16T10:52:21.367Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-01-20T15:12:54.361Z", "name" : "Изменение источника название роли пользователя", "notes" : "в profile/initSession теперь roleTitle, мапы на role больше держать не надо.\n- Текущий Giftoman и Heado ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084204", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1131634760502463", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-05-25T11:26:00.270Z", "created_at" : "2019-07-17T06:38:38.345Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:40:55.329Z", "name" : "Heado / Декомпозиция приложений", "notes" : "На выходе мы должны получить два самостоятельных приложения с рабочими названиями Heado Dashboards и Heado Taskmessenger\n\nHeado Dashboards ( Хедо Дашборды)\n- Это текущий Giftoman Business, откуда выпилены Задачи (вместе с нижним баром и прочими навигациями). Остаются только показатели, рейтинги и прочее.\n- Иконки и сплэшскрин в пути\n\nHeado Taskmessenger ( Хедо Бизнес Коммуникатор )\n- Макет основных интерфейсов https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3235%3A0\n- Логин-скрин с Heado Dashboards\n- Иконки и сплэшскрин у дизайнера\n- Основной акцент на навигации а-ла Slack, туда интегрируется TicketSummary(), который по всей видимости перейдёт в messengerSummary() с дополнительным обвесом\n- Появляется экран настроек Пользователя (под него отдельный проект и обвес API)\n- Остальное - это Задачи как большей частью и было с небольшими коррекциями блоков ( due date сделали более компактными, участников в линеечку\n\n#UPD.1.\n- Для разделения пушей:\n-- fcmRegister(registrationId, deviceId) >> deviceId += '::'+ [\"heado/dashboards\",\"heado/taskmessenger\"]", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1131634760502463", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1132430787081860", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-03-29T18:07:30.534Z", "created_at" : "2019-07-23T04:50:32.046Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-03-29T18:07:30.836Z", "name" : "Heado / Taskmessenger / Навбар", "notes" : "Набор динамических данных для навбара\n\nЧетыре блока:\n- Каналы (channels)\n- Мои задачи (каунтеры из tasks)\n- Задачи подчинённых (каунтеры из subordinate_tasks)\n-- Соответственно, при переходе на tikcetBatches() передаём в filter.type = [1 (для моих),2 (для подчинённых)]\n- Чаты (chats)\n\nСпека\n- pAPI.messengerSummary()\n-data : {\n\"tasks\": [ // Раздел \"Мои задачи\"\n                {\n                    \"eventId\": \"2\", //Идентификатор раздела при переходе на ticketFeed\n                    \"inprocess\": \"19\", // Каунтер раздела, если 0 - то каунтер не показываем\n                    \"title\": \"Критические продажи\" // Название раздела\n                },\n                {\n                    \"eventId\": \"3\",\n                    \"inprocess\": \"2\",\n                    \"title\": \"Выполнение планов\"\n                },\n                {\n                    \"eventId\": \"4\",\n                    \"inprocess\": \"0\",\n                     \"title\": \"Закрытие магазина\"\n                },...\n            ],\n\"tasks\": [ // Раздел \"Задачи коллег\"\n                {\n                    \"eventId\": \"2\",\n                    \"inprocess\": \"19\", // Каунтер задач\n                    \"title\": \"Критические продажи\"\n                },\n                {\n                    \"eventId\": \"3\",\n                    \"inprocess\": \"2\",\n                    \"title\": \"Выполнение планов\"\n                },\n                {\n                    \"eventId\": \"4\",\n                    \"inprocess\": \"0\",\n                     \"title\": \"Закрытие магазина\"\n                },...\n            ],\n            \"channels\": [ // Каналы, пока заглушки >> pAPI.messengerChannel(id)\n                {\n                    \"id\": \"verylongguid100-12345\",\n                    \"name\": \"Общий\",\n                    \"hasNewMessages\": false,\n                    \"private\": false\n                },\n                {\n                    \"id\": \"verylongguid100-23456\",\n                    \"name\": \"Служба поддержки\",\n                    \"hasNewMessages\": false,\n                    \"private\": false\n                }\n            ],\n            \"chats\": [ // Чаты - тоже >> pAPI.messengerChat(id)\n                {\n                    \"id\": \"verylongguid100-234234\",\n                    \"name\": \"Кристина Каримова (вы) \",\n                    \"hasNewMessages\": false,\n                    \"online\": true\n                }\n            ]\n}", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1132430787081860", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084208", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-05-10T17:37:57.253Z", "created_at" : "2019-10-16T11:00:42.017Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-05-10T17:37:57.745Z", "name" : "Heado / Taskmessenger / Навигатор по контактам", "notes" : "Heado / Taskmessenger / Навигатор по контактам https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3235%3A0 (Invite/Search people#)\nЭтот экран будет использоваться для создания чата и канала/приглашение в канал.\n- В случае с чатом - сингл-селект\n- В случае с каналом - мультиселект\n- метод messengerContacts(filters)\n-- IN: filter: (optional)\n--- currentUserId : ,\n--- searchString: \n-- OUT: data {\n   current: Текущий пользователь \"отсчёта\", чьё окружение показывается (отображается в заголовке экрана)\n            {    // Стандартная модель контакта-\"участника\"\n\t\t        id : ,\n                name : \n                role : ,\n                image : \n            },\n   heads: [ // Начальники\n           {    // Стандартная модель контакта-\"участника\"\n\t\t        id : ,\n                name : \n                role : ,\n                image : \n            },\n   ],\n   siblings: [ //Одноуровневые\n { },..\n   \n   ],\n   \n   subordinates: [ //Подчинённые\n { },...\n   \n   ],\n\n found: [ // Найденные по filter.searchString\n {},.. \n ]\n   \n} \n\n- В случае, если блок heads/siblings/subordinates/found - пустые - их не отображаем.\n-- Кейз, когда никого нет возможен только при поиске, там отдельный экран \"ничего не найдено\"\n- В спеку добавил блок found, дабы упростить режим общего поиска\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084208", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084210", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-05-10T17:38:01.092Z", "created_at" : "2019-10-16T11:01:58.357Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-05-10T17:38:01.697Z", "name" : "Heado / Taskmessenger / Создание чата", "notes" : "- При клике на \"+\" в Чатах в Навбаре сразу выходим на Навигацию по Контактам\n-- Сингл-селект и получение contactId\n- метод messengerChatAdd(contactId) // contactId из навигатора по контактам\n-- OUT: Стандартная модель чата messengerChat() (с сообщениями)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084210", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084212", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-09-08T15:32:34.011Z", "created_at" : "2019-10-16T11:02:40.254Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-09-08T15:32:35.138Z", "name" : "Heado / Taskmessenger / Создание канала", "notes" : "- При клике на \"+\" в Чатах в Навбаре: Мокап #NewChat\n- Метод messengerChannelAdd(name, participants, purpose = '', private = false ) // participants набирается из навигатора по контактам\n-- IN: \n--- name : - Название канала\n--- participants: - Список выбранных участников\n--- purpose: - Назначение(Описание) канала\n--- private : \n-- Стандартная модель канала messengerChannel()", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084212", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084226", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-03-30T18:38:24.837Z", "created_at" : "2019-10-16T11:19:11.626Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-03-30T18:38:25.434Z", "name" : "Heado / Taskmessenger / Канала", "notes" : "- pAPI.messengerChannel(id)\n- IN id: bigint channel[].Id\n- OUT: {\n id : , // Идентификатор\n name: , // Название канала\n description: , // Описание канала\n createdAt : , // Когда создан\n participants_count: , // Количество участников\n notification : , // Статус нотификаций на канале,\n messages: [\n <Модель комментариев из pAPI.ticket()\n ]\n}", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084226", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084218", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-08-24T19:55:27.099Z", "created_at" : "2019-10-16T11:17:05.370Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-08-24T19:55:27.623Z", "name" : "Heado / Taskmessenger / Информация по каналу", "notes" : "- При клике на информацию о канале\n-- Работа с участниками и настройками\n- pAPI.messengerChannelProfile(id)\n- IN id: bigint channel[].Id\n- OUT: {\n id : , // Идентификатор\n name: , // Название канала\n description: , // Описание канала\n createdAt : , // Когда создан\n notification : , // Статус нотификаций на канале\n}", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084218", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084228", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-03-30T18:38:27.348Z", "created_at" : "2019-10-16T11:19:24.785Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-03-30T18:38:27.635Z", "name" : "Heado / Taskmessenger / Чат", "notes" : "- pAPI.messengerChat(id)\n- IN id: bigint chat[].Id\n- OUT: {\n id : , // Идентификатор\n name: , // Имя чата (собеседника) \n createdAt : , // Когда создан\n notification : , // Статус нотификаций на канале,\n buddy: { // Собеседник, по модели participant, если что.\n id: , \n name : , \n role: ,\n image: \n }\n messages: [\n <Модель комментариев из pAPI.ticket()\n ]\n}", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084228", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084220", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-03-17T15:45:36.229Z", "created_at" : "2019-10-16T11:17:29.347Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-03-17T15:48:22.918Z", "name" : "Heado / Taskmessenger / Чат+Канал / Отправка сообщений ", "notes" : "- Отправка сообщений везде по ticketAddComment() :slightly_smiling_face:", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084220", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084230", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-08-24T20:03:24.012Z", "created_at" : "2019-10-16T11:29:23.396Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-08-24T20:03:24.493Z", "name" : "Heado / Taskmessenger / Чат+Канал / ВклВыкл Нотификаций ", "notes" : "- pAPI.messengerSetNotification(id, on) \n-- IN:\n--- id \n--- on : \n-- OUT:\n--- { id : id, on: on }", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084230", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200526871049255", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-07-06T11:43:07.148Z", "created_at" : "2021-06-28T16:11:46.655Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-07-06T11:43:07.255Z", "name" : "Heado / Taskmessenger / Фикс багов", "notes" : " [x] Создание чатов не обновляет список сообщений\n [x] прикладывание аттачей в чате/канале вызывает перезагрузку всех сообщений\n [x] Изображения больше 11 Мб в аттачах\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200526871049255", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084206", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-01-20T15:11:38.218Z", "created_at" : "2019-10-16T10:58:29.259Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-01-20T15:11:38.506Z", "name" : "Heado / Taskmessenger / Сквозной переход в ticket если в пакете одна задача", "notes" : "В принципе, сабж - если задача в списке батча одна, то берём её id и переходим на ticket(id) - это решит проблему вспышек агрессии пользователя в некоторых случаях", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084206", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084214", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-11-26T17:27:14.398Z", "created_at" : "2019-10-16T11:06:34.445Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-11-26T17:27:14.652Z", "name" : "Heado / Taskmessenger / Лента задач", "notes" : "- Метод ticketFeed(filter [, offset=0]) - полный тёзка по спеке ticketBatches, с одним отличием - появился второй аргумент offset, позволяющий загружать задачи порционно (как сообщения в messengerChat)\n- Метод возвращает теперь портянку задач без фильтрации периода по убыванию due date ( т.е. первыми будут приходить актуальные задачи с due date в будущем)\n- Макеты под метод: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10455%3A6 (в самом низу TicketBatch_*)\n-- Индикатор дисциплины переходит в хидер в сокращённом варианте (без левого каунтера административных оповещений - только основной смайл-индикатор)\n-- Часть хидера с названием превращается в активный элемент дропа с выбором режима просмотра (filter.status): [1: Все задачи, 10 - Актуальные задачи (по умолчнию), 20 - Архивные задачи]\n-- Появляются разделители дат и их плавание (как в чатах)\n-- Т.к. ticketFeed() теперь возвращает задачи с due date в будущем, при посадке на экран нужно позиционировать список на первую задачу с due date = Сегодня\n-- Для аффорданса при первой посадке на экран добавляется флоатер (см. макет) возможности скроллить вверх в случе, если в \"будущем\" есть задачи. \n--- Исчезает при достижении верхней границы и больше не появляется в течении сессии работы с экраном\n-- В модели ticket добавился параметр для этого экрана - это archive. Если он == 1, то его элемент нужно притушать как указано в макете (0.7 opacity)\n- Статус: 21 - Архив невыполненных\n- Статус: 22 - Архив выполненных", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084214", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084216", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-10-16T11:10:41.688Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-12-07T04:52:07.989Z", "name" : "Heado БК / Спецификация WebSocket", "notes" : "- Сервер: wss://partner.heado.ru/ws/\n- Общая спека запроса (JSON как водится): {\n-- id: , //Сквозной идентификатор запроса для асинхроннной работы коллбэка на всякий случай\n-- uid: , // Идентификатор Пользователя \n-- action: ,//Команда\n-- params: , // Параметры команды, содержимое варьируется в зависимости от команды,\n-- secret: , sha1(id+uid+action+server_secret) - server_secret = 786b992c7a88216ce5da5b36e8238d49\n }\n\n- Общая спека ответа: {\n-- id: , // Идентификатор запроса, на который следует ответа\n-- status: //Статус\n-- Если status == \"error\": err: { id: , text: }\n}\n\n- Список номеров ошибок по протоколу этого уровня:\n-- 400 : Bad request\n-- 403 : No access to item/command\n-- 404 : Item not found\n-- 500 : Server malfunction\n\n\n- Методы (не буду писать в них шаблонный payload, только изменяющиеся и критичные параметры)\n-- \"register\"\n--- IN: params: []\n--- OUT: status: ok \n-- \"subscribe\"\n--- IN: params: ids [ uid1,...,uidN ]  \n--- OUT:status: ok ,  user_statuses: { uid1: ,...,uidN: } \n\n-- \"unsubscribe\"\n--- IN:params.ids : [ uid1,...,uidN ] <#UPD.4> Перевели на params.ids \n--- OUT:status: ok\n-- \"checkmessage\"\n--- IN:params:[msgId1,...,msgIdN]\n--- OUT: status: ok\n\n-- \"write\" \n--- Шлём params.event=\"start\" после начала печати в инпуте сообщения чата/канала/тикета\n--- Шлём params.event=\"stop\" по истечении 1000мс последнего напечатанного символа\n--- IN: params: {\"id\": ,\"event\":}\n--- OUT: status: ok\n\n\n- Спека WS-сигналов:\n- { \n-- otype:,  //Тип объекта сигнала\n-- oid: ,  // Идентификатор объекта сигнала\n-- action: , //Действие объекта сигнала\n- }\n\n-- USER STATUS : { otype: \"user\", oid: , action: }\n-- MESSAGE STATUS : { otype: \"message\", oid: , action: }\n-- INTERFACE UPDATE: { otype:\"interface\", oid: , action: } \n\n\n-- USER START STOP WRITING:\n--- {otype:\"user\", oid:userId, action: \"write/start\", \"params\": { \"id\": ,\"userName\":} }\n--- {otype:\"user\", oid:userId, action: \"write/stop\", \"params\": { \"id\": ,\"userName\":} }\n\n\n-- Message sent by someone in chat/channel/ticket\n--- { otype:\"message\", oid:, action:\"sent\", params: { uid: , zoneType: 21, zoneId : } }\n\n\n- Флоу на уровне мобильного приложения\n-- При поднятии приложения: Соединяемся с WS, шлём register, шлём subscribe на участников Чатов, где participant ! = Текущий пользователь\n-- При получении данных о статусе пользователя апдейтим соответствующий кружок online/offline на чате/пользователе\n\n#UPD.1.\n-- INTERFACE UPDATE: { otype:\"interface\", oid: , action: } \n-- Example #1. messengerSummary() update:\n { \"otype\":\"interface\",\"oid\":\"summary\",\"action\":\"update\" }\n\n#UPD.2.\n-- USER START STOP WRITING\n--- В стиле слэка, если до интерфейсов дойдёшь.\n\n#UPD.3.\n- Доп. метод\n-- \"write\" \n--- Шлём params.event=\"start\" после начала печати в инпуте сообщения чата/канала/тикета\n--- Шлём params.event=\"stop\" по истечении 1000мс последнего напечатанного символа\n--- IN: params: {\"id\": ,\"event\":}\n--- OUT: status: ok\n\n#UPD.4.\n- subscribe(params.ids)\n\n#UPD.5.\n- Message sent signal: { otype:\"message\", oid:, action:\"sent\", params: { uid: , zoneType: 21, zoneId : } }", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084216", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200150796595605", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2021-04-06T11:46:59.273Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:49:47.366Z", "name" : "Проект изъятия таймзон и рабочего времени", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200150796595605", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1200157602993040", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-04-07T14:30:30.748Z", "created_at" : "2021-04-06T11:47:03.296Z", "due_at" : null, "due_on" : "2021-04-16", "followers" : [ { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-04-07T14:30:31.345Z", "name" : "Heado БК / Автоматическое изъятие таймзоны", "notes" : "В profile() для БК тоже приходит поле user.timezone и работает profileSave(data).\n\n\"Нужно при очередной загрузке профиля проверять, если profile.user.timezone == FALSE, то забирать системную зону и в виде часового смещения со знаком её сохранять в profileSave({ timezone: })\"\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200150796595605", "name" : "Проект изъятия таймзон и рабочего времени", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200157602993040/1200157602993040", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200157603021739", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2021-04-06T11:47:04.417Z", "due_at" : null, "due_on" : null, "followers" : [ ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-04-06T11:47:40.565Z", "name" : "Heado Аналитика / Редактирование профиля / Настройка Рабочего времени", "notes" : "Макет https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=16801%3A22287\nТам указатель \"Настройки рабочего времени\" есть:\n\n Доп. пункт меню \"Настройки рабочего времени\"\n В соответствующем экране у нас есть настройка Таймзоны из https://app.asana.com/0/201687425733831/1200145413210516. Тут я предлагаю отображать Etc/GMT(timezone) соответствие, без городов пока и выбор давать из Etc/*\n Дальше самый смак: \n Верхняя часть чипсов - это радио из пресетов + пункт \"Настроить\"\n При выборе пресета у нас отображается только один набор инпутов от-до с таймпикерами. \n При выборе \"Настроить\" включается нижний набор чипсов-дней недели. Они по умолчанию все включены, как и последующая портянка настроек для каждого дня.\n По возможности, хочется, чтобы Пользователь не мог отключить все дни недели, т.е. последний день неотключаемый. Если нет возможности, то писать вместо списка ошибку \"нужно выбрать хотя бы один день\"\n По умолчанию, если profile.schedule (см. ниже) == null, выставляем пресет \"Все дни\" и from-to с 9:00 до 18:00\n\nТеперь по сборке данных:\n timezone уже понятно - сохраняем по profileSave() в соответствии с https://app.asana.com/0/201687425733831/1200145413210516\n Рабочее время: \n Получение в profile().schedule \n Сохранение в profileSave({schedule: })\n\nscheduleModel = {\n type: <(string of [\"everyday\",\"weekdays\",\"weekends\",\"custom\"]>,\n range: { from: , to: },\n custom: [ \n {\n \"day\": <1..7>,\n \"range\": { \n from: , \n to:\n }\n }\n ]\n}\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200150796595605", "name" : "Проект изъятия таймзон и рабочего времени", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200157603021739/1200157603021739", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1169965198005402", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-07-06T16:16:34.310Z", "created_at" : "2020-04-06T06:19:55.911Z", "due_at" : null, "due_on" : "2020-07-03", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:43:45.822Z", "name" : "Heado БК / Контроль Дисциплин", "notes" : "Мокап: https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3696%3A16240\n- Это \"Задачи\" из вебной партнёрки.\n- В навбаре под блоком задач появляется новый раздел \"Контроль дисциплин\"\n- Источник данных для экрана:\n-- pAPI.messengerDisciplines() - Стейт экрана, наполнение фильтров\n--- OUT: {\n---- cities: [ { id: , name: },...], // Наполнение фильтра \"Города\", По умолчанию - \"Все города\" >> filter.cityId \n---- groups : [ { groupId : , title: , order: },...], // Наполнение фильтра \"Группы сравнения\", По умолчанию элемент с наименьшим order (может быть меньше нуля) >> filter.groupId\n---- ranges: [ { from: , to: , title: , order:   } ,...], // Предопределённые периоды для быстрого выбора, сортировка по order, По умолчанию элемент с наименьшим order (м/б <0) >> range: {from:<>,to:<>,type:\"base\"}\n--- }\n-- Основной для табличных данных: report id = 102\n-- Для графиков: report id = 106\n--- В отчёт графиков идут все те же фильтры, что и для 102\n- В основе иерархическая схема с тремя состояниями экрана: \n-- Дисциплин (level 0)\n--- Посадочный экран Контроля дисциплин\n--- Отчёт возвращает список дисциплин с метриками с пустыми items\n-- Зона контроля (level 10)\n--- Отчёт возвращает один \"корневой\" элемент, по level которого и ориентируемся, со списком items[]\n--- У заголовка экрана два состояния: \n---- При первом погружении, когда первый элемент level == 0, а items.level == 10\n---- Второе погружение, когда первый элемент level == 10, тогда в заголовке появляется сниппет с возможностью вернуться на уровень вверх (по path[count(path)-1].id)\n-- Просмотр задач (level 20)\n--- Отчёт возвращает один \"корневой\" элемент, по level которого и ориентируемся, со списком items[]\n--- В таблице колонки дата (items[].date) и метрика (items[].task_metric), сортируем по sort.ord = [\"object\",\"date\",\"performance\", \"metric\"],\n---- Для уровня 0 - object, performance(* ASC), task_count\n---- Для 10 - object, performance(* ASC), metric\n---- Для 20 - object, date(* ASC), metric\n---- (*) - по умолчанию\n--- В списке: task_performance == 0 >> Красный ярлык, task_performace == 1 >> Зелёный\n--- При нажатии на задачу переходим на ticket(items[].id)\n\n- Спека отчёта 102:\n--  [  \n--     { \n--\t   id: , >> filter.id при запросе по айтему\n--\t   object: , //Название зоны контроля\n--\t   image: , // Аватара для level == 10\n--\t   is_folder: , // Возможность раскрытия элемента\n--\t   path : [  // Цепочка пути \"погружения\" в иерархии, отображается в фильтре и на экранах Зон контроля\n---        [ // Самый верхний элемент пути\n---          'id':, // По спеке id в элементах\n---          'name': //Название элемента\n---        ],.. //Дальше -ниже ],\n--\t   level: <0 - Список дисциплин, 10 - разбивка по зонам контроля, 20 - разбивка по задачам>,\n--\t   task_count: , \n--\t   task_performance: ,\n--\t   task_metric: ,\n--          reason: , //Причина\n--\t   items: [ //Следующий уровень иерархии\n--\t      {\n--\t\t\tid: ,\n--\t\t\tobject: ,\n--\t        image: , // Аватара для level == 10\n--\t\t\tis_folder: ,\n--\t\t\ttask_count: ,\n--\t\t\ttask_performance: ,\n--          level: <0 - Список дисциплин, 10 - разбивка по зонам контроля, 20 - разбивка по задачам>,\n--\t\t\ttask_metric: ,\n--\t\t\treason:, //Причина\n--          date: , // Для level == 20 (задачи)\n--\t\t  },...\n--\t   ]\n--\t },..\n-- ]\n\n- Спека отчёта 106:\n-- [\n---  {\n---- title: ,// Название блока\n---- suffix: , // Суффикс значения\n---- value: , // Основное значение блока\n---- trend : , // Трендовое значение блока (показываем знак +/- у числа)\n---- is_positive: , // Покраска графика\n---- series: [ {y:} ] // График x - просто из [1,N]\n---  },..\n-- ]\n\n- По умолчанию сделать сортировку везде по второй колонке (performance или date)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1169965198005402", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1199654335005251", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-03-05T16:23:27.925Z", "created_at" : "2021-01-26T06:44:49.147Z", "due_at" : null, "due_on" : "2021-02-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-03-05T16:23:28.172Z", "name" : "Heado БК / ticketFeed+Контроль Дисциплин / Новые иконки по reasonId", "notes" : "Иконки как напоминание и источник тут: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=10032%3A0\nДополнение по иконкам:\n reasonId == 0 : Не показываем \n reasonId вне установленного списка: - fallback на \"Причина не установлена\" (компас перечёркнутый)\n reasonId == 22 : иконка \"Нет на складе\" (перечёркнутый магазин)\n reasonId == 23: иконка \"Проблема выкладки\" (cart-remove_red.svg)\n reasonId == 24: иконка \"Товар выложен\" (cart-check.svg)\n reasonId == 25: иконка \"Нет спроса\" (перечёркнутая корзинка)\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1199654335005251", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1146766151098546", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-03-27T16:55:11.859Z", "created_at" : "2019-10-28T03:36:52.986Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-03-27T16:55:12.257Z", "name" : "Giftoman + Heado BC / Требование по заполнению полей при Отчёте", "notes" : "- В ticket().actions[] теперь появилось поле requiredFields: [ { // Массив полей под проверку\n-- name : , // Название поля под проверку. Пока их всего два, так что вот.\n-- text : , // Текст, если проверку не прошло\n-- check: //Режим проверки, на будущее, пока он только один - \"не пусто\". Для комментов comment.length() > 0, для аттачей attachements.count()>0\n-- },..\n- ]\n- Если такое поле есть, то при соответствующем действии (Отчёте) нужно проверять его на заполнение\n-- В случае, если что-то не проходит проверку, то меняем примечания к полю на алертные: https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/BC_iOs?node-id=3235%3A0 (экраны AssignReport сверху справа)\n-- Т.к. у нас два поля в одном для комментария и аттачмента - придётся сделать комбинированный алерт через запятую. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1146766151098546", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1184245458994537", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-09-29T13:01:44.429Z", "created_at" : "2020-07-13T14:45:13.826Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-09-29T13:01:44.670Z", "name" : "Ссылка \"Забыли пароль\" на всех мобильных проектах ", "notes" : "Там, где нет - сменить на https://partner.heado.ru/forgotpass", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1184245458994537", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1193911663576459", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-09-15T16:33:01.310Z", "created_at" : "2020-09-15T11:45:54.643Z", "due_at" : null, "due_on" : "2020-09-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-09-15T16:33:01.610Z", "name" : "Giftoman / Удалить \"Впервые тут?! Зарегистрируйтесь\" с логина", "notes" : "удалить нижний блок с экрана логина", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1193911663576459", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200269967381848", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-04-30T06:57:13.715Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2023-10-24T09:01:31.301Z", "name" : "БК / Доменизация", "notes" : "URI бэка теперь получаемая с бэка настройка. \nОсновными бэками для работы по умолчанию и получения настроек домена остаются https://partner.giftoman.ru/api (БК) и https://partner.heado.ru/api (Аналитика)\nНастройки получаются с помощью метода \ndomain.profile( app = <\"bc\",\"analytics\">[, name] )\n IN:\n app : string, ( \"bc\" для БК, \"analytics\" для Аналитики\n name: string (опционально) - название домена, по умолчанию оно подставляет наш \"родной\" домен\n OUT: \n { \n \"app\":, //Эхо app\n \"name\": , //Эхо name или умолчания\n \"title\": , // Название для кожаных мешков\n \"uri\": // Искомый URI в виде https://..../api/ (версию и остальное формирует уже приложение)\n }\n\nФлоу предлагаются следующие:\n\nОбщее:\n Если сохранённых настроек домена в приложении нет, то\n На странице логина до его актуализации приложение делает запрос на настройки domain.profile(app) (Получает настройки домена \"по умолчанию\")\n Сохраняет настройки выбора домена в окружении приложения\n Иначе использует настройки\n Дальше всё прозрачно\n Если Пользователь уже залогинен, то прописываем умолчательные URI основного бэк-сервера в настройки \n\nВыбор домена:\nМакет страницы Логина с выходом на экран \"Выбор домена\": \n<#UPD.1>https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-Android?node-id=15773%3A0\n На экране Логина внизу отображается название выбранного домена\n При заходе на экран отображает сохранённые настройки (Имя домена в поле ввода)\n При изменении имени домена кнопка изменяется на \"Подключиться\"\n При нажатии на эту кнопку запрашивает domain.profile(app,name)\n При получении данных по модели domain.profile().OUT \n Сохраняет настройки домена\n Сообщает об успешном подключении.\n Переводит экран в статус \"подключено\"\n Пользователь выходит на экран логина и продолжает работу как ни в чём не бывало\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200269967381848", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1174461686871126", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-05-25T11:25:51.695Z", "created_at" : "2020-05-06T10:26:29.511Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-05-25T11:25:52.119Z", "name" : "Heado БК / Работа с аттачментами / Ресайз изображений", "notes" : "Если >800px, то ресайзить до 800px по ширине с сохранением aspect ratio", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1174461686871126", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200685734412583", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-08-04T14:29:26.845Z", "created_at" : "2021-07-29T12:21:34.821Z", "due_at" : null, "due_on" : "2021-08-06", "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-08-04T14:29:27.224Z", "name" : "HEADO / Задачи / Обновление логин скрина", "notes" : "Нужно обновить логин скрин в приложении «Задачи» - ниже кнопки «вход» появляется надпись про принятие оферты.\nСсылка на figma – https://www.figma.com/file/fz22CSD1NDYhxvy04lUc4rCu/?node-id=11040%3A9128 \nНа слово «оферту» нужно поставить ссылку  - https://www.heado.ru/legal/oferta чтоб можно было перейти для прочтения", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200685734412583", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200269967381853", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-06-08T13:34:32.679Z", "created_at" : "2021-04-30T06:58:09.771Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-06-08T13:34:33.261Z", "name" : "БК / Просмотр Задачи / Кликабельные ссылки в описании задач и комментариях", "notes" : "В тексте комментариев и описания задачи теперь могут быть свободные \nСоответственно, нужен переход по ним во внешний браузер.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200269967381853", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201066281738466", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-11-02T19:16:06.376Z", "created_at" : "2021-09-28T05:29:09.635Z", "due_at" : null, "due_on" : "2021-10-07", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-11-02T19:16:06.747Z", "name" : "БК / Листалка приложенных изображений", "notes" : "Нужно добавить возможность листания по списку приложенных изображений в сообщении. Фигма-макет Ирина не успела - сегодня вроде как рожает, но нарисовала в растре )", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201066281738466", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200091780864671", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-03-22T18:12:20.457Z", "created_at" : "2021-03-22T10:03:12.202Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:30:12.931Z", "name" : "Heado БК / Аттачменты остальных мастей", "notes" : "В модели аттачмента есть поле type:\n \"image\" - это картинки, рисуем тамбнейлы\n остальное \"application\" и т.п. - это вложения к скачиванию файла\n Дежурная иконка для последних в приложении\n\nОтчёт с земли:\nВ айфоне при нажатии на задачу с приложенным файлом выбрасывает из обоих приложений.\n\nПроверить можно на dir3@giftoman.ru там есть два тикета в Дисциплине \"Тестовина\" / \"Здоровеньки були\" и \"Тарантул дунул в сторону\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200091780864671", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1195101492130476", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-10-15T18:30:30.985Z", "created_at" : "2020-09-22T13:45:09.481Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-10-15T18:30:31.227Z", "name" : "Heado БК / Экран ticketFeed / Коррекция offset", "notes" : "offset нужно делать не по количеству батчей, а по суммарному количеству тикетов в них\n\nДобавить систему подгрузки батчей\nМаксимальное число тикетов в батче == 200", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1195101492130476", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201113030404673", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-11-11T16:24:24.232Z", "created_at" : "2021-10-04T06:17:19.531Z", "due_at" : null, "due_on" : "2021-10-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-11-11T16:24:24.772Z", "name" : "БК / Экран списка задач по Дисциплине / Фильтр по статусам задач", "notes" : "Видимо с Андроида не перенесли, там отдельный фильтр доступен с возможностью выбора отображения различной видимости задач по статусу.\nfilter.status = <\n1 - Все задачи (All tasks)\n10 - Текущие задачи (Urgent tasks)\n20 - Архивные задачи (Archived tasks)\n21 - Архив незавершённых (Archive of failed)\n22 - Архивн завершённых (Archive of completed)\n>", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201113030404673", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200326172497509", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-06-08T15:56:01.611Z", "created_at" : "2021-05-13T07:06:14.016Z", "due_at" : null, "due_on" : "2021-05-19", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-06-08T15:56:01.952Z", "name" : "БК / Отчёт по задаче / Удаление поля \"получатель\"", "notes" : "deprecated\nrouteId в интерфейсе стал optional", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200326172497509", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1196342266194801", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2020-10-28T20:30:17.473Z", "created_at" : "2020-09-29T13:14:42.336Z", "due_at" : null, "due_on" : "2020-10-16", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2020-10-28T20:30:17.664Z", "name" : "Heado БК / Фиксы Сентябрь 2020", "notes" : "1. Если я перехожу на экран \"Отправить отчет\", то там отображаются теги.\n— Добавить форматирование по базовым тегам в экран отчёта\n2. Если какой то одной задаче я нажму на поле \"Написать комментарий\", то дальше во всех задачах, которые я открою задача будет открываться на этом поле без возможности проскроллить или выйти из этого поля с комментарием. Короче застревает.\n— Устранить\n3. На странице с общем списком задач не хватает кнопки для возвращения на страницу к задачам другим точкам. В андроиде такая возможность есть.\n— Добавить 🙂 \n4. Вылет = На учетках зональных в Задачах почему то приложуха вылетает.\nКак пример\naptekivita@giftoman.ru\nmenkova@vita-samara.ru\nВходит в приложуние сразу на страницу задачи, а при нажатии \"Назад\" вылетает.\nyola@giftoman.ru\nyaroslava_huzina@mail.ru\nВключен сервис SKU без движения - там то входит в приложуху, но все пункт меню неактивны и нет каунтеров, либо просто сразу же вылетает.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1196342266194801", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200400720062206", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2021-06-28T16:11:07.466Z", "created_at" : "2021-05-31T06:53:57.010Z", "due_at" : null, "due_on" : "2021-06-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2021-06-28T16:11:07.677Z", "name" : "БК / Отчёт по задаче / Кастомизация отчётной формы", "notes" : "Наступил новый день в индустрии отчётов по Задачам. \nПримерный вид дня: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=17418%3A115\n\nВ первую очередь расширяется спецификация actions[].reasons в ответе API.ticket(ticketId), теперь каждый reason имеет свой набор отчётных полей, что намекает на перекомпоновку формы при выборе Причины:\n...\n\"actions\": [\n {\n \"id\": 1,\n \"title\": \"Отчитаться\",\n \"reasons\": [\n {\n \"id\": \"24\",\n \"title\": \"Товар выложен\",\n \"icon\": \"\",\n \"routes\": [\n {\n \"id\": \"441\",\n \"title\": \"Руководитель\"\n }\n ],\n fields: [ // Новый параметр\n {\n name: , // Название поля, которое отправляется в API\n type: , // Требуется или нет\n data: [ // Как в filters - набор данных для списочных полей типа dropdown и checkbox\n id : , // Идентификатор, уходящий в API\n title: , // Тайтл, отображающийся в UI\n selected : // truе- Преселект\n ],\n format: // FFU Будет приходить regexp'а для маски поля в будущем.\n },...\n ]\n },\n ],\n \"requiredFields\": [\n {\n \"name\": \"comment\",\n \"text\": \"Необходимо заполнить комментарий\",\n \"check\": \"notempty\"\n }\n ]\n }\n ],\n\nТеперь про метод API.\nAPI 2.0 ticketReport(ticketId, reasonId , data ) \nIN : data : [\n {\n name : , // Название поля fields[].name\n value: , // Значение в соответствии с типом компоненты может быть строкой (text,datepicker), числом (number ) и массивом идентификаторов (dropdown, checkbox, file, image ). Сервер разберётся кто и чего по своему дескриптору\n }\n]\n\nПример отчёта (API2.0):\n{\n \"id\": \"8361549266426897\",\n \"method\": \"ticketReport\",\n \"params\": {\n \"ticketId\": 1570009653021404400,\n \"reasonId\": 16,\n \"data\": [\n {\n \"name\":\"my_text\",\n \"value\":\"There's something wrong with all these people\"\n },\n {\n \"name\":\"my_number\",\n \"value\":108.4\n },\n {\n \"name\":\"my_attachment\", \n \"value\": [ 10928309128, 1230971987, 129387189]\n },\n {\n \"name\":\"my_checkbox\",\n \"value\": [ 1,2,5]\n },\n {\n \"name\":\"my_dropdown\",\n \"value\":[10]\n },\n {\n \"name\":\"my_datepicker\",\n \"value\":\"2021-05-28T18:31:42+03\"\n },\n {\n \"name\":\"my_timepicker\",\n \"value\":\"05:25\"\n }\n ]\n },\n \"jsonrpc\": \"2.0\"\n}\n\nПояснение к разнице между приложениями \"file\", \"image\", \"photo\":\n file - любой файл/изображение из галереи/камеры \n image - только изображения из галереи и камеры\n photo - только фотка с камеры\n\n#UPD.1.\nЛимит на количество файлов в аттаче: 10\nЛимит на размер одного файла: 25мб\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200400720062206", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203308831202736", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-11-15T17:19:39.241Z", "created_at" : "2022-11-07T14:46:57.590Z", "due_at" : null, "due_on" : "2022-11-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-11-16T01:31:51.824Z", "name" : "БК / Перевод ссылки \"забыли пароль\" на доменную схему", "notes" : "В модели доменов по запросу domain.profile теперь возвращается ссылка forgotpass_link (https://m.heado.ru/internal-papi-dmz-reference.html#domain_profile), на неё нужно перевести хардкоднутую актуальную ссылку из форм авторизации", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203308831202736", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203156556074814", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-11-07T14:33:19.188Z", "created_at" : "2022-10-13T07:54:48.481Z", "due_at" : null, "due_on" : "2022-10-20", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-11-07T14:33:19.540Z", "name" : "БК / Доменные логины и запоминание последнего выбранного домена", "notes" : "Доменный логин (Логин вида {{domain}}:{{login}}, как реализовывали во флаттере: \n Если логин с такой маской, то делаем попытку автовыбора нужного домена перед логином\n\nТак же нужно запоминать последний выбранный домен, чтобы при логаутах выбранным числился он", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203156556074814", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202458127605181", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-06-16T14:28:24.324Z", "created_at" : "2022-06-16T12:27:58.511Z", "due_at" : null, "due_on" : "2022-07-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-06-16T14:28:24.722Z", "name" : "БК / Экран логина / Возможность прозрачной передачи домена в составе логина", "notes" : "в логине можно использовать название домена в виде префикса\ndomain_name:login (E.g: gamma:nechaikina705@mail.ru)\nВ случае, если указан домен, то нужно проводить попытку прозрачного переключения в указанный домен (как при смене домена), переход на соответствующий server_url и далее уже стандартный логин в нужный домен\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202458127605181", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203488799561885", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-07T04:49:43.128Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785061810538", "name" : "IOS", "resource_type" : "section" } } ], "modified_at" : "2022-12-30T14:53:47.521Z", "name" : "БК / Коррекция названий в фильтре задач по статусам", "notes" : "\nАрхив незавершённых > Архив невыполненных\nАрхив завершенных > Архив выполненных", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203488799561885", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "154682065766547", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:10.525Z", "created_at" : "2016-07-13T09:32:54.976Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:10.737Z", "name" : "Android / Партнёрское приложение / Переход на единые показатели", "notes" : "- В целях быстрого тестирования, на бою добавил смежный c metrics массив keymetrics со сходной спекой, в которой есть небольшое отличие:\n-- chrono и summary - могут быть строками вида \"12@28347298347\", которые так же как и в обычном случае отсылаются в reportId фильтрах\n- Общая спека у нас может расширяться относительно спеки \"Общих показателей\" до \n-- summary = {\n-- x: <Идентификатор показателя>\n-- y : < Значение показателя>\n-- plan: <План по показателю>\n-- group: <Идентификатор для образования стэка>\n-- predict: <Прогноз>\n-- qty: <Вспомогательное кол-во>\n- }\n--- group, predict, qty - это приходит из KPI вместе с логикой (datatype и order берём из дескрипторов keymetrics)\n\n-- chrono = [ {\n--- x: <>\n--- y: <>\n--- plan: <>\n--- group: <>\n-- } ,.. ]\n\n- Остаётся у нас экран \"Общие показатели\" (которые переименовываем в просто \"Показатели\")\n-- Экран с KPI почит в бозе, но оттуда нужно взять поведение контейнеров под \"особые\" датасеты\n--- Тут получается вариант переключать логику по \"основному\" и \"расширенному\" датасету.\n\n#UPD.1.\n- В keymetrics приходит полный список метрик, распределённых по зонам, поэтому, нужно список каждый раз фильтровать в зависимости от выбранной вкладки по otype+oid (на вкладке \"Все\", показываем только те, что привязаны по otype=1, например, на конкретном Адресе - otype=3 && oid = ЭтотАдрес.id, Если выбрана группа, то проще, думаю, показывать метрики только на магаз и аккаунт)\n-- otype = 1 (ACCOUNT) - показываются для всех\n-- otype = 2 (SHOP) - показываются для магазов и адресов ( если выбрали нужный магаз и/или адрес внутри него )\n-- otype = 3 (ADDR) - показываются только для адресов\n\n#UPD.1\n- Появляется субфильтр наряду с диапазоном, открывающий фильтр-окно, которое подчинено выбору \"зоны\"\n- В profile() теперь будет приходить массив stuff (это продавцовый персонал, распределённый по зонам): [ {\n-- id : User.id\n-- name : User.name\n-- zoneType : Тип зоны куда привязан\n-- zoneId : ID зоны привязки\n-},..]\n-- Может быть пустым, тогда в фильтре выбора продавца пишем \"Нет продавцов\"\n--- Так же это касается, если в текущей выбранной зоне нет привязанных продавцов\n-- Для вкладки \"Все точки\" выводим в список всех продавцов, сгруппированных по stuff.id (они пока могут повторяться в целях организации схемы один-к-многим)\n-- Для остальных вкладок фильтрация продавцов идёт по zoneType+zoneId\n-- Да, диапазон дат я для варианта отобразил во внутреннем фильтре - он тот же самый, что в заголовочном фильтре. Можно оставить только продавцов, правда в этом случае иконку надо поменять на sellers\n--- В фильтры отчётов оно передаётся как sellerId: [ id1,...,idN]\n\n#UPD.2.\n- По умолчанию диапазон дат у нас ведь стоит за сегодня? Если так, то норм.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/154682065766547", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "175839500387206", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:11.765Z", "created_at" : "2016-09-02T06:49:11.222Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:23:47.181Z", "name" : "Android / Детальный просмотр метрики / Бранч / Реорганизация графика", "notes" : "- Первый значительный шаг: \n-- Отказываемся от мультивыбора метрик (уходит иконка \"добавить метрику\" и легенда\n-- Так же корректируется тайтл страницы \"<Название показателя> детально\"\n-- Упрощаем поведение нижних саммари-блоков (ура)\n\n- Второй значительный шаг:\n-- Возникает контейнер \"для графиков\" (может размещаться несколько графиков с тайтлами) и меняем вид основного chrono-графика на узловой.\n-- На \"Линейном графике\" отображаем две основных линии\n--- Фактическую (солид-лайн)\n--- Плановую ( дашед-лайн )\n--- И вид, когда в спеке серии приходит frcast:1 (это прогноз), тогда фактическую линию нужно заменить на dotted-лайн)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/175839500387206", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "173079831988342", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:12.940Z", "created_at" : "2016-08-30T09:39:16.714Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:04:02.661Z", "name" : "Android / Партнёрское приложение / Рейтинг магазинов", "notes" : "- помним об https://app.asana.com/0/547756917302/167191121010134\n- Появляется новый пункт: \"Рейтинг магазинов\" (после Показателей)\n-- Фиксированный отчёт #59\n-- Фильтрация по range \n-- Драфт интерфейса в приложении\n--- Сборка такая же, только появляется расцветка план-факта как показано в макете (цвета в макете неточные, поэтому пользуй свой светофор ессно)\n---- round(fact/plan)*100 >= 100 - зелёное\n---- round(fact/plan)*100 in [80,100) - оранжевое\n---- round(fact/plan)*100 < 80 - красное\n--- если plan == 0, то процентилей не показываем вовсе", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/173079831988342", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "198743444909939", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2016-10-19T06:52:57.658Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-02-18T12:40:24.925Z", "name" : "\"Показать ещё\"", "notes" : "- Хороший вариант - автопагинация при скролле, как фид.\n-- Но можно и кнопку \"Показать ещё\"\n- Спека в параметрах передавать limit: {\"offset\":<>,\"count\":<>}, count по умолчанию давай 20\n-- Количество записей получать в заголовке Content-Range: 59 11-20/78", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "173079831988342", "name" : "Android / Партнёрское приложение / Рейтинг магазинов", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/198743444909939/198743444909939", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "256894382599134", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:14.112Z", "created_at" : "2017-01-30T05:46:57.868Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:14.370Z", "name" : "Рейтинги торговых точек / v2 / Переход к фискированным заголовкам и endless скроллу", "notes" : "- Левая (торговые точки) и заголовки становятся фиксированными\n-- Левую фиксируем по ширине, чтобы не ползало и чтобы влезало 1.5-1.7 показателя\n-- Название торговой точки враппим и троеточим, если не влезает\n- Пагинацию отчёт уже поддерживает endless или батон \"Показать ещё\"\n- Соответственно, теперь нет ограничения на 3 показателя - показываем в скроллере все показатели.\n- поддержка лендскейпа", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/256894382599134", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "235280464700201", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:15.276Z", "created_at" : "2016-12-23T02:56:26.191Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:15.442Z", "name" : "Проверить корректность работы с датасетами ", "notes" : "- Перевожу апи на PHP7, есть подозрение на более строгую типизацию\n- Сделал тестовый ури на него\n-- https://gate.giftoman.ru/api/1.0?login=naumenko@vita-samara.ru&pass=Cn3V9xxD\n- Вчера потюнил чего мог по приведению в старый вид, в общем, проверь плз", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/235280464700201", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "273156241255693", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:16.070Z", "created_at" : "2017-02-15T06:05:03.135Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:16.240Z", "name" : "Рейтинги торговых точек / Переход на cpa[].ratio", "notes" : "- сообразно https://app.asana.com/0/201687425733823/270453731473804\n-- Реализовать на мобильной части\n\n#UPD.1.\n- Перевести на сортировку cpa[].ratio (initial по rate DESC)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/273156241255693", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "286140592521382", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:17.027Z", "created_at" : "2017-03-06T08:20:58.564Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:17.180Z", "name" : "Не отображается факт по выручке при выборе зональных закладок", "notes" : "- bukreeva.m@kopdom.ru / 79624014935\n- На iOS приходит выручка, на дашбордах тоже. При этом \"по всем\" на Андроиде факт виден\n- Я вродь размерности и типы данных не менял", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/286140592521382", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "302285120009080", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:17.996Z", "created_at" : "2017-03-24T04:15:23.118Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:18.137Z", "name" : "Рейтинги торговых точек / Переключатель группировки", "notes" : "- Меняется схема отображения фильтра периода - теперь его отображаем с префиксом \"За\" \n-- Убрать из выбора \"Недели\"\n- Появляется перключатель групп (по схеме вебных рейтингов)\n-- приходит в profile().ratingGroups со спекой https://app.asana.com/0/201687425733823/277902321901929\n--- Могут быть пустыми, тогда выбор групп не отображаем\n--- Спека отправки параметров отчёта такая же - group: \n-- Сохранять последний выбранный переключатель групп в персист.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/302285120009080", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "317208107794828", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:19.149Z", "created_at" : "2017-04-12T02:55:47.203Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:19.315Z", "name" : "Алгоритм сбора метрик по зонам для общих показателей / Уточнение привязок к магазинам", "notes" : "- Первое. На строке DBDataSource.java:233 \nif ((metric.getOtype().equals(zone.getOtype()) && metric.getOid().equals(zone.getOid())) || metric.getOtype() < zone.getOtype())\n-- надо отлогировать какие действительно идут zone.getOtype() при сборке на bukreeva.m@kopdom.ru / 79283212345\n-- Есть подозрение, что zone.getOtype() в случае с Fake-закладками имеет уровень ACCOUNT, т.к. иначе сложно объяснить дублирование метрик с otype==TYPE_SHOP в показателях.\n- Второе. В модели зоны появился идентификатор shopId, по которому нужно привязывать метрики с TYPE_SHOP (2)\n-- Т.е. нужна доп. обработка для метрик с otype == TYPE_SHOP, если такая есть, то привязываем её по zone.shopId\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/317208107794828", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "319341437518434", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:20.148Z", "created_at" : "2017-04-17T06:32:37.611Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:20.285Z", "name" : "Андроид / Автоматический разлогин на экспирации сессии и других ошибках", "notes" : "- Пишет сейчас \"ошибку сети\", если перезапрос происходит во внутренних экранах (\"Общие показатели\", например).\n-- Если приходят ошибки [ UNKNOWN_USER(-33000), INVALD_SESSION(-35006)]\n--- Нужно автоматически выводить в экран логина и удалять сессионный ид.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/319341437518434", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "358575209255742", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:21.088Z", "created_at" : "2017-06-07T03:07:56.007Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:21.263Z", "name" : "Выполнение планов", "notes" : "- Запросная схема по 95-му отчёту - всё то же самое https://app.asana.com/0/201687425733823/346641528345990\n- Мокап https://xd.adobe.com/view/ca1b09b4-4b54-4397-b1b4-665e6ae8d489\n- Новый пункт меню \"Выполнение планов\" (после \"Общих показателей\")\n-- icon: chart-areaspline\n-- Верхние \"Периоды\" - закладки (или индикаторы - как удобней)\n--- При первом клике - выбираем и показываем \"вид\" (0-ой и 1-ой колонки), \n--- При втором клике на нулевой закладке выбираем дату (range[to])\n--- Заголовчная часть внутренних \"колонок\" (План/Факт/%/Отклонение) - активная и переключает сортировки (умолчание такое же как на дашборде)\n---- Индикатор выбора пока отображаем только на самом элементе колонки\n--- Слайд влево-вправо переключает \"закладки\" как обычно\n--- Первый верхний ряд (row[].order == 0) зафиксирован как заголовок\n--- Позицию скроллера нужно сохранять между \"закладками\"\n---- Скроллер \"endless\"\n---- \"Подтяжка вниз\" - обновление запроса\n<#UPD.1>\n-- Поведение списка:\n--- Элементы .active == 1 тачабельны (с иконкой продолжения или возврата (у order ==0 ) ) (.active==0 - иконки нет)\n---- При клике на элемент запрашиваем данные по отчёту с передачей дополнительного параметра filter.zone= { type:, id:} \n---- Если тачнули элемент нижней ирерахии - можно анимировать перенос выбранного элемента в закреплённый после получения результатов запроса\n----- Иначе - возвращаемся (слайд текущей вправо) на предыдущую (кэш) таблицу и обновляем в ней значения.\n\n<#UPD.3>\n- columns[].forecast = <1 - прогнозная колонка, 0 - фактическая>\n\n\n<#UPD.4>\n- мнемо для user.assets флага: performance\n- Добавляем флаг для показа/прятания\n\n\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/358575209255742", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "387501262547862", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:22.019Z", "created_at" : "2017-07-18T04:34:20.436Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:22.157Z", "name" : " Сигналы в статистику / Запуск приложения", "notes" : "- метод status(event, data)\n- При старте приложения или возобновлении работы шлём запрос { method: status, params: { event : 1 } }\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/387501262547862", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "7403887251262", "name" : "mobile", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "463248885236557", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2018-11-08T02:34:23.369Z", "created_at" : "2017-10-26T05:06:04.582Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:23.548Z", "name" : "Общие показатели / Выбор фильтра в закладке / Быстрый поиск", "notes" : "- Если кол-во элементов > одного полного скролла (> x2 от высоты контейнера по кол-ву элементов) , то добавлять сверху списка поле \"быстрого поиска\" с предфильтрацией списка\n\n#UPD.1.\nhttps://xd.adobe.com/view/efd8917e-e1d8-4de8-927a-9233c0e45ff9", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/463248885236557", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "594791098178862", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:23.982Z", "created_at" : "2018-03-15T10:41:25.948Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:24.180Z", "name" : "Общие показатели / Выбор периода / Недельные шорткаты", "notes" : "- Добавить дополнительные шорткаты периодов\n-- Эта неделя\n-- Прошлая неделя \n- Сортировка как водится по значимости периода. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/594791098178862", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "697690449671526", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:25.039Z", "created_at" : "2018-06-05T05:33:30.063Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:25.221Z", "name" : "Чаты / Переход на порционную загрузку историии", "notes" : "- Хранить в персистенте не более 50 сообщений.\n- При отмотке назад по трешолду 90% списка нужен авто-рефреш с запросом chat(chatId, lastid)\n-- Использовать стандартный индикатор ожидания процесса\n- После получения очередной порции рендерим и продолжаем.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/697690449671526", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "730630234427372", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:34:26.218Z", "created_at" : "2018-07-03T03:43:06.819Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:34:26.350Z", "name" : "Переход на FCM", "notes" : "- Добавил в pAPI методы fcmRegister( registrationId [, deviceId]) ( и на всякий случай fcmRemove(uid [,deviceId [, registrationId] ) )\n- В общем-то, для начала хватит, payload в message: {\n-- body: \n-- title : <просто для спеки>\n-- icon: \n-- sound: \n}\n\n#UPD.1.\n- Тест для fcm: API.fcmTest(registrationId [,msg = false])\n-- msg - опциональный, если захочется тестировать пейлоад, а так придёт стандартный", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/730630234427372", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "735216028729369", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:42.602Z", "created_at" : "2018-07-06T16:10:01.383Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:42.776Z", "name" : "Глюк с MPAndroidChart / Сегментирование AnyChart по SDK_VERSION", "notes" : "- Если текущий андроид >= 19 - то использовать реализацию AnyChart, иначе старую MPAndroidChart", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/735216028729369", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "457377991484096", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:17:20.098Z", "created_at" : "2017-10-19T06:22:11.017Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:20.253Z", "name" : "Проект \"Тикеты\"", "notes" : "- Статусы сообщений\n- Микроформы в сообщениях\n- Отсылка действий по микроформам", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/457377991484096", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "457377991484099", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2017-10-19T06:22:11.306Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-12-06T12:09:42.198Z", "name" : "Отсылка статуса \"Сообщение принято\"", "notes" : "- По факту принятия: messageReceived ( $msgid )\nВ пуш-нотификации\n\n#UPD.1.\n- Добавил в пейлоад msgId - это уникальный идентификатор сообщения, поэтому надо передавать его в messageReceived() вместо id, который увязан с chatId.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "457377991484096", "name" : "Проект \"Тикеты\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/457377991484099/457377991484099", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "7403887251262", "name" : "mobile", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "496270243536504", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2017-12-06T05:45:25.443Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2017-12-08T11:47:54.915Z", "name" : "Микроформы в сообщениях и действия", "notes" : "- Чаты вперёд!\n- Вместе с прошлой моделью сообщений в них chat() начали приходить дополнительные поля\n-- msgid (глобальный идентификатор сообщения BIGINT)\n-- actions (доступный набор действий для сообщения)\n---  Пример: \"actions\": [ \n {\n                        \"id\": \"accept\", /* Идентификатор действия */ \n                            \"title\": \"Принять\", /* Заголовок кнопки действия */\n                            \"enabed\": false, /* Статус кнопки - доступна к нажатию или нет */\n                            \"selected\": true /* Признак выбранного действия */ \n                        },\n                        {\n \"id\": \"reject\",\n                            \"title\": \"Нет на складе\",\n                            \"eventId\": 21, /* Опциональный идентификатор события по действию - пока резервед */\n                            \"enabed\": false,\n                            \"selected\": false\n                        }\n                    },\n-- Интерфейс микроформы https://xd.adobe.com/view/8934b09e-ad69-4385-9425-a23a9ea95366/\n--- Предусматриваемое кол-во действий : 1-3\n-- При нажатии на кнопку вызываем pAPI.messageAction( msgid, action )\n--- msgid = chat.message.msgid\n--- action = chat.message.actions => ключ действия нажатой кнопки\n--- метод вернёт модель сообщения как в chat().messages, то бишь обновляем состояния кнопок", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "457377991484096", "name" : "Проект \"Тикеты\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/496270243536504/496270243536504", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744071729466431", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:17:21.695Z", "created_at" : "2018-07-16T04:10:15.641Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:35:23.369Z", "name" : "Проект \"Задачи\" / Газон", "notes" : "- Новый интерфейс таск-менеджера ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/744071729466431", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "744071729466432", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-07-16T04:10:41.169Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-10-16T04:59:38.907Z", "name" : "Общие реформы проекта \"Задачи\"", "notes" : "- В меню https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A1004&scaling=min-zoom\n-- Переносим пункт \"Контакты\" - в контекстное меню в Чаты\n-- Появляется пункт \"Задачи\" - каунтеры из ticketSummary() за сегодня events[].done/events[].failed\n\nОбщий флоу и стили: https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A1004&scaling=min-zoom", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744071729466432/744071729466432", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744071729466433", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-07-16T04:11:12.077Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-10-16T04:59:22.891Z", "name" : "Задачи (Инбокс)", "notes" : "- https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A921&scaling=min-zoom \n- https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A809&scaling=min-zoom\n- В Инбкосе отображается сгруппированная по хронологии и видам задач количественная информация о задачах\n-- В каунтерах инбокса пишем /\n-- Если есть priority == true, то рисуем иконку алерта\n-- По умолчанию отображаем саммари на сегодня\n-- С помощью нижнего плейсхолдера идём по истории по неделям\n-- Фильтр - дейтпикер, позволяет выбрать произвольный период\n- pAPI.ticketSummary(filters) \n- IN.filters: { \"dateFrom\": ,\"dateTo\": },\n- OUT: {\n- \"items\": [ // Раскладка по хронологии (по дням) и по доступным видам задач\n     { \n\t   \"day\": ,\n\t   \"events\": [\n\t      {\n\t\t    \"eventId\": ,\n\t\t\t\"title\": <Название>,\n\t\t\t\"failed\": ,\n\t\t\t\"done\": ,\n\t\t\t\"inprocess\": ,\n \"priority\": \n\t\t  },..\n\t   }\n\t   \n\t }\n  ]\n- \"total\": {\n   \"failed\": ,\n   \"done\" : ,\n   \"inprocess\": \n }\n}\n\n#UPD.1.\n- См. мокапы: добавлен общий каунтер (в скобках у названия) для каждого раздела = inprocess+done+failed\n\n#UPD.2\n- См. мокапы - появилась \"пустая\" страничка\n\n#FIX.1\n- Некорректное размещение и цвета в failed/done в каунтерах: done - первый каунтер , failed - второй. При этом первый (см. мокап) - зелёный, если >0, а второй - красный, если >0 (иначе серые)\n- В ticketBatches не работает сокращалка портянки тикетов в пакете, если их больше 5\n\n#UPD.3\n- Пожалуй, pull-2-refresh неплох был бы и на summary", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744071729466433/744071729466433", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744071729466434", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-07-16T04:11:31.046Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-03T07:38:18.868Z", "name" : "Интерфейс работы с Тикет-пакетами", "notes" : "- https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A1151&scaling=min-zoom\n- Тикет-пакет - это список задач, объединённый по признаку общих: Вида задачи, Торговой точки, Даты выполнения и Исполнителя\n-- Поэтому шапка максимаьно общая, в списке самих задач только статусы и их брифы в сокращённом виде (<= 3 задачи с возможностю развернуть)\n-- При клике на шапку пакета переходим в детальный интерфейс тикет-пакета https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=149%3A219&scaling=min-zoom\n--- Здесь запросов не делаем, т.к. модель уже получена\n-- При удержании на элементе списка - интерфейс переключается в выделение элементов списка https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=174%3A328&scaling=min-zoom\n--- Это работает как для общего списка Тикет-пакетов, так и для детального интерфейса просмотра Тикет-пакета\n--- в контекстном меню выбора - список доступных действий по пакету, выполняется для всех выбранных\n-- Можно вызвать контекстное меню на отдельный задачу - те же действия из actions\n-- При клике на Задачу переходим в интерфейс детальной информации по Задаче\n- pAPI.ticketBatches(filters)\n- Получает данные для выбора вида и хронологии из Инбокса\n- IN.filters: { \"eventId\" : , \"dateFrom\": }\n- OUT: [\n  {\n<#UPD.2> \"id\": \n    \"created\": ,\n\t\"address\": ,\n\t\"assignee\": { \n\t    \"id\" : ,\n\t    \"name\": ,\n\t\t\"role\": \n\t},\t\n\t\"duedate\": ,\n\t\"karma\": ,\n\t\"priority\": ,\n\t\"tickets\" : [\n\t   {\n          \"id\": ,\n\t\t  \"text\": ,\n\t\t  \"status_id\": ,\n<#UPD.4> \n\t\"actions\": [\n\t  {\n\t   \"id\" : ,\n\t   \"title\": ,\n\t  }\n\t]\n\n\n\t   },..\n\t],\n  },..\n]\n\n- Действие с Задачами:\n-- Сервер определяет легитимность действия для каждой задачи и может просто не применить действие на задаче, на котором это действие уже невозможно, поэтому здесь никаких проверок не делаем.\n-- pAPI.ticketAction(ticketsId, actionId [, params = false])\n-- IN.ticketsId = [,...]\n-- IN.actionId = \n-- IN.params (опционально) = <Объект FFU>\n-- OUT:  {\n--- \"tickets\": [ { // Обновлённое состояние зацепленных задач\n----    \"id\": ,\n----\t\"text\" : ,\n----\t\"status_id\" : \n  } ],...\n}\n\n- Кодировка статусов:\n-- const STATUS_PREPARING = 0;\n-- const STATUS_SENT = 5;\n-- const STATUS_DELIVERED = 10;\n-- const STATUS_REMIND_LATER = 15;\n-- const STATUS_SEEN = 20;\n<#UPD.3>\n-- const STATUS_ALERTED = 21;\n\n-- const STATUS_REJECTED = 25;\n-- const STATUS_ESCALATED = 30;\n-- const STATUS_FAILED = 40;\n-- const STATUS_USER_RESOLVED = 50;\n-- const STATUS_RESOLVED = 100;\n-- const STATUS_DELETED = 150;\n\n-- const STATUS_USER_RESOLVED => done_icon;\n\n\n#UPD.1.\n- status >> status_id\n\n#UPD.2.\n- batch теперь получил id\n- Появился метод ticketBatch($batchId) - модель элемента идентична\n-- Переход на детальный экран батча по заголовку пакета из списка или по \"Показать ещё N элементов\n\n#UPD.3\n-- Добавлен доп-статус STATUS_ALERTED (21) - ему надо поставить в соответствие иконку алерта (треугольник с восклицательным знаком)\n\n#UPD.4.\n- actions перенесены из батчевой модели в модель тикета\n-- При мультиселекте брать экшоны из первого выбранного тикета.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744071729466434/744071729466434", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744071729466435", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-07-16T04:11:52.828Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-09-04T15:32:16.264Z", "name" : "Детальная информация по Задаче", "notes" : "- Карточка задачи\n- pAPI.ticket(ticketId)\n- IN.ticketId: \n- OUT: {\n    \"id\": ,\n \"title\" : ,\n    \"text\": ,\n    \"created\": ,\n\t\"address\": ,\n\t\"assignee\": { \n\t    \"id\" : ,\n\t    \"name\": ,\n\t\t\"role\": \n\t},\t\n\t\"duedate\": ,\n\t\"karma\": ,\n\t\"priority\": ,\n\t\"status\": {\n \"id\" : ,\n \"title\" : ,\n \"datetime\": ,\n }\n\t],\n\t\"actions\": [\n\t  {\n\t   \"id\" : ,\n\t   \"title\": ,\n\t  }\n\t]\n}\n\n#UPD.1. \n- Добавил statusdate для даты текущего статуса - пускай будет\n\n#UPD.2.\n- Переформировали status в модель.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744071729466435/744071729466435", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "744071729466436", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-07-16T04:12:12.571Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-09-04T15:32:04.010Z", "name" : "История задачи", "notes" : "- Тут всё просто - список вешек\n- https://www.figma.com/proto/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=181%3A233&scaling=min-zoom\n- pAPI.ticketHistory(ticketId)\n-- IN.ticketId = \n-- OUT: [ {\n--- \"id\": \n--- \"title\" : ,\n--- \"user\" : {\n---- \"id\" : ,\n---- \"name\" : ,\n---- \"role\" : \n--- },\n--- \"datetime\" : ,\n--- \"current\" : \n } ]", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/744071729466436/744071729466436", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "782006182531533", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-08-17T04:29:08.528Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-09-04T15:31:47.445Z", "name" : "Кастомные пуши по задачам", "notes" : "- в data у нас есть event, который по умолчанию \"message\" - это чатовый пуш, так уж повелось, но появились новые event:\n-- ticketbatch\n--- Наряду с ним в data приходит ticketBatchId (bigint)\n--- Если получаем, то пишем mbody и отсылаем в экран ticektBatch(ticketBatchId)\n-- ticket\n--- Наряду с ним в data приходит ticketId (bigint)\n--- Если получаем, то пишем mbody и отсылаем в экран ticekt(ticketId)\n\n#UPD.1\n- В ticketbatch и ticket добавил msgId (они всё равно приходят в чаты)\n-- Соответственно, на эти пуши тоже надо слать соответствующий messageReceived(msgId)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/782006182531533/782006182531533", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "786058958374681", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-08-20T10:49:43.560Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-09-04T15:31:26.605Z", "name" : "Кастомный action для сообщений в чатах", "notes" : "- Появляется новый экшон в сообщении\n-- actions = [ \n { id: \"link:\" + <\"ticket\",\"ticketbatch\">, // link:ticket, link:ticketbatch\n eventId: \n \"title\":\"Перейти\", \n \"selected\": ,\n \"status\": <1(enabled)|0(disabled)>, \n } \n ]\n-- Как может быть понятным из названия - при нажатии должны перейти в соответствующий params.type интерфейс: тут пока либо ticket(params.eventId), либо ticketbatch(params.eventId) ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/786058958374681/786058958374681", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "800585794647063", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-08-30T08:45:17.985Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-09-04T15:31:16.124Z", "name" : "\"Старые\" Пуши", "notes" : "- Синопсис: Если \"счёркиваешь\" пуш по батчу, не открывая его, а потом открываешь, к примеру, список батчей, то прошлый пуш снова выскакивает. \n- Сабж: Надо удалять повторную проверку и выставление пуша для батчей и тикетов. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "744071729466431", "name" : "Проект \"Задачи\" / Газон", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/800585794647063/800585794647063", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "812905045269161", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:23.624Z", "created_at" : "2018-09-10T06:06:38.139Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:24.027Z", "name" : "Задачи / Комментарии & Вложения", "notes" : "Комментарии и вложения\n- Мокап тут: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=1434%3A926 \n-- В серых кружках - да, аватарка, берётся из author.image\n-- На этом этапе не смотрим на тулбар и фиды, это в следующем\n-- Кнопку SHOW_HISTORY убрать (сам экран пока оставляем в проекте), будем обкатывать вариант с интеграцией истории в портянку комментов. \n\n- Модель ticket() расширяется\n-- На верхнем уровне появляется параметр \"comments\": [ {\n--- id: bigint,\n--- type: <\"statement\",\"status\">, \n---- В мокапе показано два стиля в портянке комментария. \"серый-мелкий\" типа \"Петров завершил задачу\" - это элемент истории \"status\", а остальное с аватарками - это \"statement\"\n---- Для статусов контекстного меню редактирования нет, они неактивны. Идентификаторы статусов так же фиктивны по отношению к комментам.\n--- author: {\n---- id : bigint,\n---- name : string(100),\n---- role : string(40)\n---- image: string(255) // URI\n---- },\n--- datetime: ,\n--- text: string(2048)\n--- attachments: [ {\n---- title: string(100),\n---- type: <\"file\", \"image\", \"video\", \"audio\">, //Реализуем пока file и image\n---- size: uint\n---- uri: \n---- thumb_uri : \n--- }, ...]\n--- },...\n-- ] \n\n#UPD.1.\n- attachments расширили до size + thumb_uri\n\n#UPD.2.\n- Нужно всё-таки точное время в метках комментариев в прошлом, т.е. писать не просто \"Day\", а \"Day H:i\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/812905045269161", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "812905045269162", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-09-10T06:07:42.219Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-09-20T13:21:26.429Z", "name" : "CRUD комментария", "notes" : "- ticketAddComment( ticketId:bigint, text:string(2048) [, attachments])\n-- IN: \n--- ticketId : идентификатор тикета\n--- text: комментарий UTF-8\n--- attachments: [ ,... ] - массив файловых ключей\n-- OUT { // Модель коммента\n--- id : bigint,\n---  type: \"statement\",\n---  author : {\n----  id : bigint,\n----  name : string(100),\n----  role : string(40),\n----  image : string(255) // URI аватарки\n--- }\n--- text: string(2048) \n--- \"attachments\" : []\n-- }\n-- ERRORS: \n--- Не существует тикета, \n--- Недостаточно прав, \n--- Текст слишком большой\n\n- ticketRemoveComment( commentId: bigint )\n-- IN: \n--- commentId : идентификатор комментария\n-- OUT: \n--- result: \"ok\"\n-- ERRORS: \n--- Не существует, \n--- Недостаточно прав\n\n- ticketUpdateComment(commentId:bigint, text:string(2048))\n-- IN \n--- commentId: идекнтификатор комментария\n--- text: текст комментария в UTF-8\n-- OUT\n--- result: \"ok\"\n-- ERRORS: \n--- как в ticketAddComment, только с commentId, \n--- Текст слишком большой\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "812905045269161", "name" : "Задачи / Комментарии & Вложения", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/812905045269162/812905045269162", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "812905045269163", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2018-09-10T06:07:45.789Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2018-10-16T04:58:38.268Z", "name" : "Общий файловый CRUD ", "notes" : "- fileCreate(name:string(128), type:<\"file\", \"image\", \"video\", \"audio\">, size:uint ) \n-- IN:  \n--- name: Полное название файла (с расширением)\n--- type: медиа-тип файла\n--- size: размер файла в байтах <= 10MB\n-- OUT:\n--- { \n--- publicKey:string(128), - ключ файла\n--- download_uri:string(255), - download URI (MULTIPART POST)\n--- upload_uri:string(255) - upload URI\n--- }\n-- ERRORS: \n--- Недостаточно прав, \n--- Слишком большой файл\n\n- загрузку производим мультипартом по upload_uri с передачей в параметрах &sid=\n-- файл в поле 'file'\n\n- fileDelete(publicKey) - удаляет файл\n-- IN\n--- publicKey: файловый ключ\n-- OUT\n--- {result:\"ok\"}\n-- ERRORS\n--- Файл не существует\n--- Недостаточно прав", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "812905045269161", "name" : "Задачи / Комментарии & Вложения", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/812905045269163/812905045269163", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "854369597091623", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:17:25.427Z", "created_at" : "2018-10-08T05:02:32.134Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:25.724Z", "name" : "Задачи / Туториал", "notes" : "-https://docs.google.com/document/d/1uN8_HXPu9HLhk1rlvTtCjRdcrQjApRLwZ0G5ygNXnwk/edit?ts=5b8cfe9b\n-- Читать нижнюю часть с картинками и текстами. \n-- Автоматическая активация по тому же принципу \"первый раз зашёл\".", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/854369597091623", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "864379526815143", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:27.245Z", "created_at" : "2018-10-16T03:29:38.290Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:27.549Z", "name" : "Нижний тулбар", "notes" : "- Нижний тулбар должен быть доступен на основных экранах:\n-- Показатели\n-- Выполнение планов\n-- Рейтинги (Продавцы и Магазины)\n-- Задачи\n- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=144%3A0\n-- Начальный вид в \"Газон / Основа\" - кадр \"Toolbar_simple_it1\"\n-- Слева-направо переходы по шорткатам:\n--- Общие показатели\n--- Задачи\n--- События \n--- Профиль\n\n-- События снабжаются тикером новых событий. \n--- Для начала пойдёт без каунтера, просто синяя точка, в случае присутствия нового события.\n---- Для этого, думаю, проще хранить lasteventId и сравнивать\n--- Нужно обсудить откуда удобней брать оперативно эту информацию", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/864379526815143", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "864379526815144", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:29.166Z", "created_at" : "2018-10-16T03:40:30.263Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:29.593Z", "name" : "Экран фида событий", "notes" : "- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/Tasks_android?node-id=1994%3A5054\n-- Внизу, всё, что с префиксом Feed_\n- метод pAPI.feed([offset =0 ,count  = 10, eventsId = false])\n- IN\n-- offset (опционально): отступ от свежих \n-- count (опционально): кол-во получаемых записей (по умолчанию 10)\n-- eventsId (опционально): массив идентификаторов событий (на будущее)\n- OUT data: {\n-- id: ,\n-- datetime: ISO8601\n-- author: {\n--- id: ,\n--- name: ,\n--- role: ,\n--- image: \n-- },\n-- text: ,\n-- target: {\n--- \"id\": \n--- \"name\" : \n--- \"type\" : \n<#UPD.1>\n--- \"parentType\": \n--- \"parentId\" : \n\n-- } \n- } \n\n- Сборка текста: Author.name text target.name\n- При клике - переход на соответствующий экран target.type + target.id\n\n#UPD.1\n- В target добавлены parentType, parentId. \n-- Если они null, то роутим как есть в target[type/id] экран\n-- Иначе, \n--- для comment parentType = 'ticket', parentId = ticket.id, роутим в интерфейс тикета, и скроллим до коммента target.id.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/864379526815144", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "864379526815145", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2018-10-16T03:43:40.945Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:36.357Z", "name" : "Профиль пользователя", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/864379526815145", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "879915594800121", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:38.913Z", "created_at" : "2018-10-24T03:27:32.609Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:39.050Z", "name" : "Оснастить ячейки рейтингов границами", "notes" : "- Изображение приложено. Цвет бордера - #e1e1e1 (как у фона заголовков)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/879915594800121", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "879915594800122", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2018-11-08T02:33:40.088Z", "created_at" : "2018-10-24T03:29:27.131Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2018-11-08T02:33:40.260Z", "name" : "Расширить валидатор логина", "notes" : "- кроме просто e-mail-паттерна может быть ещё две:\n-- email/email (my@account.ru/his@account.com)\n-- word/email (my/his@account.com)\n-- Ну и просто email\n- explode по '/' , trim частей, и обратная сборка с разделителем\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/879915594800122", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "603504768154", "name" : "high priroty", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "900308826299202", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:42.736Z", "created_at" : "2018-11-07T03:01:44.531Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:43.077Z", "name" : "Выпиливаем чаты", "notes" : "- Интерфейсы и экраны оставляем в прошлом\n- Так же и иконку на \"Общих показателях\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/900308826299202", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "900308420034019", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:49.122Z", "created_at" : "2018-11-07T03:02:09.906Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:49.503Z", "name" : "Общие показатели / Сортировка показателей", "notes" : "https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6243%3A0\n- Вместо иконки чатов появляется иконка сортировки показателей\n-- При её нажатии раскрываются варианты сортировки\n--- По убыванию приоритета\n---- Это стандартный вариант по metrics.order ASC\n--- По убыванию отставания прогнозов показателей \n---- Это сортировка по plan - predict DESC\n--- По убыванию отставания фактов показателей\n---- Это сортировка по plan_today-y DESC\n- Пользовательскую сортировку убираем\n-- Я так понимаю, можно пулл-ту-рефреш в этом случае попросить?\n\n#UPD.2\n- Пользовательское размещение блоков вертаем обратно, пользователи завыли - это гут. \n-- Дополнительным выбором пункта \"Пользовательская сортировка\". \n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/900308420034019", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "916751848630472", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:17:51.249Z", "created_at" : "2018-11-20T07:12:34.707Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:17:51.707Z", "name" : "Детальный просмотр показателя / Округление до сотых", "notes" : "- Поступила инфа, что в детальном и по продавцам идёт округление до десятых - хотят до сотых.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/916751848630472", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1107515069111970", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2019-01-31T04:14:12.600Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:39:18.007Z", "name" : "Задачи / Проект \"Действия\"", "notes" : "Доформализовали схему взаимодействия с задачами до разумного, поэтому приступаем.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1107515069111970", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1107515069111971", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-01-31T04:15:12.652Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-01-31T18:31:18.100Z", "name" : "Предварительный этап для Действий / Действие \"Открыть\"", "notes" : "Спека действий остаётся в силе, приходя в векторе actions для каждого тикета\nНо со стороны приложения это перестаёт быть прозрачным набором пунктов меню для выполнения ticketAction():\n- Есть ограниченный предопределённый набор действий, для которых реализуется свой флоу:\n-- action.id = 1 (Отчитаться)\n-- action.id = 2 (Поручить)\n-- action.id = 3 (Открыть)\n- Эти действия могут приходить в векторе actions тикета, те, что не предопределены - игнорируются.\n- В этой задаче нужно реализовать флоу для действия \"Открыть\" (по факту в тикетах может прийти до следующего этапа реализации только оно)\n-- доп. параметры действия:\n-- href = \n-- При активации, соответственно, переходим по этому URL, добавив к нему GET-параметр ticketId=, в браузер\n--- Учтите, там могут быть свои GET-параметры, поэтому добавляйте по всей строгости.\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1107515069111971/1107515069111971", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1108974024418106", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-02-11T02:52:38.493Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-18T10:01:52.611Z", "name" : "Действие \"Отчитаться\"", "notes" : "- id действия == 1\n- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A17\n-- В фигме для Андроида - это \"Задачи / Действия 2\"\n-- Лучше запустить просмотр прототипа прежде определения с ориентацией\n- В прототие реализовано больше функций, поэтому ограничивать буду описанием конкретной задачи:\n-- В дропдаунах у действий появились иконки - их нужно хардкоднуть по идентификатору действия\n-- В просмотре конкретной задачи для скорости работы пользователя и акцента его внимания помимо контекстного меню появляются шорткаты в подножии описания. Там место для первых двух действий из списка (на самом деле их будет всегда не больше двух, но это как ремарка для возможных вопросов).-. При нажатии на \"Отчитаться\" показывается соответствующая форма, предварительные данные для которой берутся из:\n--- ticket.actions[].reasons = [ {//Причины\n---- id : \n---- title: <Название причины VARCHAR(100)>,\n---- icon: \n---- routes: [ // Получатель - если один, то дропдаун зафиксирован\n----- [ id: , \n----- title: <Название маршрута varchar(255)>],...\n---- },...\n--- ]\n--- Формат работы с аттачментами такой же как с комментариями\n-- Сабмит производится в метод ticketReport(ticketId, reasonId, routeId, text, attachments = [])\n--- IN: \n---- ticketId = ticket.id\n---- reasonId = ticket.reasons[selected].id,\n---- routeId = ticket.reasons[selected].routes[selected].id,\n---- text = Комментарий\n---- attachments = [Формат работы с аттачментами такой же как с комментариями]\n--- OUT : { <Как при ticketAddComment, только type == \"report\" > } // Пока можно не парсить\n--- По сабмиту возвращаемся в пакетный список тикетов со снекбаром \"Отчёт отправлен\" и перечитываем список \n\n#UPD.1.\n- Коли в ближайшее время доберёшься, промежуточный релиз чисто с шорткатами в просмотре задач. Для Виты надо более наглядное \"Открыть\".\n\n#UPD.2.\n- При отчёте в тикет добавляется коммент с новым типом 'report', обрабатывать его пока как тип status по визуалу с текстом: $name + \"отчитался по задаче: \"+$comment\n\n#UPD.3\n- Айэмсоре, reasons перенёс в actions[].reasons, теперь они стали зависимыми, т.к. всё-таки хотят разные наборы причин для действий. \n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1108974024418106/1108974024418106", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1108974024418108", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-02-11T02:53:05.521Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-03-20T09:37:33.037Z", "name" : "Участники", "notes" : "- Макет: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A17\n- Тут всё более-менее однозначно: \n-- В Экране Ticket Появляется строчка с аватарками \"Участники\", изображения берём из Ticket.followers\n-- При клике на строчку открываем диалог\n-- Если owner.isme == true, то доступна фурнитура добавления и удаления:\n--- метод удаления: \n---- ticketFollowersRemove( $ticketId, userIds : Array of bigint )\n--- метод добавления:\n---- ticketFollowersAdd($ticketId, userids: Array of bigint)\n--- Получение пользователей для вертушки добавления новых Участников:\n---- ticketStaffList($ticketId):\n----- [ { id: , \"name\": ,\"role\":,\"image\":},.. ] \n- Соответствующие спеки в Ticket:\n            \"followers\": [\n                {\n                    \"id\": ,\n                    \"name\": \"Игорь Петров\",\n                    \"role\": \"Зональный директор\",\n                    \"image\": \"https://ui-avatars.com/api/?rounded=true&background=4035a2&name=%D0%98%D0%B3%D0%BE%D1%80%D1%8C+%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2\"\n                },\n                {\n                    \"id\": ,\n                    \"name\": \"Вера Дулина\",\n                    \"role\": \"Директор магазина\",\n                    \"image\": \"https://ui-avatars.com/api/?rounded=true&background=45e654&name=%D0%92%D0%B5%D1%80%D0%B0+%D0%94%D1%83%D0%BB%D0%B8%D0%BD%D0%B0\"\n                },...\n            ],\n            \"owner\": {\n                \"id\": ,\n                \"isme\": \n            },\n- ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1108974024418108/1108974024418108", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1113485203272608", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-03-11T04:23:08.225Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-03-20T09:37:25.365Z", "name" : "Статусы и иконки", "notes" : "- В экранах ticketBatches, ticketBatch переходим с Ticket.status_id на Ticket.status :\n-- {\n\t\t\"id\" : \n\t\t\"title\" => ,\n\t\t\"datetime\" => ,\n\t\t\"priority\"=>,\n\t\t\"reasonId\"=>\n--  }\n- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A17 / Действия 2\n- Иконку для Ticket.status.id == 50 - нужно сменить иконку на иконку действия \"Отчитаться\".\n- Далее, у нас появляются хардкод-иконки детализации статуса справа (см. макет)\n-- Инфа берётся из Ticket.status.reasonId, иконки из Frame3 (скрин приложил)\n--- 0 - Нет иконки\n--- 1 - Приоритет (иконка алерта)\n--- 10 - Нет на складе\n--- 11 - Нет спроса\n--- 255 - Причина не установлена \n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1113485203272608/1113485203272608", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1108974024418107", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-02-11T02:53:02.047Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-18T12:49:14.287Z", "name" : "Действие \"Назначить\"", "notes" : "- id действия == 2\n- спека уже стандартная из действия \"Отчитаться\"\n-- Сабмит производится в метод ticketAssign(ticketId, reasonId, routeId, text, attachments = [])\n--- IN: \n---- ticketId = ticket.id\n---- reasonId = ticket.actions[ACTION_ASSIGN].reasons[selected].id,\n---- routeId = ticket..actions[ACTION_ASSIGN].reasons[selected].routes[selected].id,\n---- text = Комментарий\n---- attachments = [Формат работы с аттачментами такой же как с комментариями]\n--- OUT : { \"assignee\": { \"name\": <ФИО назначенного>,\"role\":<Роль назначенного> } } // Пока можно не парсить\n--- По сабмиту возвращаемся в пакетный список тикетов со снекбаром \"Задача назначена \" + OUT.assignee.name + ' ( ' + OUT.assignee.role.' )' и перечитываем список.\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1108974024418107/1108974024418107", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119160760651995", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-18T04:25:06.419Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-18T12:49:23.754Z", "name" : "Действие \"Отметить выполнение\"", "notes" : "- id действия == 50\n- Нужен диалог подтверждения \"Задача будет отмечена как выполеннная (Продолжить)\"\n-- Сабмит производится в метод ticketMarkAsComplete([ticketIds])\n--- IN: \n---- ticketIds = Array of ticket.id\n--- OUT : { } // Пока можно не парсить\n--- По сабмиту возвращаемся в пакетный список тикетов со снекбаром \"Задача отмечена как выполненная\" и перечитываем список.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119160760651995/1119160760651995", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1108974024418110", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2019-02-11T03:40:04.978Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-02-11T03:40:07.518Z", "name" : "Выключить Нотификации", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1108974024418110/1108974024418110", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1108974024418111", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2019-02-11T03:40:18.151Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-02-11T03:40:18.300Z", "name" : "Установить Напоминание", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1107515069111970", "name" : "Задачи / Проект \"Действия\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1108974024418111/1108974024418111", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1114897690894012", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:08.173Z", "created_at" : "2019-03-19T09:45:19.494Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:08.658Z", "name" : "Задачи / Показ списка батчей / Раскрытие батча", "notes" : "- Если в ticketBatches пришёл один батч, то раскрывать список задач полностью, без сокращения с show all", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1114897690894012", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118372878390700", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:09.933Z", "created_at" : "2019-04-12T10:25:37.769Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:10.383Z", "name" : "Задачи / Просмотр / Убрать \"карма-индикатор\"", "notes" : "- Иконку Р со значением долой. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1118372878390700", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118587469579965", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:18:13.167Z", "created_at" : "2019-04-15T03:17:37.052Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:39:42.513Z", "name" : "Пакет обновлений по фидбэку #201904-1", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1118587469579965", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1118587469579966", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-15T03:17:54.791Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-17T05:46:54.536Z", "name" : "Задачи / Комментирование&Отчёты / Работа с открытием клавиатуры", "notes" : "- При открытии клавиатуры нужно сокращать хидер задачи до двух строчек, как это показано в исходниках (см вложение)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118587469579966/1118587469579966", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118587469579967", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-15T03:21:33.088Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-22T11:15:59.069Z", "name" : "Целевые нотификации при открытом приложении", "notes" : "Нужно отображать нотификации, если приложение открыто и целевой экран и объект нотификации отличается от того, где находится пользователь.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118587469579967/1118587469579967", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118587469579970", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-15T03:23:37.843Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-15T11:16:24.046Z", "name" : "Отчёт по задаче / Скролл коммента", "notes" : "- Там похоже однострочный инпут - не даёт скроллить содержимое коммента. Давай увеличим строчность до двух с возможностью скролла.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118587469579970/1118587469579970", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1118590257736522", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-15T03:59:27.943Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-15T11:16:30.962Z", "name" : "Стиль для отчёта", "notes" : "-https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A17 (в самом низу)\n- Новый стиль если comment[].type == report, относится ко всему блоку (вместе с аттачментами)\n- В комменте появилось поле reasonId - это для иконки причины, если false, то нет\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1118590257736522/1118590257736522", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119326758861346", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-19T09:23:01.446Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-21T17:39:55.671Z", "name" : "Коррекция стилей для статусных комментариев report и assign", "notes" : "- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=6798%3A17 (в самом низу)\n- Наряду с остальными, появляется Message.type == assign (Назначить)\n-- Для него стиль \"синенький\", который был до этог назначен на type = report\n- Для Message.type == report теперь зелёненький", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119326758861346/1119326758861346", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119470341173184", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-22T10:53:54.646Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-22T14:14:12.358Z", "name" : "Переход со статус-иконок на цветовую и шрифтовую индикацию", "notes" : "- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10314%3A163\n- Отказываемся от статус-иконок (которые слева) - высвобождается немного места для текста.\n- Вместо этого появляется кодировка статусов через шрифты и цветные ярлыки. Status\n-- <20 - Жирный (Непрочитано)\n-- >=20 \n-- = 21 - Оранжевый ярлык\n-- IN (25,30,40) - Красный ярлык\n-- = 100 - Зелёный ярлык", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119470341173184/1119470341173184", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119470341173185", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-22T11:08:45.574Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-22T14:14:21.007Z", "name" : "Рефакторинг шапки пакета и тикета", "notes" : "- https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10314%3A163\n- Шрифт названия ТТ притушаем\n- Шрифт исполнителя задачи черним\n- Около исполнителя появляется аватарка >> assignee.image\n- Иконка будильника изменяется", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119470341173185/1119470341173185", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119774850606516", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-04-24T02:50:10.649Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-04-24T03:50:41.268Z", "name" : "Автотекст для message.type = assign", "notes" : "Проворонил - там должно же быть не \"Отправил(а) отчёт\", а \"Назначил(а) задачу\"\nНу, и в type=report поправить русский на \"отправила(а) отчёт\"", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1118587469579965", "name" : "Пакет обновлений по фидбэку #201904-1", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1119774850606516/1119774850606516", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1119785418364262", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2019-04-24T05:47:44.127Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-04-24T05:49:56.733Z", "name" : "Задачи / Выделение статус \"Прочитано\"", "notes" : "- Рефакторим этот момент, т.к. это User-specific + flow статус, так что придётся его вынести из статуса тикета\n-- status.is_read = [1(Прочитано), 0 ( Не прочитано) ]\n-- Соответственно, завязываем индикацию на него, уходим от Ticket.status", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1119785418364262", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1126368218693856", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:17.671Z", "created_at" : "2019-06-10T04:28:36.293Z", "due_at" : null, "due_on" : "2019-06-18", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:18.039Z", "name" : "Задачи / Список пакетов задач / Трекер Выполнения дисциплины", "notes" : "https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=11741%3A17299\n- Вверху списка пакетов появляется фиксированный блок с индикацией выполнения дисциплины\n-- Справа отображаем текущий период\n-- Слева - индикатор\n--- Состояние индикатора определяется по TicketBatch().discipline = {warning_severity: , administrative_severity: }\n---- discipline.warning_severity относится к \"смайлу\" и имеет четыре состояния:\n----- 0 - зелёный смайл\n----- 1-2 - первые две жёлтые риски с жёлтым смайлом\n----- 3 - красная риска с красным смайлом\n---- discipline.administrative_severity относится к красному каунтеру справа и от него зависит смайл:\n----- 0 - красного i-каунтера нет\n----- >=1 красный i-каунтер и смайл красный \"злой\"\n\n- При нажатии на индикатор переходим на disciplineTrack(eventId)\n-- eventId - это идентификатор дисциплины\n-- OUT data (двухмодельное _RECORD, _PERIOD в зависимости от type ): [ {\n--- type: < TRACK_TYPE_WARNING(1) - Предупржедение (_RECORD), TRACK_TYPE_WARNING(2) - Административное оповещение (_RECORD), TRACK_TYPE_PERIOD_START(250) - Открытие периода (_PERIOD), TRACK_TYPE_PERIOD_END(251) - Закрытие периода (_PERIOD)>,\n---- <Модель _RECORD>\n---- severity : \n---- reason : \n---- ts: <персональная метка дата-времени>\n---- batchId: \n---- \n---- <Модель _PERIOD>\n---- period : { \"from\" : , \"to\": } \n---- actual : \n---- \n--- },... ]\n\n- В фиде будет возвращаться список, из элементов _RECORD и _PERIOD - _PERIOD будут \"обрамлять\" _RECORD, т.е. сначала всегда гарантированно _PERIOD_START, потом _RECORD предупреждения и/или административные оповещения, потом _PERIOD_END и т.д.\n- Заголовки _RECORD статичные по type (Брать из мокапа)\n- Сортировка as is, вверху будут самые свежие. \n-- period.actual == \n\n#UPD1.\n1. В трекере дисциплины, если severity == 0, но при этом Административное - рисовать иконку как в иникаторе (там злая рожица без заполненных секторов)\n2. Переход на ticketBatch(track.batchId) при клике на элемент трека (там есть batchId)\n3. Когда в ticketBatches() пусто, там был стаб \"Нет записей\", он куда-то делся.\n4. Ещё нужна реализация \"зелёного смайла\" в трекере: type = 252,  Рабочий заголовок \"Всё в порядке\" с текстом \"Продолжайте в том же духе\" (по модели периода)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1126368218693856", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1126948675404841", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2019-06-13T08:49:27.942Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-06-13T08:49:28.249Z", "name" : "", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1126368218693856", "name" : "Задачи / Список пакетов задач / Трекер Выполнения дисциплины", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1126948675404841/1126948675404841", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1126914773438788", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:20.994Z", "created_at" : "2019-06-13T06:19:19.984Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:21.321Z", "name" : "Задачи / Поддержка тегов в комментариях и описаниях задач", "notes" : ", ,, , ,
, ,
", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1126914773438788", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "16307517310816", "name" : "android", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1127490799219689", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:25.784Z", "created_at" : "2019-06-18T04:55:09.132Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:26.017Z", "name" : "Задачи / Действие \"Открыть\" / Расширение возможностей для открытия экранов приложения", "notes" : "- в href теперь может передаваться следующая конструкция local://<название экрана>?\n-- <Название экрана из валидируемого списка, конечно>\n-- по JSON-object спеке, например:\n--- eventId=12&filter.uid=112232323 >> { eventId:12, filter: { uid : 112232323 } }\n- Соответственно, если в начале встречено local://, и название экрана попадает в валидные - открываем экран с указанными параметрами.\n- Реализация перехода на экран:\n-- disciplineTrack(eventId, filter.uid)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1127490799219689", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1129976447983807", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:28.101Z", "created_at" : "2019-07-05T10:07:25.392Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:28.491Z", "name" : "Сплэш-скрин", "notes" : "Волей твоей на старте", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1129976447983807", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "1159486457487", "name" : "PARTNERS", "resource_type" : "tag" }, { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1131172272503411", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-07-15T03:55:34.918Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-08-23T14:53:25.113Z", "name" : "Heado / Декомпозиция приложений", "notes" : "На выходе мы должны получить два самостоятельных приложения с рабочими названиями Heado Dashboards и Heado Taskmessenger\n\nHeado Dashboards ( Хедо Дашборды)\n- Это текущий Giftoman Business, откуда выпилены Задачи (вместе с нижним баром и прочими навигациями). Остаются только показатели, рейтинги и прочее.\n- Иконки и сплэшскрин в пути\n\nHeado Taskmessenger ( Хедо Бизнес Коммуникатор )\n- Макет основных интерфейсов https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10455%3A6\n- Логин-скрин общий с Heado Dashboards\n- Иконки и сплэшскрин в пути\n- Основной акцент на навигации а-ла Slack, туда интегрируется TicketSummary(), который по всей видимости перейдёт в messengerSummary() с дополнительным обвесом\n- Появляется экран настроек Пользователя (под него отдельный проект и обвес API)\n- Остальное - это Задачи как большей частью и было с небольшими коррекциями блоков ( due date сделали более компактными, участников в линеечку\n\n#UPD.1.\n- Для разделения пушей:\n-- fcmRegister(registrationId, deviceId) >> deviceId += '::'+ [\"heado/dashboards\",\"heado/taskmessenger\"]", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1131172272503411", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1132430787081859", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-07-23T04:47:36.683Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-08-01T07:09:21.351Z", "name" : "Коммуникатор / метод messengerSummary() ", "notes" : "- pAPI.messengerSummary()\n-data : {\n\"tasks\": [ //Задачи по старой схеме из ticketSummary (done/failed)\n                {\n                    \"eventId\": \"2\",\n                    \"inprocess\": \"19\",\n                    \"done\": \"7\",\n                    \"failed\": \"50\",\n                    \"priority\": \"50\",\n                    \"title\": \"Критические продажи\"\n                },\n                {\n                    \"eventId\": \"3\",\n                    \"inprocess\": \"2\",\n                    \"done\": \"0\",\n                    \"failed\": \"6\",\n                    \"priority\": \"6\",\n                    \"title\": \"Выполнение планов\"\n                },\n                {\n                    \"eventId\": \"4\",\n                    \"inprocess\": \"0\",\n                    \"done\": \"0\",\n                    \"failed\": \"1\",\n                    \"priority\": \"1\",\n                    \"title\": \"Закрытие магазина\"\n                }\n            ],\n            \"channels\": [ // Каналы, пока заглушки >> pAPI.messengerChannel(id)\n                {\n                    \"id\": \"verylongguid100-12345\",\n                    \"name\": \"Общий\",\n                    \"hasNewMessages\": false,\n                    \"private\": false\n                },\n                {\n                    \"id\": \"verylongguid100-23456\",\n                    \"name\": \"Служба поддержки\",\n                    \"hasNewMessages\": false,\n                    \"private\": false\n                }\n            ],\n            \"chats\": [ // Чаты - тоже >> pAPI.messengerChat(id)\n                {\n                    \"id\": \"verylongguid100-234234\",\n                    \"name\": \"Кристина Каримова (вы) \",\n                    \"hasNewMessages\": false,\n                    \"online\": true\n                }\n            ]\n}", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1131172272503411", "name" : "Heado / Декомпозиция приложений", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1132430787081859/1132430787081859", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1134242455761777", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:39.088Z", "created_at" : "2019-08-05T11:35:46.593Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:39.558Z", "name" : "Heado / Прототип для проверки платформы", "notes" : "- Флаттер-приложение с опционально общим ядром\n- Функционал: \n-- логин, \n-- боковое меню \n---список тасков. \n- Онлайн онли.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1134242455761777", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1135895926968161", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:47.323Z", "created_at" : "2019-08-16T06:10:28.293Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:47.679Z", "name" : "Сообщения / Редактирование сообщения / Исходный текст из plainText", "notes" : "- В связи с тем, что в message[].text теперь преобразованный в HTML текст, для редактирования брать исходный текст из message[].plainText в случае, если он !=null", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1135895926968161", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1135958506488714", "actual_time_minutes" : null, "assignee" : { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-08-23T09:00:06.911Z", "created_at" : "2019-08-16T14:15:44.266Z", "due_at" : null, "due_on" : "2019-09-02", "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-08-23T09:00:07.123Z", "name" : "Heado / изменение кнопки \"Впервые здесь\" на экране логина", "notes" : "Экран логина – изменить кнопка «Впервые здесь? Зарегистрируйтесь!» на «Вопрос? Напишите нам» и изменить ссылку на http://support.heado.ru/ticket", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1135958506488714", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136107904448705", "actual_time_minutes" : null, "assignee" : { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-08-23T12:40:21.723Z", "created_at" : "2019-08-19T07:08:52.981Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-08-23T12:40:21.980Z", "name" : "Heado / ссылка на privacy policy", "notes" : "Для приложений HEADO - новая ссылка на Прайвеси полиси - https://heado.ru/privacypolicy надо обновить", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136107904448705", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136302416670405", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:57.015Z", "created_at" : "2019-08-20T05:53:30.618Z", "due_at" : null, "due_on" : "2019-09-02", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:57.318Z", "name" : "Heado / Taskmessenger / Сквозной переход в ticket если в пакете одна задача", "notes" : "В принципе, сабж - если задача в списке батча одна, то берём её id и переходим на ticket(id) - это решит проблему вспышек агрессии пользователя в некоторых случаях", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136302416670405", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136849719061842", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:18:52.867Z", "created_at" : "2019-08-23T06:38:31.551Z", "due_at" : null, "due_on" : "2019-09-02", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:18:53.167Z", "name" : "Heado / Taskmessenger / Флоу отправки сообщения", "notes" : "Не буду тут опускаться в детали и механику - это уже на твоей стороне.\nМне нужно следующее поведение:\nЧтобы при отправке сообщения оно добавлялось ASAP до всех длинных операций. Т.к. респонсив для Пользователя - это неизбежность. \nСпиннеры там будут или заглушки для загружаемых элементов, в принципе готов на компромисс, но нужно, чтобы пользователь увидел после клика на \"отправить\" что он что-то отправил.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136849719061842", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136865750516107", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:00.762Z", "created_at" : "2019-08-23T07:04:50.277Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:01.520Z", "name" : "Heado / Taskmessenger / Навигатор по контактам", "notes" : "Heado / Taskmessenger / Навигатор по контактам https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10455%3A6 (Invite people#)\nЭтот экран будет использоваться для создания чата и канала/приглашение в канал.\n- В случае с чатом - сингл-селект\n- В случае с каналом - мультиселект\n- метод messengerContacts(filters)\n-- IN: filter: (optional)\n--- currentUserId : ,\n--- searchString: \n-- OUT: data {\n   current: Текущий пользователь \"отсчёта\", чьё окружение показывается (отображается в заголовке экрана)\n            {    // Стандартная модель контакта-\"участника\"\n\t\t        id : ,\n                name : \n                role : ,\n                image : \n            },\n   heads: [ // Начальники\n           {    // Стандартная модель контакта-\"участника\"\n\t\t        id : ,\n                name : \n                role : ,\n                image : \n            },\n   ],\n   siblings: [ //Одноуровневые\n { },..\n   \n   ],\n   \n   subordinates: [ //Подчинённые\n { },...\n   \n   ],\n\n found: [ // Найденные по filter.searchString\n {},.. \n ]\n   \n} \n\n- В случае, если блок heads/siblings/subordinates/found - пустые - их не отображаем.\n-- Кейз, когда никого нет возможен только при поиске, там отдельный экран \"ничего не найдено\"\n\n#UPD.1.\n- В спеку добавил блок found, дабы упростить режим общего поиска\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136865750516107", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136865750516108", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-08-23T07:05:07.920Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-08-26T14:30:08.286Z", "name" : "Heado / Taskmessenger / Создание чата", "notes" : "- метод messengerChatAdd(contactId) \n- OUT: Стандартная модель чата messengerChat() (с сообщениями)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136865750516108", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136865750516109", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:03.456Z", "created_at" : "2019-08-23T07:06:03.398Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:03.899Z", "name" : "Heado / Taskmessenger / Создание канала", "notes" : "Метод messengerChannelAdd(name, participants, purpose = '', private = false )\n- Стандартная модель канала messengerChannel()", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136865750516109", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136865750516110", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:06.029Z", "created_at" : "2019-08-23T07:07:11.843Z", "due_at" : null, "due_on" : "2019-09-02", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:06.311Z", "name" : "Heado / Статистика firebase", "notes" : "- Логин\n- Разлогин\n- Активация приложения\n- Трекаем навигацию по экранам\n- Отдельно по возможности трекаем реакцию на пуш (что нажал на пуш)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136865750516110", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136849719061841", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:09.036Z", "created_at" : "2019-08-23T06:11:48.315Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "2495641457848", "name" : "Илья", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:09.452Z", "name" : "Heado / Taskmessenger / Разделение блоков \"Задачи\" на специфичные", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136849719061841", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1140417448813027", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:11.738Z", "created_at" : "2019-09-18T10:48:42.778Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:12.148Z", "name" : "Giftoman + Heado / Добавление меток времени на фото перед отправкой", "notes" : "- Датавремя берём из exif, если нет, то фоллбэк до датавремя создания файла с добавлением \" *\"\n- В нижнем левом углу. Меры привожу в пикселах, т.к. на канвасе фотки по идее нет необходимости создания адаптивных лейаутов, главное чтобы видно было:\n-- Y-m-d H:i:s (ISO 8601 на 24-х часовом времени)\n-- Отбивка от левого и нижнего края: 50px\n-- Roboto Medium. 24px. Белый поверх чёрного, смещённого на 3px вправо и 3px вниз ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1140417448813027", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1136904751800217", "actual_time_minutes" : null, "assignee" : { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2019-09-03T03:55:32.344Z", "created_at" : "2019-08-23T12:40:51.964Z", "due_at" : null, "due_on" : "2019-09-02", "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-09-03T03:55:32.685Z", "name" : "Heado / Taskmessenger / Общий канал", "notes" : "Когда пишешь текст в \"обший канал\" - клавиатура сразу сворачивается, как будто я её закрыла. А в мессенджерах не так, клавиатура не сворачивается как только я нажимаю Отправить", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1136904751800217", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1140627554212731", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:13.806Z", "created_at" : "2019-09-19T09:04:02.031Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:14.209Z", "name" : "Heado / Taskmessenger / Навбар / Реформа каунтеров задач", "notes" : "- Макет в самом низу: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10455%3A6 \n- Теперь отображаем только каунтер tasks[].inprocess\n- Убираем dateFrom/dateTo фильтр - теперь оно работает в открытых рамках. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1140627554212731", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1141058281044739", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:15.885Z", "created_at" : "2019-09-23T11:04:31.499Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:16.170Z", "name" : "Heado / Taskmessenger / Переход на ленту задач", "notes" : "- Метод ticketFeed(filter [, offset=0]) - полный тёзка по спеке ticketBatches, с одним отличием - появился второй аргумент offset, позволяющий загружать задачи порционно (как сообщения в messengerChat)\n- Метод возвращает теперь портянку задач без фильтрации периода по убыванию due date ( т.е. первыми будут приходить актуальные задачи с due date в будущем)\n- Макеты под метод: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10455%3A6 (в самом низу TicketBatch_*)\n-- Индикатор дисциплины переходит в хидер в сокращённом варианте (без левого каунтера административных оповещений - только основной смайл-индикатор)\n-- Часть хидера с названием превращается в активный элемент дропа с выбором режима просмотра (filter.status): [1: Все задачи, 10 - Актуальные задачи (по умолчнию), 20 - Архивные задачи]\n-- Появляются разделители дат и их плавание (как в чатах)\n-- Т.к. ticketFeed() теперь возвращает задачи с due date в будущем, при посадке на экран нужно позиционировать список на первую задачу с due date = Сегодня\n-- Для аффорданса при первой посадке на экран добавляется флоатер возможности скроллить вверх в случе, если в \"будущем\" есть задачи. \n--- Исчезает при достижении верхней границы и больше не появляется в течении сессии работы с экраном\n-- В модели ticket добавился параметр для этого экрана - это archive. Если он == 1, то его элемент нужно притушать как указано в макете (0.7 opacity)\n\n#UPD.1.\n- Статус: 21 - Архив невыполненных\n- Статус: 22 - Архив выполненных", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1141058281044739", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1141742449869865", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-09-26T07:03:27.334Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2019-10-14T04:58:40.798Z", "name" : "Heado БК / Спецификация WebSocket", "notes" : "- Тестовый сервер: ws://185.22.234.67:7777\n- Общая спека запроса (JSON как водится): {\n-- id: , //Сквозной идентификатор запроса для асинхроннной работы коллбэка на всякий случай\n-- uid: , // Идентификатор Пользователя \n-- action: ,//Команда\n-- params: , // Параметры команды, содержимое варьируется в зависимости от команды,\n-- secret: , sha1(id+uid+action+server_secret) - server_secret = 786b992c7a88216ce5da5b36e8238d49\n }\n\n- Общая спека ответа: {\n-- id: , // Идентификатор запроса, на который следует ответа\n-- status: //Статус\n-- Если status == \"error\": err: { id: , text: }\n}\n\n- Список ошибок по протоколу этого уровня:\n-- 400 : Bad request\n-- 403 : No access to item/command\n-- 404 : Item not found\n-- 500 : Server malfunction\n\n\n- Методы (не буду писать в них шаблонный payload, только изменяющиеся и критичные параметры)\n-- \"register\"\n--- IN: params: []\n--- OUT: status: ok \n-- \"subscribe\"\n--- IN: params: [ uid1,...,uidN ]  \n--- OUT:status: ok ,  user_statuses: { uid1: ,...,uidN: } \n-- \"unsubscribe\"\n--- IN:params.ids : [ uid1,...,uidN ] <#UPD.4> Перевели на params.ids \n--- OUT:status: ok\n-- \"checkmessage\"\n--- IN:params:[msgId1,...,msgIdN]\n--- OUT: status: ok\n<#UPD.3>\n-- \"write\" \n--- Шлём params.event=\"start\" после начала печати в инпуте сообщения чата/канала/тикета\n--- Шлём params.event=\"stop\" по истечении 1000мс последнего напечатанного символа\n--- IN: params: {\"id\": ,\"event\":}\n--- OUT: status: ok\n\n\n- Спека WS-сигналов:\n- { \n-- otype:,  //Тип объекта сигнала\n-- oid: ,  // Идентификатор объекта сигнала\n-- action: , //Действие объекта сигнала\n- }\n\n-- USER STATUS : { otype: \"user\", oid: , action: }\n-- MESSAGE STATUS : { otype: \"message\", oid: , action: }\n<#UPD.1.>\n-- INTERFACE UPDATE: { otype:\"interface\", oid: , action: } \n\n<#UPD.2>\n-- USER START STOP WRITING:\n--- {otype:\"user\", oid:userId, action: \"write/start\", \"params\": { \"id\": ,\"userName\":} }\n--- {otype:\"user\", oid:userId, action: \"write/stop\", \"params\": { \"id\": ,\"userName\":} }\n\n\n<#UPD.5>\n-- Message sent by someone in chat/channel/ticket\n--- { otype:\"message\", oid:, action:\"sent\", params: { uid: , zoneType: 21, zoneId : } }\n\n\n- Флоу на уровне мобильного приложения\n-- При поднятии приложения: Соединяемся с WS, шлём register, шлём subscribe на участников Чатов, где participant ! = Текущий пользователь\n-- При получении данных о статусе пользователя апдейтим соответствующий кружок online/offline на чате/пользователе\n\n#UPD.1.\n-- INTERFACE UPDATE: { otype:\"interface\", oid: , action: } \n-- Example #1. messengerSummary() update:\n { \"otype\":\"interface\",\"oid\":\"summary\",\"action\":\"update\" }\n\n#UPD.2.\n-- USER START STOP WRITING\n--- В стиле слэка, если до интерфейсов дойдёшь.\n\n#UPD.3.\n- Доп. метод\n-- \"write\" \n--- Шлём params.event=\"start\" после начала печати в инпуте сообщения чата/канала/тикета\n--- Шлём params.event=\"stop\" по истечении 1000мс последнего напечатанного символа\n--- IN: params: {\"id\": ,\"event\":}\n--- OUT: status: ok\n\n#UPD.4.\n- subscribe(params.ids)\n\n#UPD.5.\n- Message sent signal: { otype:\"message\", oid:, action:\"sent\", params: { uid: , zoneType: 21, zoneId : } }", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1141742449869865", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1144875101678625", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:19.118Z", "created_at" : "2019-10-15T10:40:07.595Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:19.533Z", "name" : "Heado БК / Фикс лейаута хидера задачи", "notes" : "- Когда длинный дью-дейт - застит всё (скрн.2), надо его ограничить по ширине и сделать на две строки без дня недели (скрн.1)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1144875101678625", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145281459082009", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:22.212Z", "created_at" : "2019-10-17T04:57:13.616Z", "due_at" : null, "due_on" : "2019-11-07", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:22.655Z", "name" : "Heado БК / Контроль Дисциплин", "notes" : "Мокап: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=14342%3A6\n- В навбаре под блоком задач появляется новый раздел \"Контроль дисциплин\"\n- Источники данных для экрана:\n-- pAPI.messengerDisciplines() - Стейт экрана, наполнение фильтров\n--- OUT: {\n---- cities: [ { id: , name: },...], // Наполнение фильтра \"Города\", По умолчанию - \"Все города\" >> filter.cityId \n---- groups : [ { groupId : , title: , order: },...], // Наполнение фильтра \"Группы сравнения\", По умолчанию элемент с наименьшим order (может быть меньше нуля) >> filter.groupId\n---- ranges: [ { from: , to: , title: , order:   } ,...], // Предопределённые периоды для быстрого выбора, сортировка по order, По умолчанию элемент с наименьшим order (м/б <0) >> range: {from:<>,to:<>,type:\"base\"}\n--- }\n-- Основной для табличных данных: report id = 102\n-- Для графиков: report id = 106\n--- В отчёт графиков идут все те же фильтры, что и для 102\n- В основе иерархическая схема с тремя состояниями экрана: \n-- Дисциплин (level 0)\n--- Посадочный экран Контроля дисциплин\n--- Отчёт возвращает список дисциплин с метриками с пустыми items\n-- Зона контроля (level 10)\n--- Отчёт возвращает один \"корневой\" элемент, по level которого и ориентируемся, со списком items[]\n--- У заголовка экрана два состояния: \n---- При первом погружении, когда первый элемент level == 0, а items.level == 10\n---- Второе погружение, когда первый элемент level == 10, тогда в заголовке появляется сниппет с возможностью вернуться на уровень вверх (по path[count(path)-1].id)\n-- Просмотр задач (level 20)\n--- Отчёт возвращает один \"корневой\" элемент, по level которого и ориентируемся, со списком items[]\n--- В таблице колонки дата (items[].date) и метрика (items[].task_metric), сортируем по sort.ord = [\"object\",\"date\",\"performance\", \"metric\"],\n<#UPD.1>\n---- Для уровня 0 - object, performance(* ASC), task_count\n---- Для 10 - object, performance(* ASC), metric\n---- Для 20 - object, date(* ASC), metric\n---- (*) - по умолчанию\n\n--- В списке: task_performance == 0 >> Красный ярлык, task_performace == 1 >> Зелёный\n--- При нажатии на задачу переходим на ticket(items[].id)\n\n- Спека отчёта 102:\n--  [  \n--     { \n--\t   id: , >> filter.id при запросе по айтему\n--\t   object: , //Название зоны контроля\n--\t   image: , // Аватара для level == 10\n--\t   is_folder: , // Возможность раскрытия элемента\n--\t   path : [  // Цепочка пути \"погружения\" в иерархии, отображается в фильтре и на экранах Зон контроля\n---        [ // Самый верхний элемент пути\n---          'id':, // По спеке id в элементах\n---          'name': //Название элемента\n---        ],.. //Дальше -ниже ],\n--\t   level: <0 - Список дисциплин, 10 - разбивка по зонам контроля, 20 - разбивка по задачам>,\n--\t   task_count: , \n--\t   task_performance: ,\n--\t   task_metric: ,\n--          reason: , //Причина\n--\t   items: [ //Следующий уровень иерархии\n--\t      {\n--\t\t\tid: ,\n--\t\t\tobject: ,\n--\t        image: , // Аватара для level == 10\n--\t\t\tis_folder: ,\n--\t\t\ttask_count: ,\n--\t\t\ttask_performance: ,\n--          level: <0 - Список дисциплин, 10 - разбивка по зонам контроля, 20 - разбивка по задачам>,\n--\t\t\ttask_metric: ,\n--\t\t\treason:, //Причина\n--          date: , // Для level == 20 (задачи)\n--\t\t  },...\n--\t   ]\n--\t },..\n-- ]\n\n- Спека отчёта 106:\n-- [\n---  {\n---- title: ,// Название блока\n<#UPD.2.>\n---- suffix: , // Суффикс значения\n\n---- value: , // Основное значение блока\n---- trend : , // Трендовое значение блока (показываем знак +/- у числа)\n---- is_positive: , // Покраска графика\n---- series: [ {y:} ] // График x - просто из [1,N]\n---  },..\n-- ]\n\n#UPD.1.\n- Правила сортировки по уровням", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145281459082009", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1148872481493001", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-11-11T07:11:20.122Z", "due_at" : null, "due_on" : "2019-11-19", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2019-11-18T23:15:02.273Z", "name" : "Контроль Дисциплин / Финализация", "notes" : "- Пагинация - (тестовый акк penina@vita-samara.ru )\n- Смена селектора фильтров (когда меняешь, к примеру, \"Текущий месяц\" на \"Сегодня\", предыдущее значение остаётся)\n- При клике на задачу под указанным акком (открытие магазина на каком-нибудь магазе) пишет ошибку получения данных.\n- Полноформатная страница фильтров: Переход при клике на путь или фильтр\n<#UPD.1>\n- По умолчанию сделать сортировку везде по второй колонке (performance или date, насколько я вижу)\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1145281459082009", "name" : "Heado БК / Контроль Дисциплин", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1148872481493001/1148872481493001", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1145086318084201", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:24.511Z", "created_at" : "2019-10-16T07:44:03.011Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:24.968Z", "name" : "Изменение источника название роли пользователя", "notes" : "в profile/initSession теперь roleTitle, мапы на role больше держать не надо.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1145086318084201", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1146376006606443", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:27.511Z", "created_at" : "2019-10-24T06:20:10.823Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:27.794Z", "name" : "Giftoman + Heado BC / Требование по заполнению полей при Отчёте и Назначении задачи", "notes" : "- В ticket().actions[] теперь появилось поле requiredFields: [ { // Массив полей под проверку\n-- name : , // Название поля под проверку. Пока их всего два, так что вот.\n-- text : , // Текст, если проверку не прошло\n-- check: //Режим проверки, на будущее, пока он только один - \"не пусто\". Для комментов comment.length() > 0, для аттачей attachements.count()>0\n-- },..\n- ]\n- Если такое поле есть, то при соответствующем действии (Отчёте) нужно проверять его на заполнение\n-- В случае, если что-то не проходит проверку, то меняем примечания к полю на алертные: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/BC_Android?node-id=10455%3A6 (экраны AssignReport сверху справа)\n-- Т.к. у нас два поля в одном для комментария и аттачмента - придётся сделать комбинированный алерт через запятую. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1146376006606443", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1153564256073617", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:32.059Z", "created_at" : "2019-12-12T04:02:08.855Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:43:33.053Z", "name" : "Heado Аналитика", "notes" : "- Переходим на 2.0 API на heado.ru:\n--  pAPI v2.0 URI https://partner.heado.ru/api/2.0\n- pAPI.filters(filter)\n- Облегчение pAPI.profile(), \n- Экран pAPI.analytics(filter)\n- Экран pAPI.analyticsDetails(filter)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1153564256073617", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1153564256073621", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-12-12T04:15:22.015Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:54.658Z", "name" : "Облегчение профиля / pAPI.profile()", "notes" : "- Фолдер user убран, теперь всё в data\n- pic переименован в image\n- Сброшены поля: zones,zoneGroups,ratingGroups,sellers,keymetrics,assets\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1153564256073621/1153564256073621", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1153564256073619", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-12-12T04:02:33.701Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-17T17:44:33.528Z", "name" : "Метод получения настроек фильтров / pAPI.filters(screen, filter)", "notes" : "Теперь для экранов, где применяются фильтры используется один общий метод фильтров. \n- Метод возвращает спецификацию фильтров для экрана с всеми необходимыми данными для их автоматизированной отрисовки.\n- Так же метод позволяет дозагружать \"длинные\" портянки данных.\n- pAPI.filters(screen, filter = {} )\n- IN: screen: <Имя экрана: string>\n- IN: filter: { // Всё опциональное\n-- id: <Идентификатор целевого фильтра: string>,\n-- limit: { offset: , count: },\n-- search: \n- }\n\n- OUT:\n[\n            {\n                id : \"networks\", // Идентификатор фильтра\n                type : \"dropdown\", // Тип фильтра : [ dropdown, datepicker, switch, chips ]\n                is_loadable : false, // Дозагружаемый ли фильтр\n                title : \"Networks\", // Заголовок фильтра\n                total_count : 2, // Общее кол-во элементов, если > количество загруженных элементов, значит можно грузить дальше. \n                depends : [], // {\"filterId\":,\"field\": } - Определение зависимостей этого фильтра от выбранных данных в других фильтрах (depends[].filterId) по дополнительным полям (depends[].field) в датасете.\n                default : {title : \"All networks\",value:[]}, //Умолчательное значение\n                field : \"shopId\", //Значение, которое попадает в filter эндпоинтов данных экрана\n                data : [\n\t\t\t\t  {  // Всегда title/value\n\t\t\t\t    title:\"Сеть №1\", \n\t\t\t\t\tvalue: 1,\n\t\t\t\t  },\n\t\t\t\t  { \n\t\t\t\t    title:\"Сеть №2\",\n\t\t\t\t\tvalue: 2,\n\t\t\t\t  }\n\t\t\t\t]\n            },\n            {\n                id : \"addresses\",\n                type : \"dropdown\",\n                is_loadable : true,\n                title : \"Addresses\",\n                total_count : 0,\n                depends : [ { 'filterId'=>'cities','fielt'=> 'cityId'}, {'filterId'=>'networks', 'field'=> 'networkId'} ],\n                default : {\"title\" : \"All addresses\",value:[]},\n                field : \"addressId\",\n                data : [\n\t\t\t\t  { \n\t\t\t\t    title:\"Торговая точка №1\",\n\t\t\t\t\tvalue: 1,\n\t\t\t\t  },\n\t\t\t\t  { \n\t\t\t\t    title:\"Торговая точка №2\",\n\t\t\t\t\tvalue: 2,\n\t\t\t\t  }\n\t\t\t\t]\n            }\n            },\n            {\n                id : \"cities\",\n                type : \"dropdown\",\n                is_loadable: false,\n                title : \"Cities\",\n                total_count : 0,\n                depends : {},\n                default : {title : \"All cities\",value:[]},\n                field : \"cityId\",\n                data : []\n            },\n            {\n                id : \"shifts\",\n                type : \"dropdown\",\n                is_loadable: false,\n                title : \"Shifts\",\n                total_count : 0,\n                depends : {},\n                default : {title : \"All shifts\",value:[]},\n                field : \"shiftId\",\n                data : []\n            },\n            {\n                id : \"groups\",\n                type : \"dropdown\",\n                is_loadable: false,\n                title : \"Groups\",\n                total_count : 0,\n                depends : {},\n                default : {title : \"All groups\",value:[]},\n                field : \"groupId\",\n                data : []\n            },\n            {\n                id : \"groups\",\n                type : \"datepicker\",\n                is_loadable: false,\n                title : \"Groups\",\n                total_count : 0,\n                depends : {},\n                default : {title:'Месяц', value: {from:\"2019-12-01 00:00\", to:\"2019-12-31 23:59\"}},\n                field : {from : \"range.from\", to : \"range.to\"},\n                data : []\n            },\n           {\n                id : \"subordinates\",\n                type : \"dropdown\",\n                is_loadable: true,\n                title : \"Subordinates\",\n                total_count : 0,\n                depends : [ {'filterId'=>'groups','field' => 'groupId'} ],\n                default : {title : \"All subordinates\",value:[]},\n                field : \"subordinateId\",\n                data : []\n            },\n]", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1153564256073619/1153564256073619", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1153564256073622", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-12-12T04:36:59.808Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-17T04:07:56.347Z", "name" : "Метод получения данных для списка Показателей / pAPI.analytics(filter)", "notes" : "- Возвращает список данных для плиток экрана со списком показателей\n- Каждая плитка может быть в двух состояниях: Факт (actual), Прогноз (forecast) - для этого сделана индикация в подножии к аффордансу переключения. \n- Теперь экран \"догрузочный\" - Т.к. теперь элемент показателя фиксированной высоты, предлагаю держать консервативную стратегию загружать по N +1 элементов, \nгде N - кол-во частично умещаемых на одном экране элементов.\n\npAPI.analytics(filter)\n- IN: filter: {\n-- Фильтры из метода pAPI.filter() \n-- limit: { offset: , count:  }\n-- sort : { id: , type: <'asc','desc'>  } // id из [1 - Приоритет, 2 - Отставание прогнозов, 3 - Отставание фактов ]\n- }  \n- OUT:[\n           limit: {\n\t\t     \"total_count\":,\n\t\t\t \"offset\": ,\n\t\t\t \"count\": \n\t\t   },\n           metrics: {\n                'id' : '1', // Идентификатор показателя\n                'title' : 'Выручка', // Название показателя\n                'actual' : { // Набор данных для ФАКТ\n                    'is_positive' : true, // Зелёный(true), Красный(false)\n                    'type' : 'money',//['number','money','percent'] - number - без суффиксов, money - Р, percent - %\n                    'fact' : ['value'=>120,'percent'=>120], // Красное или зелёное\n                    'plan' : ['value'=>95,'percent'=>100], // Фиолетовый бар - *nullable*\n                    'lfl' : ['value'=>90,'percent'=>90], // Серый бар - *nullable*\n                    'delta' : {\n                        'percent' : 22, // Добавлять + на экране, если is_positive == true\n                        'value' : 25\n                    },\n                },\n                'forecast' : {\n                    'is_positive' : false,\n                    'type' : 'money',//['number','money','percent']\n                    'forecast' : ['value'=>190,'percent'=>91], // Синий бар\n                    'plan' : ['value'=>210,'percent'=>100], \n                    'lfl' : ['value'=>190,'percent'=>91],\n                    'delta' : {\n                        'percent' : -9,\n                        'value' : -20\n                    },\n                },\n                'chart' : {\n                    {'fact' : 22, 'plan' : 18, 'lfl' : 15, 'is_forecast' : false},\n                    {'fact' : 20, 'plan' : 20, 'lfl' : 17, 'is_forecast' : false},\n                    {'fact' : 18, 'plan' : 15, 'lfl' : 13, 'is_forecast' : false},\n                    {'fact' : 20, 'plan' : 17, 'lfl' : 18, 'is_forecast' : true}, // Если is_forecast == true => fact - синий\n                    {'fact' : 25, 'plan' : 20, 'lfl' : 19, 'is_forecast' : true},\n                }\n            },\n            {\n                'id' : '2',\n                'title' : 'Доля проживающих свой век за зря',\n                'actual' : {\n                    'is_positive' : false,\n                    'type' : 'percent',//['number','money','percent']\n                    'fact' : {value: 90,'percent': 96 },\n                    'plan' : {value : 95,percent : 100},\n                    'lfl' : [value:75,percent: 85},\n                    'delta' : {\n                        'percent' : 4,\n                        'value' : 5\n                    },\n                },\n                'forecast' : {\n                    'is_positive' : false,\n                    'type' : 'percent',//['number','money','percent']\n                    'forecast' : {value=>92,percent: 97.5},\n                    'plan' : {value: 95,percent:100},\n                    'lfl' : 75,\n                    'delta' : {\n                        'percent' : -2.5,\n                        'value' : -3\n                    },\n                },\n                'chart' : [\n                    {'fact' : 95, 'plan' : 95, 'lfl' : 80, 'is_forecast' : false},\n                    {'fact' : 90, 'plan' : 95, 'lfl' : 73, 'is_forecast' : false},\n                    {'fact' : 93, 'plan' : 95, 'lfl' : 71, 'is_forecast' : false},\n                    {'fact' : 91, 'plan' : 95, 'lfl' : 78, 'is_forecast' : true},\n                    {'fact' : 92, 'plan' : 95, 'lfl' : 79, 'is_forecast' : true},\n                ]\n            ]\n\n        ];", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1153564256073622/1153564256073622", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1155086766036833", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-12-26T04:55:28.242Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:54.939Z", "name" : "Экран Analytics / Легенда ", "notes" : "-https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/Dash--Mobile--Android?node-id=0%3A1\n-- Фрейм: Legend\n-- по тапу вкл-выкл", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1155086766036833/1155086766036833", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1154921257023097", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2019-12-23T09:58:14.787Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:55.023Z", "name" : "Итоговые коррекции v1", "notes" : "- Добавляем фильтр \"Режим\" в начало списка из двух чипсов \"Факт\" и \"Прогноз\"\n-- Переключение приводит к общему переключению всех карточек в списке на actual или forecast соответственно. \n-- Убираем свайп\n-- Я добавил вариант с дропдаун переключателем в карточку. Если не антипаттерн - рассмотри.\n- Подгружаемые фильтры: Возможность последовательной догрузки фильтра в случае filter.total_count > filter.data.count()\n\n#UPD.1.\n- Догрузка Показателей (analytics)\n-- Стандартный filter.limit = { offset: <>, count: <> } . count желательно сделать = ceil (device.Height / card.heightWithSpacings)\n-- Общее количество в result.total_count\n\n#UPD.2.\n- Денежное форматирование чисел (пробелы на тройных порядках)\n- Кастомные диалоги для дропдаунов (задел под автопоиск в фильтре - для этого есть filters(screen, filter = { search: } ), даст возможность находить элементы без прогрузки.\n\n#UPD.3\n- Поправка на ветер.\n-- Загружать +1 Плитку показателей к общей формуле (т.е. ceil(ВысотаЭкрана / ВысотаПлиткиСПолями) + 1\n-- Упреждающая загрузка при выходе верхнего края +1-ой плитки он-скрин.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1154921257023097/1154921257023097", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1156314509101449", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-01-09T03:30:41.621Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:55.200Z", "name" : "Детализация показателя / pAPI.analyticsDetailed(filter)", "notes" : "- https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/Dash--Mobile--Android?node-id=0%3A1 / RateDetailFact1 и т.д вправо\n- При тапе на блок Показателя в analytics переходим в analyticsDetailed(filter), пробрасывая фильтр от analytics и добавляя в filter metricId = id выбранного показателя. \n- Спека: {\n-- summary : { }, // Спека от экрана analytics \n-- zones: [ { // Список зон. Догружаемый offset+count\n--- id: , // идентификатор зоны\n--- title: , // название\n--- image: , // ава\n--- actual: , \n--- forecast: \n--} ,..]\n-- total_count: , всего элементов (для Догрузки)\n- }\n- % около показателей плана и lfl - это percent из соответствущих параметров, если >=0 - зелёный, иначе - красный\n- При тапе на зону переходим обратно в analytics(filter) с добавлением в фильтр zoneId = zones[].id выбранной зоны.\n-- Я добавил фильтр zones в filters() и по-хорошему нужно в этом фильтре проставлять значние.\n\n#UPD.1.\n- Сортировка\n-- filter.sort = { column: , ord: } \n-- Значения хардкодом: [\n { \"column\": {\"id\":\"fact_plan\",\"name\":\"Факт/План по возрастанию\"}, \"ord\":\"asc\"},\n { \"column\": {\"id\":\"fact_plan\",\"name\":\"Факт/План по убыванию\"}, \"ord\":\"desc\"},\n { \"column\": { \"id\": \"plan\",\"name\":\"По возрастанию плана\"}, \"ord\":\"asc\"},\n { \"column\": { \"id\":\"plan\",\"name\":\"По убыванию плана\"}, \"ord\":\"desc\"},\n { \"column\": {\"id\":\"fact\",\"name\":\"Факт по возрастанию\"}, \"ord\":\"asc\"},\n { \"column\": {\"id\":\"fact\",\"name\":\"Факт по убыванию\"}, \"ord\":\"desc\"},\n]\n\n#UPD.2.\n- Надо скорректировать список сортировки:\n-- [\n { \"column\": {\"id\":\"plan_rate\",\"name\":\"Факт/План по возрастанию\"}, \"ord\":\"asc\"},\n { \"column\": {\"id\":\"plan_rate\",\"name\":\"Факт/План по убыванию\"}, \"ord\":\"desc\"},\n { \"column\": {\"id\":\"lfl_rate\",\"name\":\"Факт/LFL по возрастанию\"}, \"ord\":\"asc\"},\n { \"column\": {\"id\":\"lfl_rate\",\"name\":\"Факт/LFL по убыванию\"}, \"ord\":\"desc\"},\n { \"column\": {\"id\":\"fact_fact\",\"name\":\"Факт по возрастанию\"}, \"ord\":\"asc\"},\n { \"column\": {\"id\":\"fact_fact\",\"name\":\"Факт по убыванию\"}, \"ord\":\"desc\"},\n { \"column\": {\"id\":\"forecast_fact\",\"name\":\"Прогноз по возрастанию\"}, \"ord\":\"asc\"},\n { \"column\": {\"id\":\"forecast_fact\",\"name\":\"Прогноз по убыванию\"}, \"ord\":\"desc\"},\n]\n           ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1156314509101449/1156314509101449", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1157811735923937", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-01-20T02:56:33.170Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:55.289Z", "name" : "Коррекции / Переключатель План-LFL", "notes" : "В соответствии с полученным фидбэком:\n- Наряду с кнопкой (справа) \"Факт/Прогноз\" нужно добавить кнопку \"По плану/По LFL\".\n-- По умолчанию: \"План\"\n-- В actual и forecast спеках изменения, к is_positive, percent и в delta добавились суффиксы _plan и _lfl:\n            {\n                \"id\": \"1437627895975733196\",\n                \"title\": \"Средний чек\",\n                \"actual\": {\n                    \"is_positive\": true,\n                    \"type\": 2,\n                    \"fact\": {\n                        \"value\": 307,\n                        \"percent\": 92.7,\n                        \"percent_plan\": 92.7, // При состоянии кнопки \"По плану\"\n                        \"percent_lfl\": 87.5 // При состоянии кнопки по LFL\n                    },\n                    \"fact_forecast\": {\n                        \"value\": 0,\n                        \"percent\": 0\n                    },\n                    \"plan\": {\n                        \"value\": 331,\n                        \"percent\": 100,\n                        \"percent_plan\": 100,\n                        \"percent_lfl\": 94.3\n                    },\n                    \"lfl\": {\n                        \"value\": 351,\n                        \"percent\": 106,\n                        \"percent_plan\": 106,\n                        \"percent_lfl\": 100\n                    },\n                    \"delta\": {\n                        \"percent\": 0,\n                        \"value\": -24,\n                        \"value_plan\": -24,\n                        \"percent_plan\": 0,\n                        \"value_lfl\": -44,\n                        \"percent_lfl\": 0\n                    },\n                    \"is_positive_plan\": true,\n                    \"is_positive_lfl\": true\n                },\n                \"forecast\": {\n                    \"is_positive\": true,\n                    \"type\": 2,\n                    \"fact\": {\n                        \"value\": 307,\n                        \"percent\": 94.2,\n                        \"percent_plan\": 94.2,\n                        \"percent_lfl\": 89.5\n                    },\n                    \"fact_forecast\": {\n                        \"value\": 307,\n                        \"percent\": 94.2,\n                        \"percent_plan\": 94.2,\n                        \"percent_lfl\": 89.5\n                    },\n                    \"plan\": {\n                        \"value\": 326,\n                        \"percent\": 100,\n                        \"percent_lfl\": 95\n                    },\n                    \"lfl\": {\n                        \"value\": 343,\n                        \"percent\": 105.2,\n                        \"percent_plan\": 105.2,\n                        \"percent_lfl\": 100\n                    },\n                    \"delta\": {\n                        \"percent\": -100,\n                        \"value\": -19,\n                        \"value_plan\": -19,\n                        \"percent_plan\": -100,\n                        \"value_lfl\": -36,\n                        \"percent_lfl\": 0\n                    },\n                    \"is_positive_plan\": true,\n                    \"is_positive_lfl\": true\n                },...\n- Соответственно, нужно брать значения из соответствующих percent[суффикс] и раскрашивать в соответствии is_positive[суффикс].\n- Ещё иконку около delta менять на соответствующую.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1157811735923937/1157811735923937", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1158030002450321", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-01-21T06:41:04.602Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:55.366Z", "name" : "Коррекции / Расцветка чипсов-переключателей", "notes" : "- При переключении Факт/Прогноз переключателя в позицию \"Прогноз\" выставляем фон синим\n- При переключении План/ЛФЛ переключателя в позицию \"План\" выставляем в Сиреневый\n\nВ макете цвета на слайде Rates_Forecst (см картинку)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1158030002450321/1158030002450321", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1158252230287361", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-01-22T03:38:03.494Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:55.450Z", "name" : "Коррекции / analyticsDetailed - переход на переключатель LFL-Plan", "notes" : "- Модели списка zones привёл к общим насколько возможно. \n- Изменяется вид элемента - решили уйти от отбражения сразу Plan и LFL, надо отображать только то, что соответствует переключателю Plan/LFL.\n-- https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/Dash--Mobile--Android?node-id=0%3A1 (Нижний ряд)\n- Около факта рисуем соответствующую delta.percent_[plan|lfl] с теми же иконками дельты и раскраской по zones[].is_positive_[plan|lfl]", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1158252230287361/1158252230287361", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1159533636734490", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-01-30T02:31:26.100Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-01-31T05:45:55.532Z", "name" : "Фидбек 0129 / Коррекция Analytics и Analytics Detailed", "notes" : "- Уходим от переключателя факт-прогноз:\n-- Убрать сам переключатель\n-- Убрать текст на плитке\n-- Берём данные из actual\n--- Если actual.fact_forecast != 0, то включаем \"прогнозный\" режим: основе actual.fact + actual.fact_forecast ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1159533636734490/1159533636734490", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1159991538044313", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-02-03T03:22:20.340Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-02-03T05:16:34.206Z", "name" : "Дополнение / Плейсхолдеры {{something}} для фильтров datetime", "notes" : "Дорогой сэр,\nНаучите жить с такими и не умирать", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1159991538044313/1159991538044313", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1161953533737034", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-02-14T04:18:23.248Z", "due_at" : null, "due_on" : "2020-02-20", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-02-19T23:13:57.204Z", "name" : "Реорганизация навигации", "notes" : "- https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/Dash--Mobile--Android?node-id=0%3A1\n- Навигационный drawer убираем\n- Вместо иконки меню в экшнбаре - ава с переходом на просмотр профиля (View Profile)\n- Вместо переключателя по пунктам меню - нижний таббар, но там сейчас как бы и нечего переключать, так что можно погасить до времён нужды.\n- По остатку: Легенду предлагается перенести иконкой в экшнбар справа вместо нижней вытаскивалки", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1161953533737034/1161953533737034", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1161953533737035", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-02-14T04:18:41.982Z", "due_at" : null, "due_on" : "2020-03-10", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2020-03-09T23:11:14.504Z", "name" : "Пользовательский профиль", "notes" : "- https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/Dash--Mobile--Android?node-id=0%3A1\n-- profile view \n--- Если в параметре пусто, то соответствующая заглушка \n-- edit Profile\n--- Роль - нередактируема\n\n- profile() \n-- { id : ,\n    name : ,\n    phone : ,\n    email : ,\n    image : ,\n    dashboard : ,\n    role : ,\n    roleTitle : ,\n    informer_settings : [\n        pn_sub_chnl : <>,\n        pn_sub_secret : <>\n    ],\n    lang : ,\n}\n\n- profileSave(data = []) \n-- IN[data] :  {\n--- name: \n--- phone : \n--- email : \n--- image: - Ключ загруженного файла по спеке attachment из ticketAddComment\n-- Возвратная спека та же\n\n#UPD.1.\nВ общем-то, по загрузке авы всё есть и осталось.\n- Жать до 800х600\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1153564256073617", "name" : "Heado Аналитика", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1161953533737035/1161953533737035", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1184245458994540", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:34.499Z", "created_at" : "2020-07-13T14:46:45.964Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:34.871Z", "name" : "Ссылка \"Забыли пароль\" на всех мобильных проектах ", "notes" : "Там, где нет - сменить на https://partner.heado.ru/forgotpass", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1184245458994540", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1193911663576457", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:36.807Z", "created_at" : "2020-09-15T11:45:00.267Z", "due_at" : null, "due_on" : "2020-09-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:37.085Z", "name" : "Giftoman / Удалить \"Впервые тут?! Зарегистрируйтесь\" с логина", "notes" : "Удалить нижний блок с экрана логина", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1193911663576457", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1195101492130473", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:46.910Z", "created_at" : "2020-09-22T12:32:38.053Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:47.332Z", "name" : "Heado БК / Экран ticketFeed / Коррекция offset", "notes" : "offset нужно делать не по количеству батчей, а по суммарному количеству тикетов в них", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1195101492130473", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1199334338916925", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:48.690Z", "created_at" : "2020-11-23T06:22:31.197Z", "due_at" : null, "due_on" : "2020-12-09", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:48.923Z", "name" : "Heado Аналитика / Рефакторинг UI Ноябрь 2020", "notes" : "макет: https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Android?node-id=2533%3A0\n\nИтого, по пунктам. В главном списке показателей:\n1. Графиков больше нет, в связи с этим слегка поменялось выравнивание\n2. Минипрогресс прогноза, который берём из actual.fact_forecast\n3. Два блока сравнения: Факт с Планом и Факт с ЛФЛ (там есть примеры, когда плана или ЛФЛ нет)\n\nВ детальном виде:\n1. Разные лейауты для саммари блока: С прогнозом и без\n2. Нижний грид с числом колонок, подразумевающим на малых девайсах горизонтальный скролл.\n\n#UPD.1.\nУсложнение поведения работы с исчезновением прогнозного бара в блоке саммари на главном экране списка показателей:\n Бары LFL, План прятать при нулевых значениях с изменением высоты основного контейнера\n Бар Факт оставлять, даже, если Факт == 0\n Бар Прогноза прятать с сохранением высоты основного контейнера (заменяем на соответствующей высоты \"пустоту\" )\n\n#UPD.2.\nНа детальном экране Факт == 0 тоже остаётся. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1199334338916925", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1199601751075103", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:50.458Z", "created_at" : "2021-01-18T13:57:10.282Z", "due_at" : null, "due_on" : "2021-01-25", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:51.185Z", "name" : "Heado Аналитика / Переключение аккаунтов", "notes" : "Общий принцип как у гугла: Локальное сохранение логинов/сессий и быстрое переключение между ними. \nМакет: https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Android?node-id=2832%3A0\n\n Добавляем кнопку вызова диалога (справа) на главном экране и в экране просмотра профиля \n В диалоге сверху рисуется всегда активный аккаунт (по умолчанию тот, с которым зашёл однажды пользователь)\n Далее по списку неактивные добавленные (в списке неактивных НЕ повторяем активный, конечно же)\n Добавление аккаунта происходит в даилоге логин+пароль: после успеха приветствуем пользователя и переходим на/перегружаем главный экран \n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1199601751075103", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "1199601751075105", "name" : "flutter", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1199621795353953", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:19:51.919Z", "created_at" : "2021-01-22T11:14:51.005Z", "due_at" : null, "due_on" : "2021-02-04", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:38:56.296Z", "name" : "Heado БК / ticketFeed+Контроль Дисциплин / Новые иконки по reasonId", "notes" : "Иконки как напоминание и источник тут: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=10032%3A0\n\n reasonId == 0 : Не показываем \n reasonId вне установленного списка: - fallback на \"Причина не установлена\" (компас перечёркнутый)\n reasonId == 22 : иконка \"Нет на складе\" (перечёркнутый магазин)\n reasonId == 23: иконка \"Проблема выкладки\" (cart-remove_red.svg)\n reasonId == 24: иконка \"Товар выложен\" (cart-check.svg)\n reasonId == 25: иконка \"Нет спроса\" (перечёркнутая корзинка)\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1199621795353953", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200040913846263", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:19:55.701Z", "created_at" : "2021-03-10T08:32:52.534Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:55.927Z", "name" : "Heado БК / fix-pack March 2021 ", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200040913846263", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1200040913846265", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-03-10T08:33:39.975Z", "due_at" : null, "due_on" : "2021-03-24", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-03-23T23:15:05.588Z", "name" : "Ко времени в задачах/комментах не должно применяться локальное смещение", "notes" : "С сервера уже приходят приведённые к часовому поясу времена, но, похоже, на клиенте добавляется свой часовой пояс.\nакк au240@aptekivita.ru", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200040913846263", "name" : "Heado БК / fix-pack March 2021 ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200040913846265/1200040913846265", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200040913846266", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-03-10T08:33:59.856Z", "due_at" : null, "due_on" : "2021-03-24", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-03-23T23:15:06.000Z", "name" : "Текст постановки задачи не растягивается на весь блок", "notes" : "При просмотре задачи текст обрезается по ширине. См скриншот.\nакк au240@aptekivita.ru", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200040913846263", "name" : "Heado БК / fix-pack March 2021 ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200040913846266/1200040913846266", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200091780864664", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-03-22T08:15:14.279Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:14:37.629Z", "name" : "Heado БК / Аттачменты остальных мастей", "notes" : "В модели аттачмента есть поле type:\n \"image\" - это картинки, рисуем тамбнейлы\n остальное \"application\" и т.п. - это вложения к скачиванию файла\n Дежурная иконка для последних в приложении\n\nОтчёт с земли:\nВ андроидных приложениях в месте файла отображается просто текст \"Приложение\". Скачать не дает. \n\nПроверить можно на dir3@giftoman.ru там есть два тикета в Дисциплине \"Тестовина\" / \"Здоровеньки були\" и \"Тарантул дунул в сторону\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200091780864664", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200145413210514", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-05-06T05:19:58.800Z", "created_at" : "2021-04-02T05:37:04.328Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:19:59.030Z", "name" : "Проект изъятия таймзон и рабочего времени", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200145413210514", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1200145413210516", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-04-02T05:37:32.002Z", "due_at" : null, "due_on" : "2021-04-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-04-13T22:17:15.828Z", "name" : "Heado Аналитика / Автоматическое изъятие таймзоны", "notes" : "В profile() для Аналитики начало приходить поле timezone и profileSave(data) начал его тоже поддерживать.\n\nНужно при очередной загрузке профиля проверять, если profile.timezone is NULL, то забирать системную зону и в виде часового смещения со знаком её сохранять в profileSave({ timezone: })\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200145413210514", "name" : "Проект изъятия таймзон и рабочего времени", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200145413210516/1200145413210516", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "1199601751075105", "name" : "flutter", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200145413210517", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-04-02T05:37:45.662Z", "due_at" : null, "due_on" : "2021-04-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-02-06T13:08:14.312Z", "name" : "Heado БК / Автоматическое изъятие таймзоны", "notes" : "В profile() для БК тоже приходит поле user.timezone и работает profileSave(data).\n\n\"Нужно при очередной загрузке профиля проверять, если profile.user.timezone == FALSE, то забирать системную зону и в виде часового смещения со знаком сохранять в profileSave({ timezone: })\"\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200145413210514", "name" : "Проект изъятия таймзон и рабочего времени", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200145413210517/1200145413210517", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200145413210518", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-04-02T05:37:56.241Z", "due_at" : null, "due_on" : "2021-04-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-04-20T08:17:15.587Z", "name" : "Heado Аналитика / Редактирование профиля / Настройка Рабочего времени", "notes" : "Макет https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=16801%3A22287\nТам указатель \"Настройки рабочего времени\" есть:\n\n Доп. пункт меню \"Настройки рабочего времени\"\n В соответствующем экране у нас есть настройка Таймзоны из https://app.asana.com/0/201687425733831/1200145413210516. Тут я предлагаю отображать Etc/GMT(timezone) соответствие, без городов пока и выбор давать из Etc/*\n Дальше самый смак: \n Верхняя часть чипсов - это радио из пресетов + пункт \"Настроить\"\n При выборе пресета у нас отображается только один набор инпутов от-до с таймпикерами. \n При выборе \"Настроить\" включается нижний набор чипсов-дней недели. Они по умолчанию все включены, как и последующая портянка настроек для каждого дня.\n По возможности, хочется, чтобы Пользователь не мог отключить все дни недели, т.е. последний день неотключаемый. Если нет возможности, то писать вместо списка ошибку \"нужно выбрать хотя бы один день\"\n По умолчанию, если profile.schedule (см. ниже) == null, выставляем пресет \"Все дни\" и from-to с 9:00 до 18:00\n\nТеперь по сборке данных:\n timezone уже понятно - сохраняем по profileSave() в соответствии с https://app.asana.com/0/201687425733831/1200145413210516\n Рабочее время: \n Получение в profile().schedule \n Сохранение в profileSave({schedule: })\n\nscheduleModel = {\n type: <(string of [\"everyday\",\"weekdays\",\"weekends\",\"custom\"]>,\n range: { from: , to: },\n custom: [ \n {\n \"day\": <1..7>,\n \"range\": { \n from: , \n to:\n }\n }\n ]\n}\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200145413210514", "name" : "Проект изъятия таймзон и рабочего времени", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200145413210518/1200145413210518", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200205303227504", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2021-04-19T05:17:50.263Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2023-01-19T02:50:10.353Z", "name" : "БК+Аналитика / Ящик пандоры / Доменизация", "notes" : "Вкратце: \nТеперь URL сервера, с которым работают приложения, определяется через центральные бэки: https://partner.giftoman.ru/api/ и https://partner.heado.ru/api\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200205303227504", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1200205303227506", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-04-19T05:20:32.025Z", "due_at" : null, "due_on" : "2021-05-20", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-05-19T22:07:19.718Z", "name" : "Аналитика/ Подключение к домену", "notes" : "URI бэка теперь получаемая с бэка настройка. \nОсновными бэками для работы по умолчанию и получения настроек домена остаются https://partner.giftoman.ru/api (БК) и https://partner.heado.ru/api (Аналитика)\nНастройки получаются с помощью метода \ndomain.profile( app = <\"bc\",\"analytics\">[, name] )\n IN:\n app : string, ( \"bc\" для БК, \"analytics\" для Аналитики\n name: string (опционально) - название домена, по умолчанию оно подставляет наш \"родной\" домен\n OUT: \n { \n \"app\":, //Эхо app\n \"name\": , //Эхо name или умолчания\n \"title\": , // Название для кожаных мешков\n \"uri\": // Искомый URI в виде https://..../api/ (версию и остальное формирует уже приложение)\n }\n\nФлоу предлагаются следующие:\n\nОбщее:\n Если сохранённых настроек домена в приложении нет, то\n На странице логина до его актуализации приложение делает запрос на настройки domain.profile(app) (Получает настройки домена \"по умолчанию\")\n Сохраняет настройки выбора домена в окружении приложения\n Иначе использует настройки\n Дальше всё прозрачно\n Если Пользователь уже залогинен, то прописываем умолчательные URI основного бэк-сервера в настройки \n\nВыбор домена:\nМакет страницы Логина с выходом на экран \"Выбор домена\": \n<#UPD.1>https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Android?node-id=3141%3A0\n На экране Логина внизу отображается название выбранного домена\n При заходе на экран отображает сохранённые настройки (Имя домена в поле ввода)\n При изменении имени домена кнопка изменяется на \"Подключиться\"\n При нажатии на эту кнопку запрашивает domain.profile(app,name)\n При получении данных по модели domain.profile().OUT \n Сохраняет настройки домена\n Сообщает об успешном подключении.\n Переводит экран в статус \"подключено\"\n Пользователь выходит на экран логина и продолжает работу как ни в чём не бывало\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200205303227504", "name" : "БК+Аналитика / Ящик пандоры / Доменизация", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200205303227506/1200205303227506", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200205303227507", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2021-04-19T05:20:48.028Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-04-30T08:56:34.752Z", "name" : "БК / Подключение к домену", "notes" : "URI бэка теперь получаемая с бэка настройка. \nОсновными бэками для работы по умолчанию и получения настроек домена остаются https://partner.giftoman.ru/api (БК) \nНастройки получаются с помощью метода \ndomain.profile( app = <\"bc\">[, name] )\n IN:\n app : string, ( \"bc\" )\n name: string (опционально) - название домена, по умолчанию оно подставляет наш \"родной\" домен\n OUT: \n { \n \"app\":, //Эхо app\n \"name\": , //Эхо name или умолчания\n \"title\": , // Название для кожаных мешков\n \"uri\": // Искомый URI в виде https://..../api/ (версию и остальное формирует уже приложение)\n }\n\nФлоу предлагаются следующие:\n\nОбщее:\n Если сохранённых настроек домена в приложении нет, то\n На странице логина до его актуализации приложение делает запрос на настройки domain.profile(app) (Получает настройки домена \"по умолчанию\")\n Сохраняет настройки выбора домена в окружении приложения\n Иначе использует настройки\n Дальше всё прозрачно\n Если Пользователь уже залогинен, то прописываем умолчательные URI основного бэк-сервера в настройки \n\nВыбор домена:\nМакет страницы Логина с выходом на экран \"Выбор домена\": \nhttps://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-Android?node-id=15773%3A0\n На экране Логина внизу отображается название выбранного домена\n При заходе на экран отображает сохранённые настройки (Имя домена в поле ввода)\n При изменении имени домена кнопка изменяется на \"Подключиться\"\n При нажатии на эту кнопку запрашивает domain.profile(app,name)\n При получении данных по модели domain.profile().OUT \n Сохраняет настройки домена\n Сообщает об успешном подключении.\n Переводит экран в статус \"подключено\"\n Пользователь выходит на экран логина и продолжает работу как ни в чём не бывало\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1200205303227504", "name" : "БК+Аналитика / Ящик пандоры / Доменизация", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1200205303227507/1200205303227507", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200269967381856", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:07.773Z", "created_at" : "2021-04-30T07:00:11.382Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:08.021Z", "name" : "БК / Просмотр Задачи / Кликабельные ссылки в описании задач и комментариях", "notes" : "В тексте комментариев и описания задачи теперь могут быть свободные \nСоответственно, нужен переход по ним во внешний браузер.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200269967381856", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200269967381857", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:12.892Z", "created_at" : "2021-04-30T07:26:38.775Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:13.313Z", "name" : "БК / Просмотр Задачи / Возможность выделения и копирования текста описания Задачи", "notes" : "для своей памяти ключевик:\nandroid:textIsSelectable=\"true\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200269967381857", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200326172497506", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:18.152Z", "created_at" : "2021-05-13T07:04:21.310Z", "due_at" : null, "due_on" : "2021-05-19", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:18.512Z", "name" : "БК / Отчёт по задаче / Удаление поля \"получатель\"", "notes" : "deprecated\nrouteId в интерфейсе стал optional", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200326172497506", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200343082495132", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-05-18T05:45:09.723Z", "due_at" : null, "due_on" : "2021-06-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2021-06-14T22:09:27.156Z", "name" : "БК / Отчёт по задаче / Кастомизация отчётной формы", "notes" : "Наступил новый день в индустрии отчётов по Задачам. \nПримерный вид дня: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=17418%3A115\n\nВ первую очередь расширяется спецификация actions[].reasons в ответе API.ticket(ticketId), теперь каждый reason имеет свой набор отчётных полей, что намекает на перекомпоновку формы при выборе Причины:\n...\n\"actions\": [\n {\n \"id\": 1,\n \"title\": \"Отчитаться\",\n \"reasons\": [\n {\n \"id\": \"24\",\n \"title\": \"Товар выложен\",\n \"icon\": \"\",\n \"routes\": [\n {\n \"id\": \"441\",\n \"title\": \"Руководитель\"\n }\n ],\n fields: [ // Новый параметр\n {\n name: , // Название поля, которое отправляется в API\n type: , // Требуется или нет\n data: [ // Как в filters - набор данных для списочных полей типа dropdown и checkbox\n id : , // Идентификатор, уходящий в API\n title: , // Тайтл, отображающийся в UI\n selected : // truе- Преселект\n ],\n format: // FFU Будет приходить regexp'а для маски поля в будущем.\n },...\n ]\n },\n ],\n \"requiredFields\": [\n {\n \"name\": \"comment\",\n \"text\": \"Необходимо заполнить комментарий\",\n \"check\": \"notempty\"\n }\n ]\n }\n ],\n\nТеперь про метод API.\nAPI 2.0 ticketReport(ticketId, reasonId , data ) \nIN : data : [\n {\n name : , // Название поля fields[].name\n value: , // Значение в соответствии с типом компоненты может быть строкой (text,datepicker), числом (number ) и массивом идентификаторов (dropdown, checkbox, file, image ). Сервер разберётся кто и чего по своему дескриптору\n }\n]\n\nПример отчёта (API2.0):\n{\n \"id\": \"8361549266426897\",\n \"method\": \"ticketReport\",\n \"params\": {\n \"ticketId\": 1570009653021404400,\n \"reasonId\": 16,\n \"data\": [\n {\n \"name\":\"my_text\",\n \"value\":\"There's something wrong with all these people\"\n },\n {\n \"name\":\"my_number\",\n \"value\":108.4\n },\n {\n \"name\":\"my_attachment\", \n \"value\": [ 10928309128, 1230971987, 129387189]\n },\n {\n \"name\":\"my_checkbox\",\n \"value\": [ 1,2,5]\n },\n {\n \"name\":\"my_dropdown\",\n \"value\":[10]\n },\n {\n \"name\":\"my_datepicker\",\n \"value\":\"2021-05-28\"\n },\n {\n \"name\":\"my_timepicker\",\n \"value\":\"05:25\"\n }\n ]\n },\n \"jsonrpc\": \"2.0\"\n}\n\nПояснение к разнице между приложениями \"file\", \"image\", \"photo\":\n file - любой файл/изображение из галереи/камеры \n image - только изображения из галереи и камеры\n photo - только фотка с камеры\n\n#UPD.1.\nЛимит на количество файлов в аттаче: 10\nЛимит на размер одного файла: 25мб\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200343082495132", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201066281738471", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:29.994Z", "created_at" : "2021-09-28T05:31:26.330Z", "due_at" : null, "due_on" : "2021-10-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:30.427Z", "name" : "БК / Листалка приложенных изображений", "notes" : "Нужно добавить возможность листания по списку приложенных изображений в сообщении. Фигма-макет Ирина не успела - сегодня вроде как рожает, но нарисовала в растре )", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201066281738471", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201113030404677", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:34.084Z", "created_at" : "2021-10-04T06:27:33.259Z", "due_at" : null, "due_on" : "2021-10-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:34.360Z", "name" : "БК / Просмотр задачи / Проблемы просмотра и скачивания приложений (не изображений) к задаче и комментариям", "notes" : " Когда приложений > 3 похоже вёрстка по иконкам ломается - по крайней мере Пользователи начинают сильно смущаться где что.\n При скачивании такого приложения Андроид не может открыть скачанное, т.к. расширение по типу не присвавается, надо решить момент.\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201113030404677", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201617545821215", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:42.686Z", "created_at" : "2022-01-05T05:28:32.047Z", "due_at" : null, "due_on" : "2022-01-12", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:43.018Z", "name" : "БК / Просмотр приложенных изображений / Возможность приближать&панорамировать", "notes" : "В иосе, говорят, можно, а в андроиде - неть!", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201617545821215", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202458127605179", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-06-16T12:27:16.329Z", "due_at" : null, "due_on" : "2022-07-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-06-16T12:31:26.669Z", "name" : "БК / Экран логина / Возможность прозрачной передачи домена в составе логина", "notes" : "в логине можно использовать название домена в виде префикса\ndomain_name:login (E.g: gamma:nechaikina705@mail.ru)\nВ случае, если указан домен, то нужно проводить попытку прозрачного переключения в указанный домен (как при смене домена).\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202458127605179", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202520215222582", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-06-29T08:51:20.633Z", "due_at" : null, "due_on" : "2022-07-12", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-07-12T08:59:31.310Z", "name" : "БК / Актуализация приложения в Huawei AppGallery", "notes" : "Основную часть подготовки по нотификациям в AppGallery мы делали, насколько я помню, поэтому, надеюсь, что будет сабжевый момент по републикации.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202520215222582", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203090010216722", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-10-06T07:37:13.381Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-12-07T04:51:58.515Z", "name" : "БК / Доменные логины и запоминание последнего выбранного домена", "notes" : "Доменный логин (Логин вида {{domain}}:{{login}}, как реализовывали во флаттере: \n Если логин с такой маской, то делаем попытку автовыбора нужного домена перед логином\n\nТак же нужно запоминать последний выбранный домен, чтобы при логаутах выбранным числился он", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203090010216722", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203268683947138", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-10-31T10:07:55.300Z", "due_at" : null, "due_on" : "2022-11-07", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-11-06T22:06:03.112Z", "name" : "БК / Перевод ссылки \"забыли пароль\" на доменную схему", "notes" : "В модели доменов по запросу domain.profile теперь возвращается ссылка forgotpass_link (https://m.heado.ru/internal-papi-dmz-reference.html#domain_profile), на неё нужно перевести хардкоднутую актуальную ссылку из форм авторизации", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203268683947138", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203488799561878", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-07T04:48:27.189Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2022-12-08T08:12:57.345Z", "name" : "БК / Коррекция названий в фильтре задач по статусам ", "notes" : "Актуальные задачи >> Текущие задачи", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203488799561878", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204468776327132", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-04-25T08:45:39.632Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1140785073408641", "name" : "Android", "resource_type" : "section" } } ], "modified_at" : "2023-04-25T11:28:10.133Z", "name" : "БК / Добавить метку времени постановки задачи в первое описание", "notes" : "Надо засинкать с айосью, там есть. Из ticket().created\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204468776327135\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204468776327132", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205375059269070", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-29T08:08:54.934Z", "due_at" : null, "due_on" : "2023-08-31", "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "697732177966479", "name" : "Design", "resource_type" : "project" }, "section" : { "gid" : "1140784957499568", "name" : "(no section)", "resource_type" : "section" } }, { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-29T09:40:06.157Z", "name" : "Дизайн ревью vol.2 (2023-08-28)", "notes" : "demopartner@giftoman.ru\nдомен partner\n\n Баг с чипом \"тиражи вкл/выкл\". При переходе из списка в детали задачи, чип \"включается\" на секунду. Видео во вложении.\n В мессенджере каунтер чата показывает новые сообщения, но не исчезает, после того, как заходим / выходим из чата. Видео во вложении.\n Детали задачи: Несоблюдение расстояний между элементами по вертикали, \n бордюр инпута комментария должен быть border_enabled #BDBDBD, \n Кнопка доп. действий должна быть Primary Color #FFD600, иконка на ней icon-OnPrimary #606060\n Иконка отправки сообщения icon-enabled #606060 ВЕЗДЕ\nСейчас:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375059269077\n\nМакет https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=1575-8169&mode=design&t=joytjL0uJucfDCRK-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375059269081\n\n4. Экшон \"вниз\" в сообщениях не на месте и не того цвета. Сейчас:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375059269083\n\nМакет: https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=563-6719&mode=design&t=joytjL0uJucfDCRK-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375059269085\n\n5. Редактирование постановки. Тамбнейлы все еще не квадратные.\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324406\n\n6. Оргструктура развалилась, проверьте, пожалуйста, вертикальные расстояния между элементами. Сейчас:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324408\n\nМакет:https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=64-2386&mode=design&t=joytjL0uJucfDCRK-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324412\n\n7. Фильтры: отбивки от краев до текста и иконок велики. Должно быть 16 дп. Кнопки не того цвета. И попапы разные в разных разделах, надо привести к макету. В задачах:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324416\n\nВ рейтингах:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324418\n\nМакет:https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=87-2589&mode=design&t=joytjL0uJucfDCRK-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324422\n\n9. Потерялся шильд - цветовой ключ в задачах, добавленных в избранное. Сейчас:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324424\n\nМакет: https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=273-2682&mode=design&t=joytjL0uJucfDCRK-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205375061324428\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205375059269070", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, { "gid" : "697732177966479", "name" : "Design", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205266777869946", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-14T14:34:16.709Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "697732177966479", "name" : "Design", "resource_type" : "project" }, "section" : { "gid" : "1140784957499568", "name" : "(no section)", "resource_type" : "section" } }, { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-03T06:01:08.446Z", "name" : "Дизайн ревью объединенного приложения", "notes" : "Вход на домене partner от РД demopartner@giftoman.ru\n0. Обновите, пожалуйста, сплэш скрин. done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869971\n\n Топ бар для всех разделов желтый и нет заголовка. Сейчас done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869952\n\nНадо: \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869958\n\n2. Раздел Аналитики: в топ баре набор иконок не соответствует заявленному в макете (см скрины выше). И зачем экшон иконка-индикатор обновления? Дублирующая функция пул-ту-рефреш. done\n3. Боттом Шит с Легендой - старая сжатая версия. Просьба подсмотреть паддинги и марджины в макете, там исправленная полноценная история с этим шитом. Сейчас done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869962\n\nНадо: \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869964\n\n4. Раздел Аналитики: дельты теперь сверстаны с выключкой от центра и между ними убран дивайдер. В макете текстом рядом с фреймом пометила \"Оформляем дельты с выключкой по центру, отбивки между показателями одной дельты 8дп, между двумя дельтами 24\". Надо: done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869966\n\n5. Прогресс бары факт, план - скругления динамической стороны. (см скрин выше) done\n6. Пулл ту рефреш индикатор оранж (FFA000 secondary color) done\n7. Раздел Аналитики: детальный экран показателя. Саммари вверху дублирование слов План план ххххххххх LFL LFL хххххх и двухстрочник. Нужно в одну строку и цветом выделяется только числовое значение. Сейчас: \nсделал частично, лучше Никиту подключить\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869968\n\nМакет:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869923\n\n8. Фильтры. Избранное. Нет иконки и цветового ключа при свайпе. Не воспроизвелось\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869927\n\n9. Задачи: Беспорядок со шрифтами в списке задач. Condenced должен быть только статус выполнения. Сейчас: done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869929\n\nНадо: \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869931\n\n10. Раздел Задачи: в топ эпп баре иконки справа далеко друг от друга. Должно быть расстояние 24. done\n11. Раздел Задачи: Управление постановками. Выравнивание экшон иконки play/pause должно быть в строке заголовка, а не во центру слота. Сейчас выглядит как смещение относительно иконок исполнителей. Сейчас: done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869933\n\nНадо:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869935\n\n12. [Постановка запущена / постановка остановлена] должна сопровождаться снекбаром. done\n13. Редактирование постановки. Топ бар не соотв макету done. Чипы done и инпуты done не соотв макету. Сейчас:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869937\n\nМакет:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869939\n\nТакже в новой версии изменен вид аттачментов.\n14. Мессенджер: В топ баре артефактный вертикальный дивайдер. Иногда топ бар мессенджера \"заедает\" при переходе на другие разделы он сохраняется. Поймала в видео (во вложении). done\n15. Внутри чата в топ баре должна быть возвратная иконка. Сейчас: done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869943\n\nНадо: \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205266777869945\n\n16. Мессенджер: троеточие в топ баре должно разворачивать не дропдаун меню, а Боттом шит. done\n17. По цветам и шрифтам в макетах есть токены, если будет нужно, могу расписать все несоответствия, конечно.... где заметил там поправил", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205266777869946", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, { "gid" : "697732177966479", "name" : "Design", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202921537150365", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-06T03:33:33.258Z", "due_at" : null, "due_on" : "2022-09-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-11-22T06:43:59.104Z", "name" : "БК / Старт веб-десктоп решения", "notes" : "Приведение к базовым и универсальным функциям:\n Использование ядра из Analytics (flutter)\n Схема и экраны авторизации/подключения к доменам\n Базовые навигационные элементы (рейлзы и профиль)\n\n#UPD.1.\nДля этой реализации приложения нужно использовать отдельный AppName = 'bc_extended'", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202921537150365", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1202921537150370", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-06T03:39:28.000Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-24T07:34:38.186Z", "name" : "Перенос схемы авторизации и экранов из Аналитики (flutter)", "notes" : "Схема авторизации (+новый 2FA), подключения к доменам и мультиаккаунта идентична Аналитике с точностью до флоу и API-вызовов.\n\nСплэш-скрин (см. аттачи) и цветовая схема отсюда:\nhttps://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=15773%3A0\n\nСхемы цветов:\nhttps://github.com/gamer3dx/heado_taskmessenger/blob/master/app_taskmessenger/src/main/res/values/colors.xml\nhttps://github.com/gamer3dx/heado_taskmessenger/blob/master/app_taskmessenger/src/main/res/values-night/colors.xml", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202921537150365", "name" : "БК / Старт веб-десктоп решения", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202921537150370/1202921537150370", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202921537150371", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-09-06T03:39:40.128Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-13T10:12:59.535Z", "name" : "Базовые навигационные элементы (рейлзы, сайдбар, профиль) и принцип открытия по умолчанию", "notes" : "Навигационные фреймы по макетам (https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1) стабилизированы до рейлзов, имеющих сейчас два основных навигационных пункта:\n Мои Задачи\n Сообщения\n\nПо умолчанию (в первый раз) открываются Задачи. \nТакже необходимо реализовать запоминание последнего открытого экрана ( В Аналитике для такого используется %appdata%/../shared_preferences.json )\n\nПрофиль и его точка входа идентичны реализации десктопной части Аналитики, можно не смотреть в макет (там сейчас сайдбар с сэндвичем), просто мигрировать его как есть под цветовую схему БК. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202921537150365", "name" : "БК / Старт веб-десктоп решения", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202921537150371/1202921537150371", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200430105976797", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:50.451Z", "created_at" : "2021-06-07T04:35:06.045Z", "due_at" : null, "due_on" : "2021-07-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:51.115Z", "name" : "Заголовок показателя в карточке описания / В две строки", "notes" : "Не вмещаются длинные строки\n\n#UPD.1.\nНа экранах analytics / analyticsDetails", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200430105976797", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "1199601751075105", "name" : "flutter", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200507966852874", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:20:55.686Z", "created_at" : "2021-06-25T08:48:24.149Z", "due_at" : null, "due_on" : "2021-07-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:20:56.233Z", "name" : "Цветовая схема для светлой темы / Изменить цвет для плана (фиолетовый)", "notes" : "на #C69BFC #CE93D8 (типа системный)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200507966852874", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" }, { "gid" : "1199601751075105", "name" : "flutter", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200524735476333", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:01.266Z", "created_at" : "2021-06-28T11:20:47.883Z", "due_at" : null, "due_on" : "2021-07-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:01.602Z", "name" : "Список показателей + Детальный / Прогресс-индикаторы План+LFL / Вернуть отображение percent в скобках", "notes" : "Катерина таки успела задачу вставить.\nВспоминаем: там есть в plan: { value: <>, percent: <>) и так же в lfl\nотображаем в скобках справа от {{value}} как ( {{percent}} + '%\" )\n\nЕсли percent нет, то нет и отображения", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200524735476333", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200685734412579", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:05.486Z", "created_at" : "2021-07-29T12:19:22.457Z", "due_at" : null, "due_on" : "2021-08-13", "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:06.044Z", "name" : "HEADO / Аналитика Android и iOS / Обновление логин скрина", "notes" : "Нужно обновить логин скрин в приложении «Аналитика» на андроид и иос - ниже кнопки «вход» появляется надпись про принятие оферты.\nСсылка на figma – https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/?node-id=3141%3A0\nНа слово «оферту» нужно поставить ссылку  - https://www.heado.ru/legal/oferta чтоб можно было перейти для прочтения", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200685734412579", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200755590176698", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:11.947Z", "created_at" : "2021-08-10T05:43:04.256Z", "due_at" : null, "due_on" : "2021-08-17", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:12.700Z", "name" : "Детальный экран показателя / Список зон / Признак \"показывать факты\"", "notes" : "В zones[] появился признак show_facts : boolean, \nЕсли true, то поведение как было - показываем fact.value, fact_forecast.value, plan.value, lfl.value (там со знаком рубля)\nИначе показываем fact.percent, fact_forecast.percent, plan.percent, lfl.percent со знаком %\nЕсли percent == 0, то вместо 0% пишем \"-\" (прочерк)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200755590176698", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200755590176700", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:15.758Z", "created_at" : "2021-08-10T05:48:14.199Z", "due_at" : null, "due_on" : "2021-08-17", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:16.121Z", "name" : "Детальный экран показателя / Список зон / Признак перехода и шеврон перехода", "notes" : "В zones[] добавился признак is_folder : boolean\nЕсли true, то показываем шеврон перехода как в макете и зона активная (переход на экран списка показателя как сейчас)\nИначе нет шеврона и нет перехода", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200755590176700", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200755590176708", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:19.988Z", "created_at" : "2021-08-11T05:27:47.253Z", "due_at" : null, "due_on" : "2021-08-19", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:20.593Z", "name" : "Режим пользовательского упорядочивания показателей", "notes" : "Макет: https://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Android?node-id=2533%3A0\nСписок получается в v2.profile() \n...\nkpi_order: [\n {\n id: , // Идентификатор показателя\n title: , // Название показателя для плашки на экране упорядочивания\n },... идут в порядке сортировки\n]\nСписок сохраняется в v2.profileSave(data)\ndata[\"kpi_order\"] = [\n id:, // subj ... //как отсортировали так и шлём\n]\nДля сброса в data[\"kpi_order\"] передаём [] (пустой массив)\n\nВкратце флоу:\n Иконка в экшнбаре переводит на экран пользовательского упорядочивания показателей, с драггабл плашками показателей в списке\n Человек в этом списке может:\n Перетащить сколько угодно элементов туда-сюда\n Сбросить к исходному состоянию:\n Сохраняется profileSave(data) c data.kpi_profile=[]\n В ответе получается сброшенный список\n Сортируется по полученному\n Принять рукотворное произведение с помощью кнопки \"Готово\" Сохраняется profileSave(data) \n При переходе обратно на главный экран - перезапрос analytics для получения актуальной сортировки\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200755590176708", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200755590176710", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:24.904Z", "created_at" : "2021-08-11T07:58:29.512Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:25.112Z", "name" : "Неожиданное поведение / Потеря реакции на смену фильтра по подчинённым при проваливании по зонам", "notes" : "Если погрузиться из детального экрана в любую зону, а потом попытаться выбрать другую в списке фильтров (последний чипс), то оно не приведёт к желаемому изменению данных. Не берусь предсказывать, возможно связано со стейтмашиной.\nпроверочный акк:\nasaturova.s.a@apt.366.ru\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200755590176710", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200924246638794", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:27.688Z", "created_at" : "2021-09-06T08:19:05.979Z", "due_at" : null, "due_on" : "2021-09-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:27.971Z", "name" : "Главный экран показателей / Пуллдаун не работает, если все показатели умещаются на экран ( то бишь, когда нет скролла)", "notes" : "сабж. rosly3@mtsretail.ru", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200924246638794", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200924246638796", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:32.426Z", "created_at" : "2021-09-06T08:21:31.068Z", "due_at" : null, "due_on" : "2021-09-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:33.185Z", "name" : "Главный экран показателей / Более агрессивный префетч", "notes" : "Предлагаю увеличить кол-во показателей до +2 к вместимости экрана и делать префетч уже при попадении во вьюпорт начала +1-ой плитки из загруженной последовательности (т.е. префетчить на каждую N+1, где N - это вместимость экрана)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200924246638796", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200924246638798", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:35.513Z", "created_at" : "2021-09-06T08:26:21.878Z", "due_at" : null, "due_on" : "2021-09-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:35.937Z", "name" : "Экран упорядочивания показателей / Промпт при возврате назад на изменённом экране", "notes" : "Если Пользователь изменил порядок и жмёт \"Назад\" нужно спросить \"Сохранить изменения Да/нет?\"", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200924246638798", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201127610996488", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:39.228Z", "created_at" : "2021-10-06T06:04:03.195Z", "due_at" : null, "due_on" : "2021-10-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-12-03T07:39:38.720Z", "name" : "Экран детального просмотра показателя / Отображение начала координат и конца по оси X", "notes" : "Желают видеть начало и конец периода на графике внизу.\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201127610996488", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1201127610996502", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-10-08T08:55:13.005Z", "due_at" : null, "due_on" : "2021-10-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2021-10-13T22:13:20.792Z", "name" : "Сокращение формата даты ", "notes" : "Алгоритм состоит в последовательном сравнении установленного пользователем контекста диапазона дат и сбросе фиксированного умолчания:\ndateFrom.format('Y') == dateTo.format('Y') ? \n ( dateFrom.format('m') == dateTo.format('m') ? \n ( dateFrom.format('d') == dateTo.format('d') ? ts.format('H:i') : \n ts.format('локаль с месяцем днём')) : \n ts.format('локаль с месяцем и днём')  ) : \nts.format('локаль с годом, месяцем, днём')", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1201127610996488", "name" : "Экран детального просмотра показателя / Отображение начала координат и конца по оси X", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1201127610996502/1201127610996502", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201127610996494", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:42.546Z", "created_at" : "2021-10-06T06:10:13.345Z", "due_at" : null, "due_on" : "2021-10-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:42.940Z", "name" : "Репорт / Автопоиск в фильтре / Иногда нельзя выбрать последний элемент при определённом количестве элементов", "notes" : "Репорт с иОСи, но, похоже на андроиде тоже такая тема: \n ushakov.a.n@366.ru\n Ищут в Торговых точках \"Руб\", находит 6 элементов - последний элемент не даёт выбрать\n Набирают \"Рубл\", находит 5 элементов и после этого даёт выбирать\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201127610996494", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1175976147669456", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-05-06T05:21:48.057Z", "created_at" : "2020-05-15T07:26:21.070Z", "due_at" : null, "due_on" : "2020-05-19", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-05-06T05:21:48.569Z", "name" : "Heado Analytics / Поведение при ответе сервера \"Сессия истекла\"", "notes" : "Переводить на экран логина", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1175976147669456", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202010117071372", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-03-31T04:30:32.883Z", "created_at" : "2022-03-23T03:42:49.624Z", "due_at" : null, "due_on" : "2022-03-31", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-03-31T04:30:33.323Z", "name" : "Локализация / Знак валюты ", "notes" : "в initSession() + profile() теперь возвращается структура\nlocale : {\n id: , // посиксовая локаль\n currency: // знак/аббревиатура валюты\n}\n\nСоответственно, нужно этот момент продёрнуть в форматтеры значений показателей для типа money", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202010117071372", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1200685734412581", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2021-07-29T12:20:44.402Z", "due_at" : null, "due_on" : "2021-08-13", "followers" : [ { "gid" : "2934206415688", "name" : "Diza", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-16T12:27:30.957Z", "name" : "HEADO/ Задачи / Обновление логин скрина", "notes" : "Нужно обновить логин скрин в приложении «Задачи» - ниже кнопки «вход» появляется надпись про принятие оферты.\nСсылка на figma – https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/?node-id=15773%3A0 \nНа слово «оферту» нужно поставить ссылку  - https://www.heado.ru/legal/oferta чтоб можно было перейти для прочтения", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1200685734412581", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1181331676622363", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2020-06-22T05:56:13.326Z", "due_at" : null, "due_on" : "2020-07-10", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-02-07T04:26:41.939Z", "name" : "Heado Аналитика / Рабочие группы", "notes" : "- Макет: https://www.figma.com/file/bDS1rsGwWvbLG1Gyt0kd78yW/HEADO.%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8---Android?node-id=15330%3A0\n- Привести вид просмотра профиля в соответствие с макетом\n\n- Метод API 2.0 / filters( screen, filter ) \n-- IN: screen: workgroup, // Получаем настройки фильтров и справочников для экрана Рабочей группы\n-- OUT: {\n--- statuses: [ { id: 0, title: \"Аккаунт выключен\"}, {id: 1, title: \"Аккаунт активен\"}, { id: 2, title: \"Аккаунт заблокирован\"}, {id:100, title:\"Приглашение выслано\"}, ..], // Статусы с разлиновкой под действия в интерфейсе\n--- roles: [ {id: , title: },... ], // Роли\n--- cities: [ {id: , title: },... ], // Города\n--- zones: [ {id: , type: , title: },... ], // Зоны (в следующих сериях)\n-- }\n\n- Метод API 2.0 / workGroupUserList( [filter, offset = 100, order = \"default\"] ) // Список Пользователей, сгруппированный по ролям с партзагрузкой\n-- IN :\n--- filter.search: , // Строка мультипоиска\n--- offset : , // Как всегда партзагрузка\n--- order : , // Идентификатор роли\n---- title: , // Название роли\n---- count: , //Количество пользователей\n---- users: [ {\n----- id: ,\n----- name: , \n----- login: ,\n----- email: ,\n----- phone : ,\n----- role: { id: , title: },\n----- status: { id: , title: },\n----- image: ,\n----- city: { id : , title: },\n----- zones:  [ { id: , type: , title: },.. ] // Зоны (в следующих сериях)\n--- } ] ,...} ]\n\n- Метод API 2.0 / workGroupUserInvite( email, data ) // Приглашение Пользователя.\n-- IN:  \n--- email: ,\n--- data: { name: , : , : [, : [ { id: ,type:},... ] } \n--- OUT: {\n-- uid: ,\n-- status: \"ok\"\n}\n\n- Метод API 2.0 / workGroupUserSave( id, data ) // Сохранение пользователя рабочей группы. Исопльзуется так же для назначения статуса Пользователю и смены его пароля.\n-- IN: \n--- id : \n--- data: { // \n---- name: , \n---- email: ,\n---- phone: ,\n---- role: ,\n---- status: , \n---- city: , \n---- password: ,\n---- zones: [ { id: , type: },... ], // В будущем\n--- }\n\n- Метод API 2.0 / profile( id ) // Я знаю, что ты будешь использовать модель из workGroupUserList, но в проформе оно понадобится\n\n#UPD.1.\nЗаказчик изменил условия договора:\n- На просмотре профиля Сотрудника нужно пункт \"Сменить пароль\" изменить на \"Отправить ссылку смены пароля по e-mail\"\n-- pAPI.workGroupSendPassLink( id ) \n-- IN \n--- id : // id пользователя\n-- OUT: { status:'ok'}\n-- После выполнения запроса просто нотификация \"Пароль отправлен на \" + User.email\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1181331676622363", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201776342226065", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-02-07T04:14:57.858Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-04-28T09:03:35.949Z", "name" : "Экран рейтингов / Рейтинг Торговых точек", "notes" : "Макет экрана рейтингов: (см. https://app.asana.com/0/201687425733831/1201776342226068)\nhttps://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Flutter?node-id=4216%3A1739\n\nНазвание для навигации: \n rus: Рейтинг магазинов \n eng: Shop Ratings\n\nНазвание экрана для запроса v2 фильтров (API.v2.filters(screen [,filter]):\n screen = ratings:tradepoints\n\nЭндпоинт для получения данных экрана (https://app.asana.com/0/201687425733831/1201776342226067)\n API.v2.ratings( id [, filters])\n id - идентификатор рейтинга ( tradepoints )\n filters - опциональный объект по стандартной спеке фильтров\n\nБриф:\n Для мобильной версии решили отказаться от свободнотабличного представления со скроллами в пользу списка с отображением одного целевого показателя, по которому считается рейтинг. \n Выбор целевого показателя осуществляется чипсом фильтров (filter.kpi)\n Эндпоинт возвращает весь список показателей в строчке рейтинга (для решения под планшеты и десктоп), целевой обозначен через out[].kpi[].selected == true\n Список поддерживает догрузку по стандартной схеме непустых порций через filter.limit\n Префетч = +3 элемента\n filter.sort.column ( = out[].kpi[].id ) - по умолчанию Первый показатель в списке, он же сопрягается с out[].kpi[].selected, поэтому можно делать сопоставление через этот мап. \n Этот огород нужен для поддержания расширенной версии для планшетов и десктопа\n filter.sort.order по умолчанию = DESC\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1201776342226065", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1201776342226067", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-02-07T04:32:43.411Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-17T17:44:33.687Z", "name" : "Спека API.v2.ratings()", "notes" : "API.v2.ratings(id [,filters])\nIN :\n id : string = \"tradepoints\"\n filter - см https://app.asana.com/0/search/1201776508281513/1153564256073622\n Стандартная уже спека\nOUT:\ndata: \n[ // Массив объектов рейтинга (Магазинов (ТТ) )\n { \n \"zoneType\": , // Тип зоны объекта рейтинга (ТТ)\n \"zoneId\": , // Идентификатор зоны объекта рейтинга (ТТ)\n \"name\": , // Название объекта рейтинга (ТТ)\n \"order\": , // Позиция в списке\n \"my\": , // #FFU : пометка \"моё (true)/ не моё (false)\"\n \"kpi\": Array of Objects [ // Массив показателей (колонок)\n {\n \"id\": , // Идентификатор Показателя\n \"name\": , // Название Показателя\n \"type\": ,\n \"selected\" : , // Выбран(true) / Не выбран (false)\n \"order\": , // № колонки Показателя\n \"fact\": , // Факт \n \"percent\": , // Процент выполнения\n \"delta\": , // Дельта выполнения\n \"is_positive\" : , // Позитивный или нет результат\n \n // Дальше для планшета и десктопа\n \"lfl\": , // #FFU. LFL Факт (из прошлого периода)\n \"plan\": , // #FFU. План \n \"forecast\": , // #FFU. Прогноз\n \"percent_fact\": , // #FFU. Факт / План\n \"delta_fact\": , // #FFU. Факт / План\n \"percent_forecast\": , // #FFU. Прогноз / План\n \"delta_forecast\": , // #FFU. Факт / План\n \"percent_lfl\": , // #FFU. Факт / LFL\n \"delta_lfl\": , // #FFU. Факт / План\n },...\n ]\n },...\n],\ntotal_count: ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1201776342226065", "name" : "Экран рейтингов / Рейтинг Торговых точек", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1201776342226067/1201776342226067", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1201776342226068", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-02-07T04:32:51.747Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-16T16:17:01.737Z", "name" : "Реализация макета и требования к поведению", "notes" : "Макет: \nhttps://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Flutter?node-id=4216%3A1739\n\nВерхняя линейка чипсов - свободноформируемый (по данным с бэка) список фильтров (см. https://app.asana.com/0/search/1201776508281513/1153564256073619 )\n Стандартный подход/поведение как на существующих экранах Analytics / AnalyticsDetailed \n\nВ соответствии с https://app.asana.com/0/201687425733831/1201776342226067 содержимое экрана строится следующим образом:\n Заголовок списка: Рейтинг + '\"' + filter.kpi.name + '\"'\n Порядковый номер = OUT[].order\n Название в первой колонке = OUT[].name\n Значение 2-ой колонки 1-ой строки = OUT[].kpi[ selected == true ]. fact\n Значение 2-ой колонки 2-ой строки слева (%) = OUT[].kpi[ selected == true].percent\n Значение 2-ой колонки 2-ой строки справа (дельта) = sign(OUT[].kpi[ selected == true].delta) + OUT[].kpi[ selected == true].delta\n Сортер по умолчанию filter.sort = { column: filter.kpi.id, order: 'desc' } \n Лимит по умолчанию filter.limit = { count: ceil(Высота экрана / кол-во строк) + 3, offset:0 }\n\nТребования к поведению:\n Индикатор загрузки обязателен\n Pull-to-refresh\n При изменении порядка сортировки filter.limit.offset сбрасывается\n Изменение сортера в заголовке списка индицируется \n При изменении фильтра - filter.limit.offset сбрасывается\n При клике на строку - переход в AnalyticsDetailed ( zoneType = OUT[clicked item].zoneType, zoneId = OUT[clicked item].zoneId, id = filter.kpi.id )\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1201776342226065", "name" : "Экран рейтингов / Рейтинг Торговых точек", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1201776342226068/1201776342226068", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202152375977041", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-04-20T12:51:27.909Z", "due_at" : null, "due_on" : "2022-04-28", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-04-28T09:02:51.470Z", "name" : "Планшет+Десктоп / Лейаут и поведение ", "notes" : "В качестве расширения к основному лейауту мобильной части (фиксированная колонка выбранного рейтинга-показателя) добавляется горизонтально-скроллируемая таблица остальных показателей:\n \"Остальные показатели\" определяются OUT[].kpi[ selected != true ] \n В значении ячеек расширения отображаем факт OUT[].kpi[].fact и % выполнения OUT[].kpi[].percent (Ирина обновляет макет)\n Сортировка \"остальных показателей\" по колонкам - as is (в порядке встречи в хидере)\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1201776342226065", "name" : "Экран рейтингов / Рейтинг Торговых точек", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202152375977041/1202152375977041", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202025131419053", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-03-28T09:51:07.953Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-03-28T10:13:18.518Z", "name" : "Локализация / Передача текущей локали устройства", "notes" : "В GET-параметрах передавать дополнительно locale={lang}_{REGION}", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202025131419053", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202395304416767", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-06-07T05:05:44.216Z", "due_at" : null, "due_on" : "2022-06-21", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-26T06:58:18.678Z", "name" : "Редактирование профиля / Выбор и сохранение локали", "notes" : "В экране редактирования профиля в конец формы нужно добавить выбор из списка локалей с последующим сохранением в профиле. \nНазвание поля: \n en: Locale\n ru: Локализация\nЭти строки нужно добавить в PoEditor и уже оттуда сохранить полученные arb.\n\nДанные для списка берутся из поля запроса profile().available_locales, который нужно расширить соответственной моделью локалей,\navailable_locales: [\n {\n \"name\": \"ru\", // string(3)\n \"default_posix_lang\": \"ru_RU\", string(5)\n \"default_lang\": \"ru_ru\", string(5)\n \"currency\": \"₽\", string(3)\n \"title\": \"Россия / Русский\", string(50) // Название локали для отображения в списке\n \"id\": \"ru_RU\" (string(5))// Идентификатор локали для сохранения\n },\n ...\n ]\n}\n\nТекущая выбранная локаль берётся из profile().locale: {\n \"currency\": \"₽\",\n \"id\": \"ru_RU\" // Идентификатор текущей локали\n }\n\nСохранение производится через передачу параметра locale в методе profileSave.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202395304416767", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202403105201892", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2022-06-07T06:19:34.882Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-07T11:10:16.460Z", "name" : "Рефакторинг RefreshButton - custom controller", "notes" : "На десктопе (Mac/Windows) у нас используется компонент RefreshButton, с которым надо общаться через связанный с ней Bloc, посылая ему события. Это вызвано необходимостью посылать сообщения не только из самого экрана с кнопкой, но и из его детей. Однако Bloc, посылающий сообщения в другой Bloc - это антипаттерн. Нужно изобрести что-то аналогичное RefreshController/TextEditingController, который можно будет контролировать кнопку моментально, без дополнительной шины данных.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202403105201892", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202403105201896", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2022-06-07T06:23:02.441Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-07T08:03:49.045Z", "name" : "Добавить индикацию обновления списка в Cupertino", "notes" : "На iOS у нас отсутствует индикация обновления списка. То есть, например, если пользователь обновляет список самостоятельно, через Pull To Refresh, то он видит индикатор, а вот если список обновляется программно (например, через изменение фильтров) - то индикатора нет. Это связано с тем, что в Material индикатор обновления появляется НАД списком, а в Cupertino индикатор обновления является ПЕРВЫМ ЭЛЕМЕНТОМ списка. Решение со сдергиванием списка вниз программно для появления индикатора не подходит, потому что пользователь может быть не в начале списка на момент обновления.\nОдно из решений, которое мы выбрали - прогресс-бар поверх списка (как, например, сделано в приложении Pocket), но по умолчанию в Cupertino отсутствует линейный индикатор прогресса, поэтому нужно найти что-то подходящие на pub.dev и добавить его в приложение.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202403105201896", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202403105201898", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2022-06-07T06:27:29.951Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-07T08:03:57.052Z", "name" : "Оценка возможности рефакторинга AnalyticsUtils", "notes" : "В приложении существует класс AnalyticsUtils, который отвечает за вспомогательные функции работы с аналитикой (например, форматирование числа согласно его типу - деньги, проценты, просто номер) и который является синглтоном, к которому обращаются через статичный метод instance. Причина этому - метод setFromLocale, который вызывается, например, при обновлении профиля с сети. Нужно понять, возможно ли избавиться от подхода с синглтоном в текущей архитектуре, изучив места, где используется этот класс. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202403105201898", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202458127605176", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-06-16T12:21:19.787Z", "due_at" : null, "due_on" : "2022-06-20", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-20T07:44:23.188Z", "name" : "Экран логина / Возможность прозрачной передачи домена в составе логина", "notes" : "в логине можно использовать название домена в виде префикса\ndomain_name:login (E.g: gamma:nechaikina705@mail.ru)\nВ случае, если указан домен, то нужно проводить попытку прозрачного переключения в указанный домен (как при смене домена).\n\nP.S.\nв iOS есть проблемы с клавиатурой, она не даёт вводить :\nИлья говорит, что можно решить сменой типа на текст, но тут нужно поглядеть побочки ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202458127605176", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202469352263164", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-06-21T09:28:17.176Z", "due_at" : null, "due_on" : "2022-06-27", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-06-26T22:10:44.761Z", "name" : "Профиль / Редактирование / Убрать поле изменения e-mail", "notes" : "Сабж. \nОрганизационный момент отработки запросов по сценариям безопасности", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202469352263164", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202581058642732", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-07-12T08:56:09.243Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-08-12T16:41:57.687Z", "name" : "Аналитика / Просмотр профиля / Реорганизация сценария Редактирование и Аккаунты", "notes" : "\"Аккаунты ({{кол-во}})\" выносим в основное меню на экране просмотра профиля (первой позицией) \nКнопка редактирования профиля сразу ведёт на редактирование профиля", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202581058642732", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202627798364658", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-07-22T05:42:55.200Z", "due_at" : null, "due_on" : "2022-09-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-11-22T06:43:51.183Z", "name" : "Аналитика / Проект перехода к 2FA", "notes" : " Рефакторинг аутентификации и авторизации\n Реализация опционального флоу 2FA\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202627798364658", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1202627798364660", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-07-22T05:43:59.691Z", "due_at" : null, "due_on" : "2022-09-06", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-05T19:00:13.324Z", "name" : "Переход на новую схему аутентификации", "notes" : "Актуальный сценарий авторизации сейчас состоит в том, чтобы при отправке login/pass с экрана Логина вызвать метод api/2.0/initSession(), передавая в GET параметры login и pass. \n\n2.0/initSession() возвращал модель, в составе которой был параметр sid (сессионный идентификатор), который для всех последующих запросов передавался в GET-параметре \"sid\".\n\nЭтот сценарий, соответственно, объявляем устаревшим. \n\nНовый сценарий:\n\n Вместо использования прямой передачи пары логин-пароль/ключа сессии в GET переходим на использование JRPC-метода 2.0/auth(login,pass) https://m.heado.ru/internal-papi-dmz-reference.html\n Мигрируем обработку ошибок данного метода\n При ответе 2.0/auth(login,pass): result.status == \"passed\" (на данном этапе только один вариант) получаем auth_key и передаём его в заголовке Authorization: Bearer {{auth_key}} для вызова последующих методов (По цепочке там идёт получение профиля (v2.0/profile()) )\n\nP.S.\nДля вхождения в контекст понадобится JRPC 2.0: https://www.jsonrpc.org/specification\n\nURI и спека обращения к API вполне прозрачны в коде, здесь отмечу некоторые нюансы:\n Базовый URI получается из метода domain(), в коде можно увидеть его вызов, Пользователь может менять домен в Приложении и тем самым работать с разными ресурсами. Это сделано как для поддержки концепта масштабирования, так и для возможности внешних хостингов платформы.\n Далее к нему конкатенируется версия API метода (/1.0, /2.0/ e.t.c.) и отправляется сырое тело запроса по спеке JRPC 2.0.\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202627798364658", "name" : "Аналитика / Проект перехода к 2FA", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202627798364660/1202627798364660", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202627798364662", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-07-22T05:44:13.296Z", "due_at" : null, "due_on" : "2022-09-02", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-03T11:37:16.821Z", "name" : "Реализация опционального сценария 2FA", "notes" : "Макет (в нижней части экрана):\nhttps://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Flutter?node-id=3141%3A0\nФлоу: https://www.figma.com/proto/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Flutter?node-id=3666%3A479&scaling=min-zoom&page-id=3141%3A0&starting-point-node-id=3666%3A479&show-proto-sidebar=1\n\n\npAPI.auth(login, pass).status после успешной проверки логин-пароля может выдавать дополнительные значения:\n[ \"2fa-bind\", \"2fa-wait\" ], в связке с этими статусами выдаётся параметр action_key\nhttps://m.heado.ru/internal-papi-dmz-reference.html#auth\n\nstatus : \"2fa-bind\"\nПереход на экран \"Привязка\" (экран Bind)\nСсылка в тексте экрана: https://t.me/heado_fafa_bot, дизайнер просит сделать переход при клике на весь текстовый блок.\n\nЗдесь Пользователь должен ввести числовой идентификатор и нажать кнопку \"Привязать\".\nВ результате нажатия выполняется метод pAPI.2fa.bind(action_key, id) https://m.heado.ru/internal-papi-dmz-reference.html#2fa_bind\nВ ответ метод может выдать status:[ \"2fa-bind-error\", \"2fa-wait\" ],\n2fa-bind-error означает ошибку идентификатора (см экран Bind-error) и необходимость повтора действия\n\nstatus : \"2fa-wait\"\nПереход на экран \"Ожидание подтверждения\" (Confirm Request)\nПри открытии экрана сразу вызывается long-poll метод pAPI.2fa.confirm(action_key) и запускается секундный таймер {{wait_time}}\nВ ответ метод может выдать status:[ \"2fa-expired\", \"passed\" ],\nstatus: \"2fa-expired\" - Пользователь может повторить запрос с заново выданным action_key\nstatus: \"passed\" - Сценарий такой же как при auth(login,pass): status:\"passed\" https://app.asana.com/0/201687425733831/1202627798364660\n\nP.S>\nНа этот раз работаем в домене test.partner (Производится через вход в домен внизу экрана логина) - реализация в тестовом режиме и всегда выдаёт запрос на второй фактор.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202627798364658", "name" : "Аналитика / Проект перехода к 2FA", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202627798364662/1202627798364662", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202868560715490", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-08-29T05:12:22.463Z", "due_at" : null, "due_on" : "2022-08-30", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-03T11:37:06.090Z", "name" : "Отмена использования login/pass в GET", "notes" : "Перевести AddUserBloc и соответственно AddUserPage c SessionStart на новую авторизацию с заголовком Authorization: Bearer {{auth_key}} (по схеме https://app.asana.com/0/201687425733831/1202627798364660)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202627798364658", "name" : "Аналитика / Проект перехода к 2FA", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202868560715490/1202868560715490", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202882620147766", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-08-29T12:21:21.425Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-03T11:36:56.444Z", "name" : "Перевод access_key на auth.bykey(access_key)", "notes" : "Спека метода: https://m.heado.ru/internal-papi-dmz-reference.html#auth_bykey\nВместо использования ключа через X-API-KEY + startSession() перевести на получение сессионного ключа напрямую через метод auth.bykey(access_key)\n\nstatus обслуживаем единственный: passed\n\nТестовый ключ: 1501656769JIZBRgbzgxgwAJTeXjb8xkZN74tKbk6U25uTlGsCdI8Nr00nkcwSwuEEz7nKsuDuz7nVNQx0xFNYGOl__SRwlvaVCxE31hyAoVvbK1bhHZfmNAmNsd0d44", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202627798364658", "name" : "Аналитика / Проект перехода к 2FA", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202882620147766/1202882620147766", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202911911636151", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-02T09:10:05.454Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-03T11:36:38.615Z", "name" : "Схема регенерации auth_key", "notes" : "auth(), auth.bykey(), 2fa.confirm() теперь выдают в ответе regen_key на статусе 'passed':\nhttps://m.heado.ru/internal-papi-dmz-reference.html#2fa.confirm\n\nauth_key может устаревать с ошибкой -35005 (SESSION_EXPIRED), \n\nВ случае, если regen_key есть в наличии, auth_key регенерируется с помощью auth.regenereate(key) (https://m.heado.ru/internal-papi-dmz-reference.html#auth.regenerate)\nвыдаёт так же auth_key и новый regen_key (regen_key одноразовый)\n\nПри любых ошибках регенерации или отсутствии regen_key выходим в экран Логина. \n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202627798364658", "name" : "Аналитика / Проект перехода к 2FA", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202911911636151/1202911911636151", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202780447136361", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2022-09-06T03:33:30.339Z", "created_at" : "2022-08-11T06:30:28.255Z", "due_at" : null, "due_on" : "2022-08-25", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-09-06T03:33:31.083Z", "name" : "Аналитика / Десктоп / Конфиг-файл", "notes" : "Поддержка конфиг-файла (что-то подходящее для флаттера, можно JSON, если меньше зависимостей цеплять).\n В рабочей директории приложения\n Грейсфул на отсутствии конфига.\n\nПервоочередные параметры:\n => Ключ доступа (access_key) = \n => Автообновление (auto_refresh) = \n\n#UPD.1.\nКонфиг согласовали %APPDATA%/Roaming/Heado/Analytics/heado_config.json", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202780447136361", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1202780447136363", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-08-11T06:31:50.727Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-08-12T07:08:01.374Z", "name" : "Ключ доступа (access_key)", "notes" : "string(128)\nЕсли не пустой и валидный:\n <#UPD.1>Если пользователь не залогинен считается что пользователь в состоянии \"логинится\"\n Шлётся в headers.X-API-Key <#UPD.1.> в момент логина (startSession() ) для получения стандартного sid'а (дальше работаем как обычно) \n Если сервис вернул отказ в авторизации (const RES_AUTH_FAILED = -33100) - тихо возвращаемся в логин \n Если хоть один акк залогинен - ничего не делаем\n\nЕсли пуст или невалиден - стандартно выходим в логин-форму", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202780447136361", "name" : "Аналитика / Десктоп / Конфиг-файл", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202780447136363/1202780447136363", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202780447136364", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-08-11T06:32:16.636Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-08-11T08:33:48.753Z", "name" : "Автообновление (auto_refresh)", "notes" : "int в секундах\n =0/не установлен/не валиден - отключено\n >0 - включается автообновление\n<#UPD.2>\n Минимальное значение = 15с\n Учесть момент, связанный с тем, что запрос может выполняться дольше.\n\n\n#UPD.1.\nПрименяется к экранам Аналитики, Детальному Экрану и Рейтингам\n\n#UPD.3.\nФлоу: \n При старте запроса - таймер отключается\n Данные экрана загрузились - таймер стартовал\n При любых инвазивных действиях Пользователя на экране - таймер сбрасывается\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202780447136361", "name" : "Аналитика / Десктоп / Конфиг-файл", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202780447136364/1202780447136364", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202780447136373", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-08-12T07:30:40.382Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-08-12T10:23:04.507Z", "name" : "Домен (domain)", "notes" : "string(40)\n Если есть и валиден - подключается в указанный домен до логина\n Если Пользователь залогинен - ничего не делать\n Если нет или не валиден - фоллбэк на основной домен\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202780447136361", "name" : "Аналитика / Десктоп / Конфиг-файл", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202780447136373/1202780447136373", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202780447136376", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-08-12T17:29:25.958Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-08-15T11:13:18.896Z", "name" : "Защищённое хранилище для креденшиалзов", "notes" : "Только на десктопе.\nshared_preferenses.json можно, в принципе, весь секьюрить, но если по частям, то:\n Пароль\n sid\n Ключ\n И прочие креденшиалзы.\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202780447136361", "name" : "Аналитика / Десктоп / Конфиг-файл", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202780447136376/1202780447136376", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202956908160776", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-07-17T13:21:25.657Z", "created_at" : "2022-09-12T05:21:57.645Z", "due_at" : null, "due_on" : "2022-10-20", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-01T09:55:33.918Z", "name" : "БК / Разворачивание MVP веб-десктоп", "notes" : "В приложении нужно будет использовать API 3.0, спека: https://m.heado.ru/internal-papi-v3.0-reference.html#2fa_bind\nМетоды из старых версий отмашрутизированы с соблюдением старых спецификаций, поэтому можно не разделять суффиксы версий в URL под каждый метод сейчас - они будут доступны и под суффиксом 3.0\n\nФлоу приложения: https://www.figma.com/proto/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=88%3A71&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=88%3A71&show-proto-sidebar=1\n\nОбщие соглашения и принципы построения:\n Приложение делается по material-like гайдам, поэтому там где реализуются стандартные компоненты - реализуем по material гайдам, отходы дизайнера от гайдов реализуем по остаточному принципу\n Целевой платформой на данном этапе является веб/десктоп и по остаточному виду - планшеты\n Приложение представляет разнотипные интерфейсы, но в конечном итоге они могут связываться общими компонентами и флоу, к примеру, переход из чатов по ссылке в просмотр задачи и наоборот. Нужно это учитывать в проектировании стейтов экранов.\n В виду перспективы использования условно постоянных соединений (на сокетах/лонгполлах) разные разделы Приложения могут получать сигналы от сервера независимо друг от друга. \n Поддержка состояний интерфейса в вебе через ссылки нужна, но с низким приоритетом, упоминаю на случай, если это может повлиять на внутреннюю организацию решений\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1202956908160776", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1202956908160778", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2022-09-12T05:22:23.431Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-16T06:35:02.915Z", "name" : "Подсистема \"Фильтры\"", "notes" : "В текущем проекте Flutter / Heado Аналитика есть реализация модуля, обслуживающего фильтры на разных экранах. \n\nОбщий концепт: \nЭкраны, где подразумевается присутствие системы фильтрации в вызовах API, либо использования данных для редактирования/создания объектов, оснащаются названием-мнемоникой, которая передаётся в API.filters(screen [,filter]) (спека https://m.heado.ru/internal-papi-v3.0-reference.html#filters ) в параметре screen\nМетод возвращает набор данных, который используется модулем для ограниченной интерпретации в контролы фильтров или для использования в качестве справочников данных для полей формы.\n\nОбслуживающий слой так же позволяет собирать состояния контролов в объект фильтра для передачи в API.\n\nЗадача:\nНеобходимо перенести данную логику в проект. \n\nВ текущем виде у нас есть два экрана:\n task:list - фильтры размещаются в основном окне над списком (см. скриншот), Ремарка: наполнение фильтров не соответствует рыбе в макете\n task:create - это справочные данные для панели создания задач\n\nТребование по загрузке: До открытия целевого экрана.\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202956908160778/1202956908160778", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203090010216721", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-11-14T12:14:07.515Z", "created_at" : "2022-10-06T05:07:02.663Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-11-14T12:14:08.037Z", "name" : "Экран \"Задачи\" / Режим \"Список задач\" / Режим \"По тиражам\"", "notes" : "Макет: https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1\n\nНаряду с фильтрами есть закреплённый справа переключатель \"По тиражам\":\n В выключенном состоянии список работает соответственно описанию в https://app.asana.com/0/201687425733831/1202956908160779\n При включении вид списка меняется согласно макету в разделе \"Тиражи\", обслуживающий эндпоинт при этом становится https://m.heado.ru/internal-papi-v3.0-reference.html#ticket_pack_list\n\nticket.pack.list() отличается от ticket.list() следующими параметрами:\n Отсутствует assignee, в макете он меняется на \"{{assignee_cnt}} Исп.\"\n Отсутствует attachments\n Остальной набор полей модели идентичен\n Фильтры работают так же и те же\n\nФлоу:\n При переключении в режим \"По тиражам\" отображается список Тиражей (Replication CompactView / Android / Desktop из ticket.pack.list(filter) ) \n При нажатии на элемент списка (тираж), выполняется запрос ticket.pack.get(id,filter)\n id = selected_item.id\n Вид переключается в (Replication Opened / Android / Desktop), где отрисовывается комбинированное состояние \"Раскрытый тираж\", состоящий из корневого элемента выбранного Тиража и списка полученных задач из ticket.pack.get().tasks[]\n Повторное нажатие на открытый Тираж приводит к возвращению в исходное состояние списка тиражей (закрытие тиража)\n Клик на задачу из Тиража приводит к сценарию открытия Задачи в сайдбаре\n При закрытии тиража и открытой задаче из него - Задача остаётся открытой, но селектор перемещения по списку задач становится недоступным\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203090010216721/1203090010216721", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202956908160779", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2022-11-14T12:21:03.879Z", "created_at" : "2022-09-12T05:22:55.325Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-11-14T12:21:04.494Z", "name" : "Экран \"Задачи\" / Режим \"Список задач\" + Панели (сайдбары)", "notes" : "Макет: https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1\nсм. раздел \"Задачи и Структура\"\n\nНа этом этапе необходимо реализовать общий лейаут с поддержкой боковых панелей.\n\nБоковые панели:\n Слева всегда \"Оргструктура\" - у неё два состояния открытости: Компактное и Расширенное (см. Экраны Orgstructure / .. и Orgstructure_FullView / ..)\n Справа может открываться разнородное содержимое: Просмотр Задачи, Создание Задачи, Редактирование Задачи e.t.c.\n Открытие правой панели на данном этапе синглтонное, т.е. если открывается что-то новое по виду \"справа\" (Вместо Просмотра задачи - Создание, к примеру), то старое \"закрывается\".\n Общие размерности респонсивки https://app.asana.com/0/698025068994503/list отметила внизу экранов, можно следовать %, хотя min-max будут лучшим решением. \n При открытии правой панели, панель Оргструктуры принудительно переходит в Компактный режим.\n Бэкстэк на панелях пока не копим.\n\nОбщий флоу по UI:\n При открытии экрана нужна проверка сохранённого последнего состояния, это включает:\n Состояние фильтров\n Состояние открытия боковых панелей \n Если состояний не сохранено, открытие обозначаем как \"холодное\"\n При холодном открытии (в рамках данной задачи нужно реализовать только его), помимо попытки получения набора фильтров, выполняется два запроса https://m.heado.ru/internal-papi-v3.0-reference.html#ticket_list и https://m.heado.ru/internal-papi-v3.0-reference.html#structure_get\n В верхнюю строку виджета (где \"путь\") вписывается structure.get( { id : 0 , filter: filter } ) {{node.path.text}}\n Догрузка списка:\n Догрузка осуществляется по принципу load more с небольшим предиктом\n При догрузке используется filter.limit = {offset: int, count: int } , count = 30 по умолчанию\n В task.list().total_cnt приходит общее кол-во найденных записей\n При загрузке копим счётчик загруженных элементов (loaded_cnt) в рамках немодифицированного запроса (неизменный filter)\n Если loaded_cnt < total_cnt и при этом Пользователь доскроллил как минимум до N-3 элемента, то загружается следующая порция ticket.list() с filter.limit = { offset: loaded_cnt, limit: 30 } \n При модификации запроса (изменении filter) filter.limit сбрасывается в начальные значения\n\nБинды по виджетам:\nrem: Большая часть спеки методов отражает компоновку интерфейсов по названиям, поэтому пока тут отражаю основные нюансы по сборке виджетов и ключевым параметрам.\n\nСписок задач namespace ticket.list().[]:\n {{id}} используется для передачи в ticket.get() при открытии экрана Просмотр Задачи\n Исполнитель: {{assignee.image}} (Аватар) + {{assignee.name}} (Имя) + {{{assignee.role}} (Caption к имени)\n Ответственный: owner.name\n Время: {{duedate}} в локали, время выделено\n Название: {{title}} + {{event.name}} (чип)\n Результат: attachements[].thumb_uri + Виджет Прогресса:\n % = round(progress.success / progress.cnt)\n PROGREESS_WIDTH - общая ширина прогресс-бара\n прогресс-бар составляется из последовательных \"полосок\": \n зелёная: round( {{progress.success}} / {{progress.cnt}}) * PROGRESS_WIDTH\n жёлтая: round( {{progress.interaction}} / {{progress.cnt}} ) * PROGRESS_WIDTH\n красная: round( {{progress.failed}} / {{progress.cnt}} ) * PROGRESS_WIDTH \n статус: {{event.name}} с text-overflow:ellipsis\n\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202956908160779/1202956908160779", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202956908160780", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-11-14T12:12:33.627Z", "created_at" : "2022-09-12T05:23:05.141Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-24T05:50:21.665Z", "name" : "Экран \"Задачи\" / Режим \"Оргструктура\"", "notes" : "Макет: https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1 / Задачи + Структура\n\nfilter в аргументе запроса https://m.heado.ru/internal-papi-v3.0-reference.html#structure_get - общий для всего экрана + локальные модификации по сортировке\n\nФлоу:\n\n При нажатии на верхнюю строку виджета ( Путь ) раскрывается левая панель под контентную зону Оргструктуры (при этом строка прячется)\n Панель раскрывается в компактном режиме\n Слева в шапке находится toggle-button закрытия панели\n Справа в шапке toggle-button режима: Компактный/Расширенный\n В расширенном появляется дополнительная часть таблицы\n Данные для холодного раскрытия в structure.get( {id: 0, filter: filter } ): node - это родительский узел, items[] - дочерние. при { id : 0} - node считается Корневым узлом (#FFU)\n Схема и стилистика раскрытия дерева:\n Идентификатор узла любого уровня: node.id, items[].id\n Название узла любого уровня : node.title / items[].title\n Виджет прогресса (отдельным описанием ниже)\n Если items[].is_folder - рисуется toggle-button раскрытия узла и узел считается Раскрываемым\n Если узел Раскрываемый, при клике/тапе выполняется запрос structure.get({ id: id, filter: filter}) для получения следующей ветки дерева. Узел считается выбранным (selected_node) При этом в общий фильтр добавляется поле filter.node_id = selected_node.id и выполняется обновление task.list() с фильтром\n Если узел выбран, стиль узла снабжается по макету цветным ярлычком и фон дочерних элементов становится серым.\n При закрытии или повторном раскрытии выбранного узла обновления не происходит\n Расширенный режим:\n Данные для расширенного режима берутся из соответствующего узла объекта stats { cnt, success, failed, reported, late, metric } по порядку перечисления в соответствующих колонках\nВиджет прогресса в узле дерева:\n\n % = round({{stats.success}} / {{stats.cnt}})\n Общее кол-во в знаменателе : {{stats.cnt}}\n PROGREESS_WIDTH - общая ширина прогресс-бара\n прогресс-бар составляется из последовательных \"полосок\": \n зелёная: round( {{stats.success}} / {{stats.cnt}}) * PROGRESS_WIDTH\n жёлтая: round( {{stats.interaction}} / {{stats.cnt}} ) * PROGRESS_WIDTH\n красная: round( {{stats.failed}} / {{sats.cnt}} ) * PROGRESS_WIDTH \nСортировка:\nмодель filter.sort = { column: , ord: enum[ 'desc','asc'] }\nПо умолчанию выбранной колонкой сортировки является колонка Прогресс ( { column: 'progress', ord:'asc' } )\n\nФлоу: \n\n При тапе/клике на заголовок не выбранной колонки - таковая считается выбранной, с умолчанием ord:'asc' и подсвечивается соответствующим макету стилем (Колонка Прогресса не подсвечивается)\n При повторном тапе/клике на выбранную колонку режим переключается на противоположный\n Индикатор сортировки: \n asc: треугольник острием вверх\n desc: треугольник остриём вниз\n Первичная сортировка узлов выполняется локально на Клиенте, соответственно древесной структуре (т.е. сортируются элементы каждого уровня с сохранением иерархии)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202956908160780/1202956908160780", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1203267975655559", "actual_time_minutes" : null, "assignee" : { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-11-14T12:11:17.542Z", "created_at" : "2022-10-31T09:28:29.795Z", "due_at" : null, "due_on" : "2022-11-04", "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-11-14T12:11:17.966Z", "name" : "Верстка Оргструктуры (верхний бар)", "notes" : "design: https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=230%3A936\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160780", "name" : "Экран \"Задачи\" / Режим \"Оргструктура\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203267975655559/1203267975655559", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203267975655560", "actual_time_minutes" : null, "assignee" : { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-11-14T12:11:09.997Z", "created_at" : "2022-10-31T09:29:04.549Z", "due_at" : null, "due_on" : "2022-11-04", "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-11-14T12:11:10.917Z", "name" : "Верстка Оргструктуры (минифицированный вид)", "notes" : "design: https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=130%3A1538", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160780", "name" : "Экран \"Задачи\" / Режим \"Оргструктура\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203267975655560/1203267975655560", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203362613342937", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-11-15T07:35:35.452Z", "due_at" : null, "due_on" : "2022-11-25", "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-01T10:05:10.843Z", "name" : "Фикс оргструктуры", "notes" : " Открывать оргструктуру по умолчанию с первым раскрытым уровнем\n Разделить обслуживание клика по зонам - если на шеврон раскрытия-закрытия,  то оставить поведение только открытия-закрытия nested-списка, если кликаем на тело (название и остальное), то это уже приводит к выбору и раскрытию списка (если он не раскрыт), таким образом улучшится UX по работе с деревом.\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160780", "name" : "Экран \"Задачи\" / Режим \"Оргструктура\"", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203362613342937/1203362613342937", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202973106129844", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-14T04:58:50.264Z", "due_at" : null, "due_on" : "2022-11-28", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-21T03:16:52.140Z", "name" : "Экран \"Задачи\" / Режим \"Просмотр задачи\" / Основной фрейм", "notes" : "Макет / https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1 / Тиражи / Replication Opened / Details / Android / Desktop / Respond\n\nФлоу:\n При тапе/клике на элемент списка Задач выполняется открытие панели Просмотр Задачи с загрузкой контента из ticket.get( { id : selected_id } ) \n Выбранный элемент списка подсвечивается сообразно макету\n Повторный клик на выбранный элемент приводит к повтору запроса\n В заголовке задачи (см. макет) справа присутствуют стрелки листания по задачам:\n Листание идёт соответственно списку (с заявленным алгоритмом догрузки)\n Если упёрлись в один из лимитов - соответствующая стрелка помечается отключённой.\n\nБинды сверху вниз по визуалу макета:\nrem. Модель задачи аналогична модели из Списка за исключением массива комментариев comments. Поэтому первичный набор данных можно брать сразу из элемента.\n\n Заголовок задачи = Исполнитель см. https://app.asana.com/0/201687425733831/1202956908160779 / бинды\n \"Путь\" = {{assignee.path.text}} (см. раздел \"Раскрытие структурного пути Задачи\" ниже)\n {{title}}\n Слева: {{duedate}} в локали, Справа: progress виджет из https://app.asana.com/0/201687425733831/1202956908160779\n {{text}}\n Блок комментариев {{comments}} - отдельная задача\n\nРаскрытие структурного пути Задачи:\n{{assignee.path.chain}} содержит последовательный путь объектов узлов c id этих узлов. На данном этапе при клике должна выполниться серия structure.get({id: chain[i].id}}) по этому массиву в качестве решения по полному открытию нужного пути.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202973106129844/1202973106129844", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1203362613342935", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2022-12-01T10:04:54.833Z", "created_at" : "2022-11-14T12:23:25.991Z", "due_at" : null, "due_on" : "2022-11-25", "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-01T10:04:55.244Z", "name" : "UI Просмотра задачи. Описание задачи", "notes" : "https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=230%3A1571\n\nВ рамках данной задачи только требуется сверстать часть просмотра задачи без мессенджера (верхнюю половину).", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202973106129844", "name" : "Экран \"Задачи\" / Режим \"Просмотр задачи\" / Основной фрейм", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203362613342935/1203362613342935", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203407921039454", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-11-21T16:31:52.607Z", "due_at" : null, "due_on" : "2022-12-01", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-01T10:04:22.674Z", "name" : "Экран \"Задачи\" / Режим \"Просмотр задачи\" / Клик по открытию оргструктурного пути", "notes" : "\nПуть в ticket.get().path.chain[].\n\nФлоу:\n Если панель Оргструктуры была закрыта - открывается. \nДальше нужно последовательно пробежаться по массиву item in chain и отработать сценарий открытия каждого узла пути (structure.get(item.id, filter)\n\nP.S.\nПолный путь пока открывать выходит накладно с т.з. контролируемости времени исполнения эндпоинта. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203407921039454/1203407921039454", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203000636186673", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-20T09:56:07.000Z", "due_at" : null, "due_on" : "2022-12-16", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-16T06:46:58.065Z", "name" : "Экран \"Задачи\" / Принципы работы фильтров над компонентами экрана", "notes" : "Флоу при изменении состояний отображаемых фильтров экрана:\n Обновление ticket.list(filter)\n Запрос structure.stats(ids, filter)\n ids набирается из текущих открытых узлов структуры node.id и дочерних элементов\n С применением локальной настройки сортировки filter.sort\n stats отдаёт данные по колонкам статистик, которые необходимо обновить и после этого применить сортировку на клиенте\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203000636186673/1203000636186673", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202973106129848", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-14T05:01:04.102Z", "due_at" : null, "due_on" : "2022-12-09", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-08T19:00:20.223Z", "name" : "Экран \"Задачи\" / Галерея просмотра приложений", "notes" : "Макет : https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1 / Тиражи / Gallery\n\nФлоу: \n В списке задач виджет со списком тамбнейлов-аттачментов - активен для отдельного клика/тапа\n При клике/тапе выполняется сценарий \"Просмотр задачи\" - открывается соответствующая задача и включается модальный над контентной областью режим Галереи с соответствующим изображением\n Список аттачментов брать из полученной модели ticket.get(), т.к. она отдаёт несокращённый список\n В галерее тамбнейлов использовать для элемента attachments[].thumb_uri \n Для просмотра выбранного приложения уже использовать attachments[].uri\n В случае листания Задач режим остаётся включённым, перегенерируясь с аттачментов следующей Задачи\n Если аттачментов нет, то отображается состояние Gallery_Empty\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202973106129848/1202973106129848", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202982171933147", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-15T10:12:12.913Z", "due_at" : null, "due_on" : "2022-12-23", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-01-12T12:51:38.259Z", "name" : "Экран \"Задачи\" / Режим \"Просмотр задачи\" / Блок комментариев и действий", "notes" : "Макет / https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1 / Тиражи / Replication Opened / Details / Android / Desktop / Respond ( и дальше )\n\nБлок комментариев и блок действий - всё, что ниже Описания задачи ( {{ticket.get(id).text}} )\n\nЛейаут\n Поведенчески блок комментариев является продолжением описания задачи после линии отреза Заголовка (где Исполнитель с тулбаром), т.е. скроллируется вместе\n Блок действий - фиксированный футер, по которому отстраивается конец блока комментариев.\n Про блок с участниками (самая нижняя часть) будет отдельным Тикетом.\n\nКомментарии\nrem. \n Комментарии по задаче выдаются в составе модели ticket.get() в массиве comments, без необходимости догрузки.\n Комментарии отдаются и отображаются в хронологическом порядке\n Пользователю нужно показывать последние комментарии, поэтому список должен быть автоматически отскроллен до них.\n Комментарии имеют разные виды отображения в зависимости от состояния полей (см. ниже Визуализация и бинды)\n\n\nВизуализация и бинды:\nМнемоника и спека вполне однозначно укладывают бинды по данным, поэтому отображаю в первую очередь нюансы визуализации по типам.\n comments[].type == 'status'\n reasonId == 2 (Выполнено) - статус с зелёной кляксой и галочкой\n reasonId == 4 (Невыполнение) - статус с красной кляксой с восклицательным знаком\n comments[].type == 'report': В макете комментарий с жёлтым блоком \"Отчёт: Выполнено\" (Часть \"Выполнено\" берётся из comments[].text)\n comments[].type == 'text': Обычный текстовый комментарий\n У всех кроме type=='status\" могут быть приложения. \n Левый (чужой коммент) или правый (свой) баббл комментария определяется по author.is_me == true (мой) | false (чужой)\n\n\nДействия\nrem.\nНа данном этапе реализуем только действие \"Комментарий\" (узнаваемая иконка самолётика), остальные иконки - это расширение действий над задачей, которые будут реализованы в отдельном Тикете.\n\nФлоу:\n При пустом поле ввода текста кнопка отправки комментария блокируется\n Файловые приложения грузятся через heado_core.fileCreate()/upload (см. пример размещения аттачей и прогресса в Создании Задачи)\n На данном этапе до загрузки всех приложений кнопка отправки блокируется даже при набранном тексте\n При выполнении всех условий разрешения отправки и тапе/клику на кнопку отправки выполняется метод ticket.action(ticketsId, actionId =0, text = '', attachments =[], params = []) https://m.heado.ru/internal-papi-v3.0-reference.html#ticket_action\n После выполнения происходит обновление данных в комментариях соответствии с возвратом метода ticket.action()[]\n\n#UPD.1\nРешено было привести добавление комментария к Действиям над Задачей,\nсоответственно ticket.comment.add() >> ticket.action()\nДля комментария actionId = 0\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202982171933147/1202982171933147", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202982171933148", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-15T10:12:32.398Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : true, "hearts" : [ { "gid" : "1203770241501897", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "liked" : true, "likes" : [ { "gid" : "1203770241501897", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "memberships" : [ ], "modified_at" : "2023-01-18T05:13:30.649Z", "name" : "Экран \"Задачи\" / Режим \"Просмотр задачи\" / Действия над задачей", "notes" : "Макет / https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1 / Тиражи / Replication Opened / Details / Android / Desktop / Respond ( и дальше )\n\nВ модели https://m.heado.ru/internal-papi-v3.0-reference.html#ticket_get\nприходит массив действий actions. Это список кнопок, расширяющий виджет отправки сообщения (вставляются последовательно после иконки самолётика). \n\nНа данном этапе actions[].id необходимо захардкодить по локальным иконкам (API иконок в модели сейчас не отдаёт):\n0 - Комментировать (На данном этапе хардкоднуто в https://app.asana.com/0/201687425733831/1202982171933147) (иконка самолётика)\n1 - Отчитаться (иконка планшетки)\n25 - Отклонить (иконка крестика)\n50 - Принять (иконка чекбокса)\n\nЭндпоинт API для действия:\n https://m.heado.ru/internal-papi-v3.0-reference.html#ticket_action\nМаппинг там без нюансов.\nВозвращает модель сообщения.\n\n\n\n", "num_hearts" : 1, "num_likes" : 1, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202982171933148/1202982171933148", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203488799561877", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-05T11:17:29.226Z", "due_at" : null, "due_on" : "2022-12-21", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-20T19:00:15.894Z", "name" : "Профиль Пользователя", "notes" : "Нужно его подключить as is из Аналитики с учётом цветовых решений. С аватаркой текущего Пользователя в тулбаре (там у Ирины есть внизу рефы в разделе Профиль, в принципе)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203488799561877/1203488799561877", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202956908160781", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-12T05:24:05.444Z", "due_at" : null, "due_on" : "2022-12-30", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-01-09T08:47:24.832Z", "name" : "Экран \"Задачи\" / Режим \"Постановка задачи\" / Общая форма", "notes" : "Раздел \"Постановка задачи\"\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1&t=P50I7uwnKgsfX5II-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203564847870566\n\n\n\nФлоу выхода в режим:\n При нажатии на \"+\" в экшнбаре открывается панель с формой справа \n Если были открыты какие-либо панели - состояние в бэкстэк\n\nЭлементы формы, внутренние идентификаторы, валидация:\n Наполнение элементов форм из filters(screen = 'task:create') см https://app.asana.com/0/201687425733831/1202956908160778\n category - селектор \"Выберите категорию\" (Попап Category)\n repeat - селектор \"Повторять задачу\" (Попап Repeat)\n Исполнители - в отдельной задаче https://app.asana.com/0/201687425733831/1203564910797737\n \"Введите название задачи\" (title): max(200)\n \"Выберите категорию\" (category) : См п 1.1.\n \"Повторять задачу\" (repeat): См п. 1.2.\n \"Начало задачи\" (startdate): Дейтпикер\n \"Завершение задачи\" (duedate): В случае repeat == \"Не повторять\" (1) - дейтпикер, иначе таймпикер\n \"Теги\" сейчас присутствуют в дизайне, больше не нужны\n \"Подробное описание задачи\" (description): max(2000)\n Аттачменты (attachments) по схеме heado_core.fileCreate / upload\n\nОбщий лейаут:\n Портянка полей с 2 до 9 в скролл-блоке\n Кнопка \"Создать\" не участвует в скролле, фиксирована снизу\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202956908160781/1202956908160781", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1203560908580497", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-16T06:51:27.069Z", "due_at" : null, "due_on" : "2022-12-23", "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-12-22T19:00:19.525Z", "name" : "Сделать стэк для правого sidebar", "notes" : "Обернуть правый sidebar в свой навигатор, и сделать там навигацию для хранения собственного стэка.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160781", "name" : "Экран \"Задачи\" / Режим \"Постановка задачи\" / Общая форма", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203560908580497/1203560908580497", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203564910797737", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-16T06:41:47.427Z", "due_at" : null, "due_on" : "2023-01-23", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-21T03:17:24.983Z", "name" : "Экран \"Задачи\" / Режим \"Постановка задачи\" / Исполнители", "notes" : "Макет https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1&t=P50I7uwnKgsfX5II-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203564847870568\n\n\n\"Браузер сотрудников\"\n\nОбщий флоу.\n При клике на поле \"Исполнители\" открывается попап \"Браузер сотрудников\" в исходном состоянии\n \"Попап\" тут как обозначение типа визуализации, как лучше реализовать данный интерфейс в виду его сложности - на ваше усмотрение.\n В шапке чипсы - переключатель основных разделов поиска.\n Их сейчас четыре (Сотрудники (employees), Роли (roles), Зоны (zones), Города (cities)\n Каждый режим обслуживается запросом к эндпоинту https://m.heado.ru/internal-papi-v3.0-reference.html#staff_finder\n Исходное состояние - раздел \"Сотрудники\" без выбранных Исполнителей (см. как организован фрейм \"Roles\" без них )\n Результат запроса staff.finder(type = 'employees') выводится в соответствующий блок.\n При переключении раздела, соответственно, выполняется запрос staff.finder(type = Идентификатор выбранного режима )\n\nФлоу отбора сотрудника (исполнителя):\n При выборе элемента из любого раздела, локально наполняем массив selector (см в спеку эндпоинта) соответствующим [ type: selected_mode, id : selected_item ] кортежем.\n После этого делаем запрос staff.finder(type = 'result', selector = selector), который вернёт спеку как в режиме employees, массив которых отображается в виде наполняемых аватарок. Пакуем полученные items[] в массив (рабочее название assignees)\n Сервис выдаёт не более 100 первых найденных сотрудников.\n Нужен механизм визуального ограничения списка аватарок как показано в макете\n При нажатии \"Принять\" отображаем в основной форме список аватарок по принципу в п.2.2.\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203564910797737/1203564910797737", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203564847870565", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-16T06:22:56.178Z", "due_at" : null, "due_on" : "2023-02-01", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-02-01T16:27:27.737Z", "name" : "Экран \"Задачи\" / Режим \"Постановка задачи\" / Создание постановки задачи", "notes" : "Раздел \"Постановка задачи\"\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0%3A1&t=P50I7uwnKgsfX5II-0\n\nФлоу создания:\n После нажатия кнопки \"Создать\" выполняется запрос https://m.heado.ru/internal-papi-v3.0-reference.html#taskman_add\n При успешном ответе отображается снэкбар (фрейм Snackbar & Taskman List https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=2000%3A1044&t=jXByug6DsB5UpH8J-0) и экран переходит в состояние открытой панели https://app.asana.com/0/201687425733831/1203670729250831\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203670729250832\n\n\nТекст возвращаемой ошибки отображается в снэкбаре (фрейм Snackbar_Error)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203564847870565/1203564847870565", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203670729250831", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-01-10T07:29:00.027Z", "due_at" : null, "due_on" : "2023-02-10", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-02-11T06:01:25.338Z", "name" : "Экран \"Задачи\" / Режим \"Управление постановками\"", "notes" : "Раздел \"Постановка задачи\"\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=2000%3A1044&t=jXByug6DsB5UpH8J-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203670729250834\n\nФрейм Snackbar & Taskman List\n\n Запрос https://m.heado.ru/internal-papi-v3.0-reference.html#taskman_list\n Ответственный - manager\n Название по идентификатору category получать из списка filters(screen=\"task:create\").category\n Следуюшая постановка - nextdate + date(startdate) == date(duedate) ? time(duedate) (Только время) : date(nextdate).modify( '+' + date(duedate).toDays() - date(startdate).toDays() + ' days') (Дата время)\n Исполнители - из первых 5-и assignees \n Иконки запущено/остановлено по status\n Панель \"Управление постановками\" должна быть доступна через правое меню\n Догрузка списка стандартная по filter['limit'] и total_count\n При нажатии на общее пространство элемента - переход в https://app.asana.com/0/201687425733831/1203686468297655\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203670729250831/1203670729250831", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203686468297655", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-01-10T08:07:31.775Z", "due_at" : null, "due_on" : "2023-02-24", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-03-20T06:24:11.180Z", "name" : "Экран \"Задачи\" / Режим \"Редактирование постановки\"", "notes" : "Раздел \"Постановка задач\"\nМакет https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=2000%3A1498&t=jXByug6DsB5UpH8J-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203686468297656\n\nфрейм Edit Taskman\n\nФлоу:\n Запрос https://m.heado.ru/internal-papi-v3.0-reference.html#taskman_get\n Следующий запуск (status == 1) - nextdate\n Исполнители на основном экране берутся из .assignees - с ограничением списка\n Для staff.finder() - из .assignees_selector\n Статус определяет индикацию и набор кнопок\n status == 0 : Остановлено, Доступны кнопки \"Удалить\" и \"Запустить\"\n status == 1 : Запущено, Доступны кнопки \"Удалить\", \"Остановить\", \"Обновить\"\n status == 2 : Удаление, Нет доступных кнопок (пока)\n Действие \"Удалить\": \n Отображается модальный диалог подтверждения \"Уверенны, что хотите удалить эту постановку?\"\n https://m.heado.ru/internal-papi-v3.0-reference.html#taskman_delete\n Переход в состояние \"Управление постановками\" + снэкбар об успешной постановке на удаление\n Действие \"Обновить\" и \"Запустить\":\n https://m.heado.ru/internal-papi-v3.0-reference.html#taskman_update \n Переходим в состояние \"Управление постановками\" + снэкбар об успешном обновлении\n Действие \"Остановить\":\n https://m.heado.ru/internal-papi-v3.0-reference.html#taskman_stop\n Переходим в состояние \"Управление постановками\" + снэкбар об успешной остановке\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203686468297655/1203686468297655", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203611908855002", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-12-26T09:56:03.083Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-01-12T12:51:32.558Z", "name" : "Ограниченная поддержка HTML-тегов форматирования в текстовых данных", "notes" : "Речь идёт о Названии/Описании Задачи и тексте комментариев. \nНабор поддерживаемых тегов:\n, ,, ,
,
\n\nОстальные нужно посильно вычищать. \n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203611908855002/1203611908855002", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202973106129843", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-14T04:58:23.062Z", "due_at" : null, "due_on" : "2023-02-03", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-21T03:17:41.568Z", "name" : "Экран \"Сообщения\" / Контакты", "notes" : "Макет:\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=230%3A4343&t=bT0XiilgaxCFpFEh-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203820338057718\n\n\nФлоу:\n При открытии запрашиваем список контактов https://m.heado.ru/internal-papi-v3.0-reference.html#im_contacts\n С сервера оно приходит отсортированным уже по нужном порядку (свежести)\n Желательно сохранять позицию скролла при повторном открытии\n Вертикальный скроллер при переполнении\n Маппинги в моделях практически все мнемонические, так что если что-то непонятно - пишите в слак\n Если new_msg_count == 0, то каунтер не отображается\n Поиск пока осуществляется по полученному списку контактов локально\n\n\nP.S.\nСписок так же будет обновляться по сигналу с вебсокетной части (отдельная задача)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202973106129843/1202973106129843", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1203892483952257", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-02-03T12:10:14.659Z", "due_at" : null, "due_on" : "2023-02-10", "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-02-11T06:01:28.624Z", "name" : "Сделать дозагрузку контактов", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202973106129843", "name" : "Экран \"Сообщения\" / Контакты", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203892483952257/1203892483952257", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202973106129845", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-09-14T04:59:51.990Z", "due_at" : null, "due_on" : "2023-02-10", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-17T10:29:32.632Z", "name" : "Экран \"Сообщения\" / Просмотр Чата", "notes" : "Макет:\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=230%3A4343&t=EG7y1UUTi5yaCQFo-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1203890124977383\n\n\nФлоу:\n При открытии мессенджера:\n Если нет выбранных ранее чатов - открываем первый чат из списка\n Если Пользователь выбирает другой чат - запоминаем выбранный и открываем\n Получение сообщений чата: https://m.heado.ru/internal-papi-v3.0-reference.html#im_chat_getMessages \n Эндпоинт универсален для получения сообщений диалогов, каналов, групп (FFU) и задач (FFU)\n Список выдается в порядке убывания свежести сообщений. \n Необходимо кэшировать (сохранять) список сообщений\n Соответственно, нужно реализовать алгоритм слияния сохраненного списка и полученных с сервера сообщений.\n Предлагаю схему последовательного сравнения по идентификаторам: Бежим по списку полученных сообщений, пока идентификатор полученного сообщения не совпадет с идентификатором последнего сохраненного - добавляем снизу. \n Если не совпало ни одно, то сохраненные сообщения предлагаю сбрасывать\n Сохраняем дополненный список с учётом ограничений. Предлагаю выставить на данном этапе не более 200 сообщений на чат. \n Догрузка сообщений по схеме открытого горизонта: сдвигаем offset на кол-во limit(по умолчанию 50) и пока приходит непустой список - грузим.\n Отличие чужой-свой бабл по author.id == profile().user.id\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202973106129845/1202973106129845", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203902113587579", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-02-06T07:07:53.922Z", "due_at" : null, "due_on" : "2023-02-17", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-03-29T05:55:45.013Z", "name" : "Подсистема сообщения / Спека вебсокетов", "notes" : "сокет-сервер: wss://partner.heado.ru/ws/\n\nОбщая спека запроса (JSON): {\n id: , //Сквозной идентификатор запроса для асинхроннной работы коллбэка на всякий случай\n uid: , // Идентификатор Пользователя \n action: ,//Команда\n params: , // Параметры команды, содержимое варьируется в зависимости от команды,\n secret: , sha1(id+uid+action+server_secret) - server_secret = 786b992c7a88216ce5da5b36e8238d49\n }\n\nСпека идентификаторов интерфейсов, используемых в сносках методов:\nenum [ \n \"contacts\" - контакты\n \"channel\" - каналы\n \"chat\" - чаты\n \"ticket.view\" - просмотр задачи\n \"ticket.list\" - список задач\n \"kpi.summary\" - показатели (FFU)\n \"kpi.detailed\" - детальный экран показателей (FFU)\n]\n\nОбщая спека ответа: {\n id: , // Идентификатор запроса, на который следует ответа\n status: //Статус\n Если status == \"error\": err: { id: , text: }\n}\n\nСписок номеров ошибок по протоколу этого уровня:\n 400 : Bad request\n 403 : No access to item/command\n 404 : Item not found\n 500 : Server error\n\n\nМетоды \nregister // Регистрация клиента\n IN: params: []\n OUT: status: ok \n\nsubscribe //Событие подписки \n IN: params: ids [ uid1,...,uidN ]  \n OUT:status: ok ,  user_statuses: { uid1: ,...,uidN: } \n\nunsubscribe //Событие отписки \n IN: params. { ids : [ uid1,...,uidN ] } \n OUT: status: ok\n\n checkmessage // Событие принятия сообщений\n IN:params:[msgId1,...,msgIdN]\n OUT: status: ok\n\nwrite //Событие набора текста\n Шлём params.event=\"start\" при начале печати в инпуте сообщения чата/канала/тикета\n Шлём params.event=\"stop\" по истечении 1000мс последнего напечатанного символа \nIN: params: {\"id\": ,\"event\":}\nOUT: status: ok\n\n<#UPD.1>\ngotmessage // Событие доставки сообщения\nIN: params[msgId1,...,msgIdN]\nOUT: status: ok\n\n\n\nСпека сигналов, поступающих от WSS:\n { \n otype:,  //Тип объекта сигнала\n oid: ,  // Идентификатор объекта сигнала, interface : chat, channel, group, ticket\n action: , //Действие объекта сигнала\n }\n\nUSER STATUS : { otype: \"user\", oid: , action: }\n\nMESSAGE STATUS : { otype: \"message\", oid: , action: }\n\nINTERFACE UPDATE: { otype:\"interface\", oid: @interface , action: } \n Если находимся на нужном экране - запускаем обновление данных на этом экране\n\nUSER START STOP WRITING:\n {otype:\"user\", oid:userId, action: \"write/start\", \"params\": { \"id\": ,\"userName\":} }\n {otype:\"user\", oid:userId, action: \"write/stop\", \"params\": { \"id\": ,\"userName\":} }\n\nMESSAGE SENT by someone in chat/channel/ticket\n { otype:\"message\", oid:, action:\"sent\", params: { uid: , zoneType: 21, zoneId : } }\n <#UPD.1>Если находимся на экране соответствующего диалога - запускаем запрос получения сообщений. Здесь можно добавить фильтр 500мс для повторных сигналов.\n Если вне экрана, то увеличиваем общий каунтер новых сообщений и каунтер на соответствующем контакте (без обновлений)\n Обновляем соответствующий контакт по идентификатору диалога\n Если зашли на экран диалога с ненулевым каунтером новых сообщений - обновляемся в любом случае (на случай присутствия таймаутов повторения запроса) \n\n\nINTERFACE UPDATE: { otype:\"interface\", oid: <@interface >, action: } \n Example #1. contacts() update:\n { \"otype\":\"interface\",\"oid\": @interface ,\"action\":\"update\" }\n\nФлоу на уровне мобильного приложения\n При старте приложения: Соединяемся с WS, шлём register, шлём subscribe на контакт лист, где id ! = Текущий пользователь\n При получении данных о статусе пользователя обновляем соответствующий кружок online/offline в контакт-листе и производных элементах\n USER START STOP WRITING: В стиле слэка\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203902113587579/1203902113587579", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204002350935582", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-02-20T06:21:04.113Z", "due_at" : null, "due_on" : "2023-03-24", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-03-23T19:00:44.896Z", "name" : "Подсистема сообщений / Печать и отправка сообщения", "notes" : "Макет: https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=230%3A4343&t=FBdBww0oRtteewHs-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204002350935583\n\n\nПрим. : Модель сообщения дополнилась полем status (см. спеку) для всех содержащих эндпоинтов.\n\nФлоу:\n При печати/остановке печати реализовать отправку сигналов посредством соответствующего WebSocket-ного транспорта (https://app.asana.com/0/201687425733831/1203902113587579)\n Сигнал начала печати слать после первого изменения текстового поля\n Сигнал конца печати слать после ожидания 1500мс отсутствия изменения текстового поля.\n Отправка только непустого сообщения (текст или аттачмент)\n Ограничение длины сообщения: 4кб\n Эндпоинт https://m.heado.ru/internal-papi-v3.0-reference.html#im_chat_action (look and behavior alike ticket.action)\n Пока реализуем только actionId = 0 (Комментарий). Кодификация действий будет отдельная (replies, inline-form действия e.t.c)\n Добавление сообщения по схеме приоритета реакции интерфейса до API:\n Добавлять локально бабл сообщения с текстом/приложениями\n Выполнять запрос к API (https://app.asana.com/0/698025068994503/list должна разъяснить какое поведение/доп.индикацию на промежуточном статусе отправки использовать)\n Отправляется\n Отправлено\n Ошибка отправления (+повтор действия)\n Получено\n Просмотрено\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204002350935582/1204002350935582", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204002488878935", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-02-20T06:53:56.190Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-07T07:25:59.419Z", "name" : "Подсистема сообщений / Приём сообщений", "notes" : "Существует две стадии принятия сообщений:\n Когда клиент получил команду о новом сообщении через WebSocket-транспорт (https://app.asana.com/0/201687425733831/1204002350935582 ) (Перевод в статус \"Получено\")\n Когда Пользователь открыл чат с сообщениями (Перевод в статус \"Прочитано\")\n\nФлоу перевода в статус \"Получено\":\n При получении клиентом сигнала (MESSAGE SENT by someone in chat/channel/ticket) о новых сообщениях в чате через WS клиент, клиент возвращает gotmessage( [ message.id ])\n Обновляет содержание панели контактов (последние сообщения)\n Если идентификатор открытого чата соответствует params.zoneId - обновляет этот чат, загружая новые сообщения:\n Если мессенджер не активен - увеличивать каунтер сообщений на иконке мессенджера.\n\nФлоу перевода в статус \"Прочитано\":\n При обновлении чата:\n Еесли попавшие во вьюпорт (отрисовываемые) чужие сообщения со статусом < SEEN (20), отправлять их идентификаторы через WS: chkmessage([msgId1,...msgIdN]) \n Уменьшаем каунтер непрочитанных в контактах на данном чате\n Уменьшать общий каунтер непрочитанных на рейле\n Если общий каунтер <=0 - снимать каунтеры на рейле\n Если в загруженных, но неотрисованных сообщениях есть непрочитанные - показывать флоатбар о присутствии непрочитанных сообщений.\n\nФлоу загрузки новых сообщений и навигации:\n Загрузка сообщений должна быть прозрачной с т.з. интерфейса:\n Если Пользовательский скролл чата в нижней позиции (самое свежее), то загружаем пакет последних сообщений по основному алгоритму и дополняем список с прогрессом позиции скролла \"вниз\"\n При клике на флоатбар переходим на самое верхнее непрочитанное сообщение (здесь, получается, нужно делать предварительную отрисовку в оффскрине )\n Если последнее сообщение в пакете/догрузке не было прочитанным - снова рисуем верхний флоатбар\n Если Пользователь отскролил назад, то догружаем сообщения по п.2. с сохранением текущей позиции скролла и отображаем флоатбар \"Есть новые сообщения\" внизу списка.\n При клике на флоатбар убираем его и переходим вниз (самые свежие сообщения) \n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204002488878935/1204002488878935", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1202982171933139", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-09-15T10:10:34.604Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2022-09-15T10:10:42.276Z", "name" : "Экран \"Сообщения\" / Добавление чата", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1202956908160776", "name" : "БК / Разворачивание MVP веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1202982171933139/1202982171933139", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204141833183989", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-03-09T04:17:24.088Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-03-09T04:25:12.470Z", "name" : "БК / Нотификации / ЖЦ клиентских токенов", "notes" : "Соответствующие эндпоинты:\n Добавление: https://m.heado.ru/internal-papi-v3.0-reference.html#fcmRegister\n Удаление: https://m.heado.ru/internal-papi-v3.0-reference.html#fcmRemove\n\nОбщий флоу.\nПолучение из файрбейза и регистрация токена в бэке c помощью fcm.register() происходит непосредственно после логина Пользователя.\n\nУдаление токена с помощью fcm.remove() происходит при логауте аккаунта.\n\nНа service пока не обращать внимания - это уплотнение для китайских и наших клонов FCM.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204141833183989", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203179433945936", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2022-10-18T12:18:14.214Z", "due_at" : null, "due_on" : "2022-11-07", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-11-06T22:04:19.819Z", "name" : "Перевод ссылки \"забыли пароль\" на доменную схему", "notes" : "В модели доменов по запросу domain.profile теперь возвращается ссылка forgotpass_link (https://m.heado.ru/internal-papi-dmz-reference.html#domain_profile), на неё нужно перевести хардкоднутую актуальную ссылку из форм авторизации", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203179433945936", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203419984904498", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2022-11-24T04:37:28.376Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2022-12-07T04:52:35.540Z", "name" : "Аналитика / Экспорт в *.xls", "notes" : " В меню на главной добавляется новый пункт \"Экспорт в *.xls\"\n При вызове - попап с предложением ввести e-mail (по у молчанию e-mail из profile() )\n Кнопки \"Отправить\" и \"Отменить\"\n При нажатии на \"Отправить\" выполняется API.v3.0.exportData( id = 59 , type = xls, filters= filters)\n При \"Отменить\" стандартом возвращаемся в исходный экран\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203419984904498", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203794786534429", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-01-24T09:04:19.866Z", "due_at" : null, "due_on" : "2023-01-30", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-01-29T23:09:41.570Z", "name" : "Аналитика / Рабочие группы / Поделиться ссылкой регистрации", "notes" : "В датасет модели участника группы добавлено поле activation_link: string (nullable)\nMVP:\n На экране просмотра участника группы добавить пункт меню \"Отправить ссылку регистрации (Send registration link)\" \n В списке лучше через https://app.asana.com/0/698025068994503/list порешать как сделать, как минимум в backpressure её. \n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203794786534429", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203412120655670", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2022-11-24T09:13:55.799Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-17T13:21:52.459Z", "name" : "Техдолг", "notes" : "Для проекта bc_flutter", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1203412120655670", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1203412120655675", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2022-11-24T09:14:07.426Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-01-19T13:17:05.749Z", "name" : "Отмена загрузки тикета", "notes" : "ticket_info_bloc\nрешить проблему, что может запустится сразу несколько евентов загрузки тикета", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1203412120655670", "name" : "Техдолг", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203412120655675/1203412120655675", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1203770304267614", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-01-19T13:16:15.685Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-01-19T13:16:53.568Z", "name" : "Вынести логику просмотра тикета из SidebarBloc в отдельный", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1203412120655670", "name" : "Техдолг", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1203770304267614/1203770304267614", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204116072414171", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-06T09:10:08.394Z", "due_at" : null, "due_on" : "2023-03-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-03-17T05:30:16.411Z", "name" : "Аналитика / Избранное в фильтрах", "notes" : "Вводная:\nДля длинносписочных фильтров (loadable) <#UPD.2>фильтров с включенной строкой поиска нужно реализовать схему добавления в \"избранное\". \nИзбранное - это приоритетный статичный список вверху фильтра, который хранится локально. \n\nМакет. \nТам есть макет с попапом, но Ирина предлагает делать такое уже на полный экран\nhttps://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Flutter?node-id=5500%3A2517&t=h75nqfCzVxcy8DkK-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204116072414173\n\n\n\nФлоу:\n Любой пункт из списка можно свайпнуть влево:\n Если это стандартный пункт списка, то работает действие \"добавить в избранное\" \n Если это пункт из списка избранного, работает действие \"удалить из избранного\" \n Действие \"Добавить в избранное\":\n Пункт добавляется в локальное хранилище избранного по выбранному фильтру\n <#UPD.1>Нормальное поведение - элемент удаляется из основного списка и добавляется в блок избранного Я бы ограничился транзишоном подкраски цветом Избранного в моменте свайпа, но при этом пункт остаётся на месте, фиг же знает, насколько долбанутый клиент и как далеко отскроллился. \n Действие \"Удалить из избранного\":\n Тут проще - сразу удаляем пункт из избранного как визуально, так и из хранения.\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204116072414171", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204257657438961", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-24T08:54:53.866Z", "due_at" : null, "due_on" : "2023-03-30", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-03-29T23:08:00.195Z", "name" : "Аналитика / Веб / Парсинг access_key из параметров", "notes" : "В виду того, что ключи мы передаём во внешку с микроформатом вида domain!posid:key, и начинают активно интегрировать вебфрейм - есть потребность в том, чтобы параметр domain так же мог определяться через access_key.\nСхема простая - explode access_key по '!', первая часть - и есть domain.\nПриоритет ниже, чем у прямого параметра domain из GET", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204257657438961", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204267728932394", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-07-17T13:21:14.967Z", "created_at" : "2023-03-27T05:08:14.853Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-01T09:56:54.104Z", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204267728932394", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204267728932396", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-27T05:08:35.051Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-21T11:02:33.941Z", "name" : "Правки по базовым названиям ", "notes" : "BC flutter \n Business Communicator (английская) \n Бизнес-коммуникатор (русская)\n\nСписок задач / Колонка \"Время\" >> \"Выполнить до\"\nСоздание новой задачи / Поле \"Завершение задачи\" >> \"Выполнить до\"\n\n#UPD.1.-\n\"A new flutter project\" в описании >> \"Ассистент для управления в ритейле\"\n\n#UPD.2.\nВ сплэше \"Бизнес-коммуникатор\" поменять на \"Управление торговлей\"", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267728932394", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204267728932396/1204267728932396", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204267732581705", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-28T04:33:42.659Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-13T12:36:48.832Z", "name" : "Пакет №1 / Веб", "notes" : "Тест проводится на вебной части https://test.bc.heado.ru/\nБраузер: Chrome, \nОС: Windows 10.\nУчётка demopartner@giftoman.ru / Pumuc7zadoz\nСкрины в последовательности перечисления пунктов.\n\n Фон подсветки при наведении в наврейле не соответствует позиции элемента и отрисовке в макете\n При выборе конкретной задачи из списка не видно подсветки выбранного элемента\n Статус \"Провалено\" в Списке с красным прогрессом, в просмотре - серый. Это сервер что-то не то вернул?\n Просмотр Задачи / Отступ от нижнего края комментария не соответствует макету\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267728932394", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204267732581705/1204267732581705", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204305783945251", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-31T05:38:39.465Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-07T07:25:49.953Z", "name" : "Веб / Задачи / Режим \"По тиражам\" / Не происходит догрузка при скролле", "notes" : "https://test.bc.heado.ru/#/tasks?right_sidebar=hide\ndemoparter@giftoman.ru\nВсё по дефолту. \nСкроллю до конца, вижу крутилку догрузки внизу, но запроса к следующей пачке тиражей не вижу - либо крутилка лишняя, либо дозагрузка не работает, скорее второе.\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267728932394", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204305783945251/1204305783945251", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204329022085590", "actual_time_minutes" : null, "assignee" : { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-04-04T08:34:53.497Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-21T12:33:12.909Z", "name" : "Пакет по дизайну БК MVP", "notes" : "\nФоны на списке задач:\n1.  Фоновый цвет F2F2F2, цвет плашки пути оргструктуры должен быть белым FFFFFF (где Наталья Георгиевна) - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329022085591\n\n\n2.       Цвет фона чипа должен быть E2E2E2 (в реализации он темнее) - done\n3.       Цвет линии инпута поисковой строки должен быть BDBDBD - done\n4.       Просьба заменить тайтл «Время» на «Выполнить до» и убрать иконку - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329022085593\n\n\n5.       Фон диалога фильтров должен быть белый FFFFFF - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329022085595\n\n\n   \nЭкран Задачи\n1.       Шрифт в таблице Roboto Condenced (сжатый) - done\n2.       Если в пункте списка запланировано 2 строки, но в части колонок заполнена только одна строка, следует выравниваеть первую строку по верхнему краю текстовой области, чтобы первые строки все стояли на одной линии. Даже если второй строки нет. - прям такого решение предложить не смогу наверное. Могу предложить весь текст начинать сверху, а не по центру. Так первая строка везде будет на одном уровне\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329022085597\n\n\n3.       Вертикальный отступ от границы столбца до текста должен быть не менее 16дп, даже если граница физически не проведена (нет дивайдера) - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329022085599\n\n\n4.       Тоггл «по тиражам» размер: 34х20, вид иконки такой (как в макете): - done (то есть использовать тоггл из материал2, точно ли так надо сделать?)\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725031\n\n\n \n5.       Открыты 3 панели внутри тиража:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725033\n\n\n- Панель деталей задачи перекрывает шевроны перехода - done теперь нельзя открыть сразу и то и то\n \n6.       Открыты 3 панели в списке тиражей:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725035\n\n\n- Столбец «Название» в таком случае лучше совсем убрать. Может быть сделать ограничение на предельное уменьшение окна? - done теперь нельзя открыть сразу и то и то\nВ макете при развесовке панелей  с меньшим сокращением оргструктуры все выглядело не так скомкано, возможно за счет исключения некоторых столбцов таблицы\n Макет↓ - done реализовано скрытие столбцов при меньшей доступной ширины\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725037\n\n7.       Тоггл «по тиражам» предлагаю выравнивать с верхней сторокой чипов. Иконки тоже собрать на одной линии по нижней границе. - done\n \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725039\n\n8.       «Узел», «прогресс», «Исполнитель», «Ответственный», «Время», «Результат» - текст одного порядка по размеру. Кегль12. - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725041\n\n \n9.       Если последовательно выбирать задачи из списка, панель деталей наслаивается одна на другую. Если пользователь смотрел 15 задач, они открываются послойно. И чтобы закрыть панель детальной информации задачи, нужно нажать на крестик 15 раз. Или столько, сколько тикетов было открыто. Считаю, что это неудобно. - done\n\n10.   В выбранном тираже выбранная задача никак не подсвечивается в списке, подсвечивается только тираж. Выбранная задача тоже должна подсвечиваться белым FFFFFF. - done\nРеализация\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725043\n\n \nМакет\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725045\n\n\n11.   При перелистывании тикетов через панель деталей (стрелками) необходимо подсвечивать каждый тикет, то есть подсветка тоже должна перемещаться, указывая на выбранный в данный момент тикет для просмотра деталей. - done\n \n \nПрофиль:\n \n Следует разрядить данные аккаунта (email, домен, телефон), увеличить паддинги между строчками (минимум 16 дп)\n2. Убрать дивайдеры, разделяющие строки разделов (внизу «Добавить пользователя», «Рабочие группы», «Рабочее время», «Выход»). Нужны только дивайдеры, разделяющие блоки.\n3. Фон попапа белый FFFFFF\n4. Иконка «Добавить пользователя» не соответствует макету.\n\nНастройки аккаунта:\n- Должна быть кнопка «Отмена» или подтверждающий диалог, о том, что изменения не сохранены, если просто возвращаемся назад.\n\n\nОргструктура\n1.       Панель оргструктуры должна быть белого цвета FFFFFF - done\n2.       Фоновым серым (F2F2F2) должна подсвечиваться только раскрытая ветка. - done\n3.       Боковые серые вертикальные полоски на узле оргструктуры должны появляться при раскрытии определенной ветки и визуализировать ее. - done\n  \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725047\n\n\n4.       Слева отсутствует иконка – шеврон раскрытия ветки. - done\n5.       Развернутая панель оргструктуры «режет» панель списка задач не хорошо. Пропадает статус задачи, при том, что наименование узла имеет довольно щедрое пространство.\nВозможно, для такой узкой панели списка задач стоит убрать какие-то колонки, а жизненно-важные выводить всегда полностью. - оргструктура теперь занимает минимально возможное место для себя\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725049\n\n\n6.       БАГ! Была открыта панель оргструктуры развернуто, сам список задач и нажимаем новую постановку, экран «ломается» - done\n \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725051\n\n\n\n \n7.       БАГ: Если выключить тоггл «по тиражам», а потом нажать на иконку задач на реиле, список задач снова становится по тиражам, а тоггл при этом находится в режиме «выкл». - done\n\n\nПостановка задач\n1.       Инпут ввода названия задачи – красный бордер. Должен быть серый BDBDBD.\nПо наведению становится белым. Стоит заменить на оранжевый FFA000 или черный. Активный вообще становится красным – цветом ошибки. - done\n     \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725053\n\n2.       Попап добавления сотрудников: лишние бордеры у filled chips и filled button. - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725055\n\n\n3.       Цвет бордера инпута поиска BDBDBD - done\n4.       Цвет иконок и бордер чекбокс 606060 - done\n5.       Фоновый цвет – белый - done\n6.       Тени под нижней плашкой с кнопками и верхней заголовочно появляются только при скролле. - done\n7.       Выбранный чекбокс должен быть на оранжевом фоне (FFA000) белая галочка. - done\n\nУправление постановками\n\n1.  При редактировании постановки фон панели должен меняться на F6F0E9 - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725057\n\n\n2. Начало задачи (дейтпикер): фон справа на белый FFFFFF - done, цвет кнопок 444444 - done, выравнивание по нижней границе «начало периода» - «март» - Используем встроенный инструмент, нет возможности изменить отступ\nИконку «переключиться на ручной ввод» отодвинуть от края из расчета 8 дп от скругления. - Используем встроенный инструмент, нет возможности изменить отступ\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725059\n\n\n3. Фон таймпикера лучше заменить на белый FFFFFF - done\n4. Радиус скруглений панелей тайм и дейтпикера должен совпадать - done\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725061\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267728932394", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204329022085590/1204329022085590", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204329025725064", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-04T08:39:36.403Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-05T17:09:46.276Z", "name" : "Пакет по дизайну Рабочие группы / Рабочее время", "notes" : "https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=0-1\nРабочие группы:\n1.       Фон поп-апа должен быть белым FFFFFF (Surface, для темной схемы Surface\n#1D1B16)\n2.       Лишний светлый дивайдер в заголовочном блоке\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725068\n\n\n3.       В макете Добавление участника вынесено из тайтла\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725070\n\n\n4.       Инпут поисковой строки в макете имеет другой вид\n5.       Дивайдер, отделяющий группы по ролям не должен быть сквозным\nРеализация:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725072\n\n\nМакет:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725074\n\n\n \n \nРабочее время:\n1.       Фон попапа должен быть белым FFFFFF (Surface, для темной схемы Surface\n#1D1B16)\n2.       Бордюр инпута BDBDBD (в темной 606060)\n3.       Лишний дивайдер, отделяющий Рабочие часы\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725076\n\n\n4.       Заголовок «Рабочие часы» крупнее (16 кегль)\n5.       Выровнять блок «Рабочие часы» по левому краю\nМакет:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204329025725078\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267728932394", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204329025725064/1204329025725064", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204408802681145", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-18T11:10:00.337Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-21T12:32:54.722Z", "name" : "Мессенджер / Диалог / Флоат-баттон \"Быстрый переход вниз\"", "notes" : "Сейчас так:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204408802681147\n\n\nВ макете немного поаккуратнее:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204408802681149\n\n\nИрина (https://app.asana.com/0/698025068994503/list) хочет добавить там стрелочку вниз (обратитесь к ней)\n\nФлоу:\nПоявляется в случае, если в оффскрине внизу есть ещё скрытые полностью сообщения. При нажатии скроллит до конца вниз и исчезает. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267728932394", "name" : "БК / Тестирование и коррекции MPV веб-десктоп", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204408802681145/1204408802681145", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204267732581723", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-07-17T13:21:21.131Z", "created_at" : "2023-03-28T04:51:13.724Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-17T13:21:21.409Z", "name" : "БК / Слияние проектов Аналитика + БК", "notes" : "Дооснащаем текущую флаттерную версию БК возможностями экранов Аналитики. \nВ рейле организация навигационных пунктов должна получиться следующей:\n Задачи\n Аналитика\n В аналитике есть дополнительные активные элементы в экшон баре, такие как упорядочивание KPI, https://app.asana.com/0/2495641457861/list отрефакторил так, чтобы можно было это тоже импортировать. \n Рейтинг торговых точек\n Чаты\n\nP.S. Порядок пунктов в будущем может изменяться.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204267732581723", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204267732581725", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-28T04:51:30.917Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-03-28T12:48:49.248Z", "name" : "Подготовка проекта Аналитики к импорту в БК", "notes" : "Сабж", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267732581723", "name" : "БК / Слияние проектов Аналитика + БК", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204267732581725/1204267732581725", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204267732581726", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-28T04:51:57.450Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-04T17:01:07.342Z", "name" : "Импорт Аналитических экранов в БК", "notes" : "Cм. главную задачу https://app.asana.com/0/201687425733831/1204267732581723", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204267732581723", "name" : "БК / Слияние проектов Аналитика + БК", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204267732581726/1204267732581726", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204387914919571", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-13T06:58:57.016Z", "due_at" : null, "due_on" : "2023-05-04", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-24T07:32:56.565Z", "name" : "Аналитика / Переход на порционную загрузку показателей + Группы показателей", "notes" : "Макет:\nhttps://www.figma.com/file/iY9lecOzCidiz0Rngt2t8a/HEADO.%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0---Flutter?node-id=5655-2149&t=B8pKi1Pds7vBAAUR-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204387914919573\n\n\nКонцепт по порционной загрузке:\n Дескрипторный список показателей загружается на Клиента полностью при инициализации экрана (filters.kpi)\n Попавшие во вьюпорт мобилы показатели прогружаются по схеме: <#UPD.1>\n Кол-во итераций: ceil(Кол-во попавших / 4)\n Далее в цикле \"Кол-во итераций\" грузим пакетами по 4\n \"Попавшим\" считается показтель, зацепившийся во вьюпорте любой из границ (верхней или нижней). \n У блока Показателя есть три состояния + ошибка:\n Инициализация - когда данные не загружены (плашка с шиммерами)\n Данные загружены - стандарт как сейчас\n Данные обновляются - плашка уходит в ч/б\n Ошибка: Данные по блоку не получены по какой-то причине. \n Колесо загрузки остаётся такой же, что для пуллтурефреша, что для обновления.\n\nКонцепт по группам:\n Группы так же загружаются при инициализации экрана ( filters.kpi_groups)\n Если включен режим \"Сгруппированные показатели\" - работает схема распределения показетелей по группам, для этого в filters.kpi есть привязка к группам, в дескрипторе показателя есть order (ASC):\n Группы располагаются между блоками как показано на макете + являются плавающими при скролле до момента наезжания следующей группой. \n При клике на группу появляется попап со списком групп, при клике на группу - переходим на начало соответствующей группы. \n Сверху добавляется квазигруппа \"В начало\"\n Снизу \"В конец\"\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204387914919571", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204387914919575", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-13T08:03:32.093Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-10-30T13:34:40.688Z", "name" : "Порционная загрузка с дескриптором", "notes" : "Полигон на https://test.partner.heado.ru\n\nДескриптор приходит в filters[id= \"kpi\" ] \n\nБазовая модель данных стандарт + расширения:\n{\n id : , /—//—\n title: ,/—//—\n order: , // Пользовательское и общее упорядочивание\n groups: , // для распределения/фильтра по группам\n shopId: , // поле для зависимости от сетей, если false, то независим\n addressId: , // поле для зависимости от адресов, если false, то независим\n}\n\nДанные по собранному батчу получаем по v2.kpi.summary( ids : , filter = false )\nhttps://m.heado.ru/internal-papi-v2.0-reference.html#kpi_summary\n\nМодель данных эквивалентная тому, что было в https://m.heado.ru/internal-papi-v2.0-reference.html#analytics", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204387914919571", "name" : "Аналитика / Переход на порционную загрузку показателей + Группы показателей", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204387914919575/1204387914919575", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204387914919576", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-13T08:03:41.992Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-24T07:33:55.623Z", "name" : "Группы показателей", "notes" : "Источник данных: filters.kpi_groups, схема подобная kpi:\n{\n id: ,\n title: ,\n order: \n}\n\nСортировка order - ASC", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204387914919571", "name" : "Аналитика / Переход на порционную загрузку показателей + Группы показателей", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204387914919576/1204387914919576", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204267732581738", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-03-28T05:20:37.809Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-03-28T05:28:15.813Z", "name" : "БК / Проект \"На работу!\"", "notes" : "https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=2919-1203&t=muEygpd66WgaHMpc-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204267732581740\n\n\n См. общую коррекцию лейаута профиля:\n Аватарка влево\n Вместо роли - статус\n Кнопка \"Настроить\" из бара теперь внизу верхнего блока наряду с новой кнопкой.\n В профиле добавляется кнопка-переключатель режима бодрствования Сотрудника \"Начать работу\" / \"Завершить работу\"\n Соответствующие экраны показаны справа для каждого состояния кнопки\n\nДайджест изменений в моделях и эндпоинтах:\n Получение статуса в profile()\n Получение доступных локаций для начала работы в profile()\n Получение данных для экрана Завершения работы в work.status()\n Начать работу: work.start(location [, latlon ] )\n Завершить работу: work.stop([ latlon ])\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204267732581738", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204267732581730", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-03-28T04:58:03.153Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-30T09:13:23.589Z", "name" : "БК / Схема \"Шорткаты\" к открытым окнам в наврейле", "notes" : "В макете https://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=230-4343&t=muEygpd66WgaHMpc-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204267732581734\n\n\nСлева внизу показан концепт размещения \"закреплённых\" сущностей. \nВ общей схеме закрепить можно что угодно - состояние экрана или конкретную иерархию открытия. К примеру:\n Окно диалога чата\n Открытая панель \"Просмотр Задачи\"\n Снапшот состояния экрана \"Задачи\"\n\nФлоу:\n Элементы, которые можно закрепить снабжаются дополнительным контролом \"Закрепить\"\n При нажатии в рейле снизу добавляется соответствующий элемент\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204267732581730", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204454757798404", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-07-17T13:21:30.398Z", "created_at" : "2023-04-24T05:28:48.465Z", "due_at" : null, "due_on" : "2023-05-03", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-01T09:57:37.122Z", "name" : "БК / Трек доработок 0.1.0", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204454757798404", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204454757798407", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-24T05:29:36.006Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-28T08:26:25.954Z", "name" : "Чаты / Кнопка \"Новые сообщения-Скролл вниз\"", "notes" : "Сабж. https://app.asana.com/0/698025068994503/list доделала варианты в макете\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?node-id=305-315&t=NHyg4j0912wPiiUP-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204454757798414\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204454757798404", "name" : "БК / Трек доработок 0.1.0", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204454757798407/1204454757798407", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204454757798408", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-24T05:30:06.946Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-04-28T08:26:07.085Z", "name" : "Оргструктура / Сортировка по колонкам", "notes" : "В исходной задаче https://app.asana.com/0/201687425733831/1202956908160780\nВ конце было положение о сортировке оргструктуры по колонке. \nРаз не успели сделать, модификация:\n Сортировку колонки проводить на клиенте по принципу соблюдения иерархии (сортировка происходит с сохранением иерархии, на каждом её уровне)\n Прогресс - по значению %\n Остальные колонки - просто по значению. \n По умолчанию - от меньшего к большему\n Не забыть про переключатель индикации в колонке. \n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204454757798404", "name" : "БК / Трек доработок 0.1.0", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204454757798408/1204454757798408", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204454757798411", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-24T05:32:51.942Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-04T17:01:15.977Z", "name" : "Чаты / Каунтер сообщений", "notes" : "Вроде как даже при прихрамывающем вебсокете ничего не мешает реализовать. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204454757798404", "name" : "БК / Трек доработок 0.1.0", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204454757798411/1204454757798411", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204454757798418", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-24T10:08:13.565Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : true, "hearts" : [ { "gid" : "1204463335837472", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "liked" : true, "likes" : [ { "gid" : "1204463335837472", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "memberships" : [ ], "modified_at" : "2023-04-24T14:35:29.099Z", "name" : "Отправка сообщений / Клавиатурный шорткат на Enter", "notes" : "Забиндить со станадртной отправкой сообщения", "num_hearts" : 1, "num_likes" : 1, "parent" : { "gid" : "1204454757798404", "name" : "БК / Трек доработок 0.1.0", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204454757798418/1204454757798418", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204454757798419", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-04-24T10:08:56.953Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : true, "hearts" : [ { "gid" : "1204502340317478", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "liked" : true, "likes" : [ { "gid" : "1204502340317478", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "memberships" : [ ], "modified_at" : "2023-04-30T06:20:49.199Z", "name" : "\"Умные\" метки времени в комментариях задач и диалогах", "notes" : "Там сейчас напрямую стоит ISO8601 с Z, пока нужно сделать отображение по локали клиентского устройства в сокращённом виде, где месяцы трёхбуквенные. \n\nНа следующем этапе реализуем линии отреза с датами + часы. ", "num_hearts" : 1, "num_likes" : 1, "parent" : { "gid" : "1204454757798404", "name" : "БК / Трек доработок 0.1.0", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204454757798419/1204454757798419", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204504924474414", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-05-02T06:04:28.814Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-24T07:33:13.078Z", "name" : "Аналитика / Смена домена по умолчанию на partner", "notes" : "Сменить whiterose на partner", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204504924474414", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204599863089703", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-05-15T08:15:47.848Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-24T07:33:35.937Z", "name" : "Аналитика / Хотпак 15.05", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204599863089703", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204599863089705", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-05-15T08:16:04.119Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-15T08:17:47.115Z", "name" : "Проверить нештатное поведение календаря на iPhone 14", "notes" : "на 14-х ойфонах у последней Аналитики календарь себя \"странно ведёт\": Не открывается и сразу выставляется в \"сегодня\"", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204599863089703", "name" : "Аналитика / Хотпак 15.05", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204599863089705/1204599863089705", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204599863089706", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-05-15T08:16:20.920Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-05-15T08:18:13.458Z", "name" : "Перечитывать фильтры и перестраивать список показателей после упорядочивания показателей", "notes" : "После упорядочивания показателей нужно перечитывать фильтры и перестраивать показатели, если они в режиме пользовательского упорядочивания.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204599863089703", "name" : "Аналитика / Хотпак 15.05", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204599863089706/1204599863089706", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204599863089710", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-05-18T07:56:34.423Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1204278463134045", "name" : "Malkova", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-18T07:57:53.246Z", "name" : "Аналитика / Экран сортировки показателей / Зона срабатывания драга", "notes" : "Жалуются, что есть показатели на 2-3 буквы и фиг в них пальцем за раз попадёшь, поэтому просят расширить зону до всего блока за вычетом зоны контекстного бургера.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204599863089710", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204642745312564", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-05-22T05:53:23.036Z", "due_at" : null, "due_on" : "2023-06-15", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-01T09:59:32.712Z", "name" : "Мобилизация и нотификации", "notes" : "Внутри задач я пока не стал раскладывать на подзадачи всё, т.к. тут уже вам решать кому что пойдёт - там можно фиксировать подзадачами сами и закреплять за собой", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204642745312564", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204642745312567", "actual_time_minutes" : null, "assignee" : { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-07-17T13:21:37.486Z", "created_at" : "2023-05-22T05:54:00.060Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-07-17T13:21:37.736Z", "name" : "Подготовка к мобильным платформам", "notes" : "Пока макеты готовятся под мобилу предлагаю опробовать MediaQuery-адаптацию по принципу вместимости и по флоу, который уже точно будет под мобилой:\n Оргструктура отдельным экраном\n Список задач - урезанная \"десктоп\"-версия с минимальным набором колонок, есть в макетах. Можно пока с горизонтальным паном. \n Все правые панели (Просмотр задач, управление постановками) так же отдельными экранами\n Мессенджер по схеме телеграма - контакты и диалоги отдельными экранами.\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204642745312564", "name" : "Мобилизация и нотификации", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204642745312567/1204642745312567", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204642745312562", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-05-22T05:45:01.742Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-06-13T04:13:49.143Z", "name" : "Нотификации / Общеплатформенная реализация", "notes" : "Брифли.\nУ нас два момента:\n Добиться работы нотификаций на мобильной части в максимально-\"нативном\" режиме, чтобы фоновые шли в каком-то виде на нужный экран с нужной параметризацией (спеку payload-а в нотификации предоставлю после отмашки, что готовы принимать)\n Решить момент с мультиплатформенностью, я копнул по вебу (а значит и десктопу) - решения есть, через тот же файрбейз\n\nРегистрация клиентского устройства оповещений:\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#fcm_register\n\nУдаление клиентского устройства оповещений:\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#fcm_remove\n\niOS/Android - дескрипторы в приложенных файлах.\n\nWeb/Desktop:\nApp.id: 1:564877830397:web:9e46a2b9cccbcd910b3694\nkey: AIzaSyC-Xqm_ukPrXSHIgKQwRd9ok0CVhv7rB8s", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204642745312564", "name" : "Мобилизация и нотификации", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204642745312562/1204642745312562", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204642745842523", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-05-22T09:32:43.025Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-22T11:22:29.077Z", "name" : "Механизм миграции БД при публикации новой версии", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204642745842523", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204642745842527", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-05-23T05:26:09.043Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-06T16:32:11.419Z", "name" : "Миграция реализации аватарок в БК на ядро", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204642745842527", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204664703379530", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-05-24T05:50:11.702Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-05-28T13:34:10.596Z", "name" : "Ядро / Рабочий статус Сотрудника", "notes" : "Макет флоу (мотать вправо):\nhttps://www.figma.com/file/BjUqgSRlQulg37oy0PO95o/%D0%91%D0%9A---Desktop-%2F-Tablet?type=design&node-id=2919-1203&t=1GH9eN1Nu57Fk5LU-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204664703379532\n\n\nУ Пользователя появляется новая маркировка - \"Рабочий статус\". \nНа данном этапе он может его менять внутри профиля с помощью кнопок \"Начать работу\" и \"Завершить работу\". \n Rem. В будущем кол-во статусов потенциально увеличится до 4-х, и кнопка превратится в \"Сменить статус\")\n\nФлоу смены статуса:\n v2.profile() теперь возвращает объект workstatus (https://m.heado.ru/internal-papi-v2.0-reference.html#profile) \n сейчас обслуживаем только два статуса onduty (На работе), и offduty (На отдыхе), соответственно и состояния кнопок \"Начать работу\", если v2.profile().workstatus.id == 'offduty' и \"Завершить работу\" иначе.\n Иконки: onduty : 'Business center', offduty: null \n start_ts - пока не используем. \n \"Начать работу\"\n Переходим на экран \"Начало работы\", загружаем фильтр 'workstatus:onduty' (схема будет общая для экранов смены статуса, если что, т.е. можно автоматом грузить на экран смены статуса \"workstatus:\" + new_status )\n В фильтре для onduty содержится workplaces, там доступен список мест, где можно выйти на работу для соответствующего дропдауна на экране, я бы тоже обобщил рендер параметров на экране для любых статусов.\n При клике на кнопку \"Начать работу\" отправляем https://m.heado.ru/internal-papi-v3.0-reference.html#mystatus_set, в data у нас набор параметров\n \"Завершить работу\"\n Всё то же самое, что в \"Начать работу\", только всё за offduty\n\nКоррекции по экрану профиля:\n Появляется Название статуса вначале блока с общими параметрами Профиля\n Статус состоит из workstatus.title + \" ( \" + local.time + \" ) \" + мап по workstatus.id \n local.time - локальное время\n Ирина изменила выравнивания в верхней части, можно их тоже реализовать, оно согласуется с переходом на М3 в её следующих макетах.\n\nИзменения по Аватарке:\n Появляется иконка рабочего статуса - это общий для всех аватарок момент.\n Там есть кольцо (серое-зелёное) - это онлайн-статус (оффлайн-онлайн), если расширишь интерфейс виджета до поддержки этого, уже хорошо, в следующих доработках будем использовать.\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204664703379530", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687886", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:14:12.597Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-10T08:32:02.473Z", "name" : "Миграция части БК на новые мобильные интерфейсы", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204812471687886", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1204812471687888", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:14:33.629Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-29T09:40:01.256Z", "name" : "Навигация", "notes" : "Основную навигацию для мобильной части необходимо перевести с рейлов на нижний бар:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=77-2463&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812471687896\n\n\nВ Navdrawer разместить часть профильной информации и пространство для шорткатов, которые в десктопе у нас в рейлзах:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=245-2632&t=S69Gx9I9wmnPYLlf-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812473220387\n\n\nОсновной нюанс - это переключатель рабочего статуса \"Начать работу/Завершить работу\", реализация его сейчас лежит в ядре в основном экране Профиля, поэтому тут нужно согласовать момент с https://app.asana.com/0/2495641457861/list, как можно вытаскивать это наружу и стоит ли так вообще делать.\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687888/1204812471687888", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687889", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:14:36.407Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-08-10T01:55:34.904Z", "name" : "Главный экран \"Список задач\"", "notes" : "https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=77-2463&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812471687898\n\n\nОргструктура: \nНеобходимо отображать в сокращённом варианте в одну строку - можно, в принципе, в глупом режиме со строкой: Определить сколько символов гарантированно влазит, выкусывать остальное посередине и троеточить. \"Умный режим\" - это оставлять приоритет на целостность названия после последнего слэша. \n\nПри одинарном тапе: Открываем \"экран\" оргструктуры\nПри долгом удержании: Переключаем блок на отображение полного пути или сокращённого.\n\nФильтры: \nПереключатель тиражей предлагается реализовать как часть списка фильтров в начало списка в режиме переключателя. По умолчанию - вкл.\n\n\nСписок задач (Режим по тиражам):\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=87-1640&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812473220378\n\n\n\nСписок задач (Режим по задачам):\n У элемента списка слева появляется шеврон статуса = индикации статуса прогресса\n В графе \"Сотрудник\" следующая логика отображения: \n Если profile().id == item.assignee.id, то отображаем набор из item.owner, иначе item.assignee\n Дью-дейт и прогресс остаются как есть\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687889/1204812471687889", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687894", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:16:19.376Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-08T08:22:35.169Z", "name" : "Оргструктура", "notes" : "https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=64-2386&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812471687900\n\n\nОргструктура как \"самостоятельный\" экран (помню, что это панель). Из изменений:\n Сразу раскрывается в \"расширенном режиме\" - колонки можно скроллить горизонтально\n Если честно, я бы сделал скролл \"липким\", т.е. \"дёрнул\" колонку и оно автоматом довело/выровняло следующую колонку в область видимости (прим. Автора)\n Основное поведение почти такое же как на десктопе: Пока жмём на шевроны - раскрываем узлы. Нажали на сам элемент - применяем и закрываем панель.\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687894/1204812471687894", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687890", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:15:23.584Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-07-17T13:20:57.740Z", "name" : "Просмотр задачи", "notes" : "https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=88-2650&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812471687902\n\n\nИзменения:\n В топбаре такая же логика, как в https://app.asana.com/0/201687425733831/1204812471687889 - если profile().id == ticket.assignee.id ? ticket.owner : ticket.assignee\n Так же появляется шеврон статуса напротив заголовка задачи\n Основной момент: При скролле ленты сообщений вниз схлапывается оргструктура и описание (в \"шапке\" остаётся только топбар, название и статус)\n Кнопки действий (отправка сообщений и ticket.actions[]) нужно разделить как на первом экране. Не под палец оно было. \n Теперь ticket.actions рисуем списком кнопок ДО кнопки \"Отправить сообщение\"\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687890/1204812471687890", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687891", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:15:28.618Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-06-14T07:05:15.211Z", "name" : "Действия над задачей", "notes" : " Вспомогательные диалоги действий (отчёта в частности) оставляем в виде попапов с кнопками\n Появляется новое действие \"claim\", иконка для него тут https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=163-3796&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812473220374\n\n\nНужно реализовать первичную поддержку этого действия (сквозное для всех платформ)", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687891/1204812471687891", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687892", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:15:33.743Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-06-13T05:49:08.312Z", "name" : "Управление постановками", "notes" : "https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=97-6846&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812473220380\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687892/1204812471687892", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204812471687893", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-06-13T04:15:49.898Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-07-17T13:17:20.545Z", "name" : "Постановка задачи", "notes" : "https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=97-4569&t=kTYeC3Dzcm2KG9wX-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1204812473220382\n\n\nЗдесь ради компактизации основные поля формы реализованы через чипы, все вспомогательные диалоги остаются теми же с раскрытием на весь экран. ", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204812471687893/1204812471687893", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204967344332605", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-05T05:25:03.527Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-07-05T05:35:54.400Z", "name" : "Навигация для мессенджера", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204967344332605/1204967344332605", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204998119593986", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-07-17T13:20:23.841Z", "created_at" : "2023-07-10T08:31:36.121Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : true, "hearts" : [ { "gid" : "1205009544005661", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "liked" : true, "likes" : [ { "gid" : "1205009544005661", "user" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } } ], "memberships" : [ ], "modified_at" : "2023-07-17T13:20:24.047Z", "name" : "Навигация между задачами в мобильной версии", "notes" : "В мобильной версии если передвигаться между задачами с помощью кнопок вперёд/назад, а после закрыть тикет - не возвращает к списку задач, а показывает предыдущую задачу", "num_hearts" : 1, "num_likes" : 1, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204998119593986/1204998119593986", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204998119593987", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-07-10T08:32:02.305Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-07-10T08:32:02.456Z", "name" : "", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1204812471687886", "name" : "Миграция части БК на новые мобильные интерфейсы", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1204998119593987/1204998119593987", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1204871966474974", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-06-23T05:52:23.308Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-05T05:22:59.324Z", "name" : "Изменение очерёдности основных пунктов в боттомбаре (мобила)", "notes" : "Нужна рокировка, в виду того, что будем выходить с новым приложением под Аналитикой:\n Аналитика (открывается по умолчанию)\n Рейтинги\n Задачи\n Мессенджер\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1204871966474974", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205071604476626", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-17T04:48:28.747Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-10T01:55:44.956Z", "name" : "FCM / Переход на свой профиль", "notes" : "Вместо taskmessenger'овских\n\nДля веба:\nAppid= 1:318198204451:web:fa995fba6e976c16bac996\n\n\nP.S>\nПлюсом ко всему у нас натальные различия в названиях пакета для андроида (ru.heado.newdasboards) и iOS (ru.heado.dashboards)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205071604476626", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205071604476628", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-17T04:49:04.379Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-20T11:19:17.339Z", "name" : "FCM / Регистрация токенов", "notes" : "В fcm.register в аргумент deviceId добавлять в строку ':heado/app'\n\n#UPD.1.\n+'::heado/app'", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205071604476628", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205071604476643", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-18T06:52:48.215Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-19T14:25:27.319Z", "name" : "Экран просмотра задачи / Промежуточное состояние загрузки", "notes" : "Макет\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=763-4449&mode=design&t=jYCO4GmtLuKCpCAR-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205071604476646\n\n\nЗадача минимум: \nИспользовать данный шаблон с шиммерами как подложку.\n\nЗадача максимум:\nОтображать экран просмотра сразу с заполненными данными из Модели выбранного элемента из списка, недостающие данные (описание, путь, комменатрии, действия) отображать шиммерами до момента полной загрузки.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205071604476643", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205071604476648", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-19T05:00:09.638Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-07-26T13:27:37.285Z", "name" : "FCM / Спецификация по пушам", "notes" : "Т.к. сейчас у нас существует общая шина нотификаций для нативного БК будем пока пользоваться ей. \n\nВ пейлоаде нотификации (data) приходит объект\n{\n event : <[ 'messageChat','messageChannel','ticket']>, // Объект события нотификации (чат, канал, задача)\n msgId: , // Приходит всегда, т.к. сообщение есть всегда\n ticketId: , // Приходит, когда event == ticket\n chatId : , // Приходит, когда event == chat\n channelId: ,// Приходит, когда event == channel\n<#UPD.1> ticketPackId: , // Приходит, когда event == ticketbatch \n mfrom: , // user id в области определения пользователей\n mbody: , // Полный текст сообщения\n mtype: <['text','image']>, // Тип сообщения, по умолчанию - text\n ts : // Время отправки сообщения (для возможности слипания сообщений в группы)\n}\n\nПри получении нотификации (по возможности), либо уже при переходе (если нет в моменте возможности) вызываем метод\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#im_message_received\nс [msgId] >> ids\n\nЗадача максимум:\nПри переходе с оповещения в идеале открывать (по data.event ) экран с нужным (ticketId,chatId,channelId) содержимым\n\n\n#UPD.1.\nДля event: 'ticketbatch' приходит поле ticketPackId\nЭкран перехода - открытый тираж ticket.pack.get(filter{ id : ticketPackId + фильтры по умолчанию } );", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205071604476648", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205166793327250", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-31T05:11:34.100Z", "due_at" : null, "due_on" : "2023-08-10", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-10T10:25:28.892Z", "name" : "Экран просмотра задачи / Расширенное флоу действий", "notes" : "Небольшой трек необходимых доработок", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205166793327250", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1205166793327252", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-31T05:43:14.502Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-08-10T10:25:24.549Z", "name" : "Коррекция визуального размещения кнопок и расширенное поведение при нажатии", "notes" : "Блок кнопок действий надо разделить как показано на макете:\n Справа всегда размещается Send для комментария (actions[].id == 0) без подложки, с сохранением enabled/disabled стейта при пустом/заполненном комментарии\n Слева от Send размещаются \"дополнительные\" кнопки действий с соответствующим отступом и подложкой. На них enabled/disabled стейт не распространяется (всегда активны). Больше 3-х кнопок действий одновременно не будет на данном этапе.\n\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=93-1694&mode=design&t=D77eWuXdg8Rbx0EH-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205166793327256\n\n\n#UPD.1.\nПункт.2 считать устаревшим. Теперь:\nОдна кнопка слева от Send. Даже, если действие только одно - открывать BottomSheet со \"списком\" и уже оттуда реализуем п.2.\n\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205217197055752\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205166793327250", "name" : "Экран просмотра задачи / Расширенное флоу действий", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205166793327252/1205166793327252", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205166793327254", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-31T05:44:18.780Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-08-08T09:04:43.894Z", "name" : "Поддержка кастомной формы действия", "notes" : "Расширена спека ticket.actions[] (Теперь там появилось описание reasons)\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#ticket_get\n\nДействия вызывают экран с формой заполнения в случае непустоты reasons\n\nОбщее поведение:\n Если reasons == [], то кнопка действия работает сразу с экрана Просмотра Задачи\n Если reasons не пустые - вызываем экран с формой заполнения (Ирина предоставит его завтра 01.08)\n\nСхема сборки формы:\n Набор reasons идёт первым dropdown'ом обязательным к выбору \n Поле отправки в ticket.action(): params.reasonId = id\n Если reasons.count == 1, то он предвыбран\n Если reasons.count>1, то отображаем \"Выберите причину\"\n При выборе причины отрисовывается соответствующий спеке reasons[].fields набор полей формы\n На данном этапе необходимо реализовать поддержкку следующих полей:\n number - числовой одностроковый инпут\n text - текстовый инпут a la комментарий\n file - аттачмент класса \"любой файл с устройства\"\n dropdown - дропдаун\n Поля уходят в ticket.action() по схеме params[fields[].name] = {value}\n При сабмите форма валидируется в соответствии с fields[].required \n После сабмита возвращаемся на экран Просмотра соответствующей задачи с обновлением.\n\n#UPD.1.\nМакет\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=964-6046&mode=design&t=mlEY2tsBFWpGp0oz-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205166793327262\n\n\n В заголовке экрана (Который сейчас \"Отчёт\") желательно actions[].title\n Флоу валидации, размещения доп. элементов и работы с дропами (Ирина предлагает BS) показаны далее\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205166793327250", "name" : "Экран просмотра задачи / Расширенное флоу действий", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205166793327254/1205166793327254", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205166793327258", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-07-31T06:26:11.509Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-07-31T10:29:02.853Z", "name" : "Поддержка дополнительного действия \"Claim\"", "notes" : "идентификатор actions[].id == 10\n\nИконку можно найти внизу https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=163-3796&mode=design&t=D77eWuXdg8Rbx0EH-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205166793327260\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205166793327250", "name" : "Экран просмотра задачи / Расширенное флоу действий", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205166793327258/1205166793327258", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205166793327265", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-01T04:38:05.378Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-14T13:06:40.550Z", "name" : "Обновлённая иконка для Heado", "notes" : "Для андроида как минимум. Если надо растеризацию под разные разрешения - пишите https://app.asana.com/0/698025068994503/list", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205166793327265", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205265466870788", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-14T05:03:02.997Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-04T18:10:21.289Z", "name" : "Управление локальными состояния интерфейса / Состояние переключателя \"Тиражи\"", "notes" : "Общая часть:\nv2.profile() расширен до features \nhttps://m.heado.ru/internal-papi-v2.0-reference.html#profile\n\nНужно сделать подчинение отображения и значения переключателя \"Тиражи\".\nНа данный момент хватит поддержки состояний:\noff\ninvisible:off", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205265466870788", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205307829845024", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-23T07:56:48.783Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-24T10:58:15.955Z", "name" : "Мобила / Задачи / Просмотр задачи / Не работает бэк на открытии аттачментов", "notes" : "Андроид (demopartner@giftoman.riu, partner )\nПри открытии аттачмента (на комментарии) открывается экран просмотра аттачмента, с которого не выйти бэком.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205307829845024", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205307829845027", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-23T07:59:31.193Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-24T09:23:57.837Z", "name" : "Задачи / Просмотр задачи / Поддержка дополнительного действия \"Коррекция задачи\"", "notes" : "action.id = 255\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205307829845027", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205307829845029", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-23T08:02:17.206Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-08-24T08:56:24.003Z", "name" : "Поддержка дополнительного типа полей в action.reasons.fields[] / textarea, datetime...", "notes" : "text однострочный\ntextarea - двухстрочный для веба/десктопа, расширяемый инпут, на мобиле - синоним text'а done\ndatepicker - выбор даты done\ntimepicker - выбор времени done\ndatetime - комбинированный выбор даты и времени done\nduedate - выбор даты и времени с отсечкой прошлого (не давать выбирать из прошлого) done\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205307829845029", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205361897652999", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-28T10:59:58.633Z", "due_at" : null, "due_on" : "2023-09-05", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-04T22:08:11.731Z", "name" : "Ядро / Аналитика / Экран детальной информации по Показателю / Чарт / Шкала графика для оси Y", "notes" : "Нужно включить отображение шкалы слева <#UPD.1> справа , по возможности с сокращением длины отображаемого числа (<=5символов). Старая схема сокращения, в принципе, подходит:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205361897653002\n\n\nРазмер шрифта тоже. Ирину пока не трогаем.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205361897652999", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635423", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:32:44.939Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-06T17:18:27.746Z", "name" : "Результаты общего теста 0830", "notes" : "Везде, где не указана учётка отдельно - тестировалось на demopartner@https://giftoman.ru/Pumuc7zadoz (https://test.partner.heado.ru)\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205382275635423", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1205382275635432", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:43:59.151Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-08-30T09:13:54.436Z", "name" : "Список задач / Блок оргструктуры / Иногда не отображается название корневого узла ", "notes" : "На учётке demotop@giftoman.ru / Pumuc7zadoz", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635432/1205382275635432", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635425", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:38:08.900Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-08-31T07:35:13.186Z", "name" : "Оргструктура / Сделать активным корневой узел", "notes" : "Чтобы по нему так же происходила фильтрация, иначе нельзя вернуться в исходное положение", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635425/1205382275635425", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635426", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:38:22.984Z", "due_at" : null, "due_on" : "2023-09-12", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-13T03:38:14.576Z", "name" : "Добавление нового аккаунта / Не происходит переключение на другую учётную запись", "notes" : "При добавлении новой учётки в профиле активной отображается она, но данные идут от старой", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635426/1205382275635426", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635427", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:38:48.303Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-04T07:03:50.367Z", "name" : "Постановка задач / Нужен выбор времени для обоих дейтпикеров (начало/завершение)", "notes" : "Сабж, там нужно время", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635427/1205382275635427", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635428", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:39:51.662Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-06T16:31:10.381Z", "name" : "Постановка задач / Аватарки / Периодически не догружаются аватарки?", "notes" : "https://app.asana.com/app/asana/-/get_asset?asset_id=1205382275635434\n\n\nЭто бэк или что-то на клиенте?", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635428/1205382275635428", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635429", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:40:35.874Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-06T16:31:01.541Z", "name" : "Постановка задач / Выбор исполнителей/ Фильтрация исполнителей по роли / Выбор не отображается", "notes" : "При выборе роли и возвращении - в исполнителях пусто.", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635429/1205382275635429", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205382275635430", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-30T05:42:03.254Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-04T11:00:48.430Z", "name" : "Постановка задач / При заполненной форме кнопка запустить неактивна", "notes" : "regdir3@giftoman.ru / Pumuc7zadoz\n\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205382275635440\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205382275635423", "name" : "Результаты общего теста 0830", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205382275635430/1205382275635430", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205413316491344", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-06T17:17:50.951Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-08T09:23:21.828Z", "name" : "Переход на серверно-управляемое избранное", "notes" : "Общий сценарий:\n На старте получаем список \"избранного\" fav.list, модель более-менее соответствует текущей локальной реализации\n Модель имеет дополнительное поле ttl (по умолчанию = 0), желательно включить его в модель, т.к. это будет впоследствии время экспирации в секундах, чтобы сбрасывать содержимое \"временного\" избранного в локали в нужное время.\n Установка и удаление избранного через fav.set,fav.delete, они возвращают сразу модифицированный fav.list, чтобы не перезапрашивать. \n Соответственно лучше делать этот момент асинхронным с поведением интерфейса (установка/снятие звёздочки)\n\n\nОбщие спецификации методов:\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#favs_list\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#favs_set\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#favs_delete", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205413316491344", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205461983377500", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-12T11:31:07.841Z", "due_at" : null, "due_on" : "2023-09-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-13T05:43:29.978Z", "name" : "Постановка задач / Переход после \"Запуска\" ", "notes" : "Нужно изменить флоу:\n Переходить в управление постановками после нажатия клавиши и тост отображать там\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205461983377500", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205495995308836", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-14T06:58:35.763Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-14T09:07:47.581Z", "name" : "Комментарии задач / Доработка принципа отображения временной метки", "notes" : "Сейчас там отображаются только даты \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205495995308839\n\n\nНужно:\n Формат привести к сокращённому DD Mon YY\n Добавить время HH:MM\n Если date(comment[].datetime) == \"сегодня\", отображать только время. \n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205495995308836", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205505520588204", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-15T10:03:39.006Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-20T08:48:51.723Z", "name" : "Модификация работа с описанием задачи", "notes" : " Включить описание в общий скролл\n Перевести описание на обрезание по высоте блока (в макете значения)\n Раскрывать до полной высоты по шеврону раскрытия\n Шеврон \"закрытия\" на данный момент не нужен\n Блок скроллим так же до \"свежих комментов\", но желательно показывать скроллбар всегда, без фейдаутов.\n\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=1871-2359&mode=design&t=OUVcDdewpY7hxd1R-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205505520588207\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205505520588204", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205505520588209", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-15T13:07:20.762Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T14:42:43.362Z", "name" : "Реализация тёмной темы", "notes" : "Справа на всех страницах есть рефы у https://app.asana.com/0/698025068994503/listесть сеты переменных\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=0-1&mode=design&t=Tn91sBKJyHb5vkib-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205505520588212\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205505520588209", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205545465337247", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-21T10:05:09.786Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1200430105976796", "name" : "Flutter", "resource_type" : "section" } } ], "modified_at" : "2023-09-26T06:14:18.779Z", "name" : "Поддержка миграционной схемы + реализация миграции нотификаций", "notes" : "При инициализации приложения:\n Проверять в локальной БД сохранённую текущую версию приложения\n Отсутствие версии приравнивать к v2.0.0\n В случае, если текущая и сохранённая версия не равны - проверять наличие миграционного сценария под соответствующий прыжок\n Если сценарий есть - выполняем\n Записывать новую версию приложения в локальную БД\n\nP.S.\nМиграционные версии предлагаю оформлять в мап по ключу {old-version}-{new-version} то есть v2.0.0-v2.1.0 к примеру. \nНу и включить поддержку джокера: *-v2.1.0, чтобы закрывать момент с затянувшимся обновлением\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205545465337247", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1205545465337249", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-21T10:12:20.767Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-09-26T06:14:26.664Z", "name" : "Миграционный сценарий 2.0.0-2.1.0", "notes" : "Выполнять fcm.register() с deviceId + ::v2\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205545465337247", "name" : "Поддержка миграционной схемы + реализация миграции нотификаций", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205545465337249/1205545465337249", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205674659108467", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-10-10T10:06:21.287Z", "due_at" : null, "due_on" : "2023-10-12", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-01T07:05:58.185Z", "name" : "Список задач / Статс-виджет внутри оргструктурного пути", "notes" : " Нужно добавить стандартный статсовый виджет справа от оргструктурного пути\n Статсы в рутовой ноде должны приходят в structure.get по умолчанию\n Скорректировать кегль пути (12pt вроде) и его соответствующее сокращение\n #UPD.1. Нужно обновлять данные в соответствии с изменениями фильтров \n #UPD.2. При выборе ноды в оргструктуре статсвиджет должен брать данные этой ноды\n\nМакет:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=2358-3657&mode=design&t=8OP18bkoOibONyPH-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205725621251364\n\n\n\n#UPD.3. \nРеорганизация экрана оргструктура в пользу более компактного \n\n#UPD.4.\nНужно повторение фильтров с экрана \"Мои задачи\" по стандарту между топаппбаром и основной таблицей\n По факту они сквозные между экранами \"Оргструктура и \"Мои задачи\", т.е. состояния и выбор должны быть одинаковыми при переходах.\n Фильтры выставляются as is как на экране задач\n Изменения фильтров оргструктуре должны приводить к обновлению статсов оргструктуры\n\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205725621251362\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205674659108467", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205563640983450", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : true, "completed_at" : "2023-10-16T05:32:58.977Z", "created_at" : "2023-09-26T12:25:02.089Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-16T05:32:59.118Z", "name" : "Переключение/логаут аккаунтов / Решение по реинициализации", "notes" : "При переключении/логауте в мультиаккаунте вместо того, чтобы открываться и обновляться на том же стейте предлагаю полностью реинициализироваться на экране Аналитики, т.к. очень много стейтов, получается, нужно обслужить на разных экранах.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205563640983450", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205590968816958", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-28T07:26:52.198Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-18T03:23:34.582Z", "name" : "Переключение аккаунтов / Выбор домена / Не возвращает в логин", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205590968816958", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205563640983448", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-26T12:16:14.033Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-16T12:05:50.160Z", "name" : "Heado / Задач / Pull-to-refresh на списке Задач", "notes" : "Нужно релизовать pull-to-refresh для таблицы", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205563640983448", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205563640983435", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-26T04:25:46.522Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-25T02:27:33.355Z", "name" : "Поиск по задачам", "notes" : "Экран контекстного поиска активируется по иконке \"лупа\" в топаппбаре на экране \"Задачи\".\n\nМакет общего флоу:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=1949-10498&mode=design&t=1QGK1tHVuEVubMgC-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205563640983438\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205563640983435", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1205563640983441", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-26T04:53:16.625Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-11-10T05:43:38.617Z", "name" : "Основная функция поиска", "notes" : "Флоу:\n При инициализации экрана поиска нужно загрузить дескриптор filters(screen=\"ticket:search\"), в data приходят данные для списка чипов (см. первый экран в макете)\n Поле ввода поиска должно быть в фокусе. \n При наборе в поле нужно реализовать схему \"автоподсказка\", для этого обращаемся к filters(screen=\"ticket:search\", filter={ id : \"search\", \"search\": {вводимая часть строки}), в data возвращается стандартный список {id: string, title: string}, который отображаем в хинтах (см https://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=1941-7537&mode=design&t=1QGK1tHVuEVubMgC-0)\n При клике на хинт происходит возврат на экран Задачи с установленным для ticket.list() фильтром filter['search'] = data[selected].id и соответствующим обновлением данных списка\n При клике на иконку \"крестик\" в поле ввода происходит его очистка\n Работа с чипсами:\n При клике на чипс происходит вставка в поле инпута значение id из полученного в п.1. датасета + пробел\n Вставку нужно облагородить уникальностью, т.е. предварительно проводить поиск в инпуте, если уже есть - не вставлять. \n У Ирины \"выбранный\" чип подсвечен жёлтым - на данный момент это \"мерцание\" при клике, а не выбор. \n Курсор должен быть в конце строки\n Сброс поиска происходит по кнопке Back (для софтовой и хардной)\n\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205563640983435", "name" : "Поиск по задачам", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205563640983441/1205563640983441", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205563640983442", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-09-26T04:53:32.244Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-10-25T02:27:50.639Z", "name" : "Реализация код-сканера для автоподстановки", "notes" : "В качестве основы выбирали https://github.com/rmtmckenzie/flutter_qr_mobile_vision/\n\n При клике на иконку \"штрихкод\" в поле поиска активируется камера в режиме считывания кодов.\n При считывании кода возвращаемся на предыдущий экран (поиска) где происходит автоматическая вставка в поле ввода task:barcode + {считанное значение}\n\nНужно открывать в режиме считывания:\nEAN_13\nCODE_128\nQR_CODE\nDATA_MATRIX", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205563640983435", "name" : "Поиск по задачам", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205563640983442/1205563640983442", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205725621251348", "actual_time_minutes" : null, "assignee" : { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-10-16T05:36:51.011Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-19T03:52:57.666Z", "name" : "Переключение аккаунтов (+логаут в мультиакке) / Реинизиализация на основном экране", "notes" : "Предлагается после смены аккаунта (или логаута с автоматической сменой) переинициализировать \"с ноля\" клиента на первый экран (Аналитика со списком показателей), т.к. не работает сейчас нормально обновление на произвольном экране. ", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205725621251348", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205783397351445", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-10-23T10:53:03.228Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-23T22:26:59.952Z", "name" : "Коррекция работы с ЖЦ пуштокена", "notes" : " Обновление регистрации токена в течение сессии \n Проблема с ожиданием удаления токена при логауте\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205783397351445", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205793037716057", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-10-24T09:44:32.467Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205725621251340", "name" : "Flutter / 2.2.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T06:00:52.074Z", "name" : "Задачи / Приложения / Разделение photo-image", "notes" : "photo - приложение снимка только с камеры\nimage - любой вариант источника изображения (нужен промежуточный диалог для выбора \"Галерея/Камера\"\nfile - любые файлы из файлового окружения\n\n#UPD.1\ndir3@giftoman.ru / Выполнение показателя \"Выручка\" - там есть нужный дескриптор\nдомен test.partner", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205793037716057", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205850745542964", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-11-02T11:50:29.173Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205822690324549", "name" : "Flutter / 2.2.2 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-02T15:18:01.989Z", "name" : "Генерация и отправка идентификационного локального токена при авторизации", "notes" : "Для auth(login, pass [, token] и auth.bykey(access_key [, token] )\n\nСхема следующая:\n При инициализации приложения и отсутствии сохранённого токена нужно сгенерировать таковой (ключ или гуид по времени и всему, что поможет идентифицирвоать клиента) и сохранить. \n Далее передавать в качестве доп. параметра token в обозначенные методы\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205850745542964", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205793037716055", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-10-24T07:43:23.021Z", "due_at" : null, "due_on" : "2023-11-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205822690324549", "name" : "Flutter / 2.2.2 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-12T19:00:08.831Z", "name" : "Отмена фоновых запросов при переключении экранов", "notes" : "Либо обслуживающая логика не должна переключать вкладку при выполнении фонового запроса не относящегося к текущей вкладки (отмена, кмк, мастхэв)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205793037716055", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205793037716049", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-10-24T07:41:32.397Z", "due_at" : null, "due_on" : "2023-11-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205822690324549", "name" : "Flutter / 2.2.2 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-12T19:00:08.732Z", "name" : "Распределение запросов фильтров на целевые экраны", "notes" : "Нужно разгрузить главный экран от кучки лишних запросов, перенеся работу с фильтрами в отдельный BLOC, существующий внутри тасков.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205793037716049", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205850404321364", "actual_time_minutes" : null, "assignee" : { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-11-01T05:53:08.886Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205822690324549", "name" : "Flutter / 2.2.2 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-03T12:59:15.616Z", "name" : "Heado / Дизайн-система ", "notes" : "Здесь будут текущие движения по дизайн-системе: изменения цветов, шрифтов", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205850404321364", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1205850404321366", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-11-01T05:57:26.442Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-11-09T17:28:56.568Z", "name" : "Цвета / UPD 1", "notes" : "Сдвинем грязный желтый в темной схеме в теплую серо-коричневую сторону\n Surface Dark Mode - 2C2824\n Data_floating DM - 5F5042\n Primary Container DM - 443D37\n Shimmer DM - 443D37\n LOGO Dark Mode - 443D37\n Button_Disabled Dark Mode - 443D37\n Drag-n-drope DM - 443D37\n BG_edit_task DM - 443D37\n Status Bar (Android) - Primary Container (LM FFE170 / DM 443D37)\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205850404321364", "name" : "Heado / Дизайн-система ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205850404321366/1205850404321366", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205850404321367", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-11-01T06:02:51.547Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-11-13T05:05:50.419Z", "name" : "Variations Library / Colors", "notes" : "https://app.asana.com/app/asana/-/get_asset?asset_id=1205850404321371\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205850404321373\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205850404321375\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205850404321377\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205850404321379\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205850404321381\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205850404321364", "name" : "Heado / Дизайн-система ", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205850404321367/1205850404321367", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205341943836057", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-08-24T06:34:19.538Z", "due_at" : null, "due_on" : "2023-11-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205822690324549", "name" : "Flutter / 2.2.2 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-12T19:00:08.156Z", "name" : "Задачи / Просмотр / Поддержка умолчательных значений и плейсхолдеров для inline-полей", "notes" : "Речь о action.reasons[].fields[].data = [ { id: , title: , selected: },.. ] \n\nДля инлайновых полей (всё, кроме dropdown и файлов: text, textarea, number, datetime, time, duedate) брать умолчательное значение из data[0].title\n\n<#UPD.1.>\n\nВ случае если data[0].id содержит конструкцию вида @object/field,. , проводить попытку извлечения из модели соответствующего object:\n\nВ минимальном виде нужна поддержка плейсхолдеров вида @ticket/field (например @ticket/text, @ticket/title, @ticket/duedate), \n\nВ максимальном - Path-like нотация безопасного обращения к свойству объекта.\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205341943836057", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205773171731730", "actual_time_minutes" : null, "assignee" : { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-10-23T14:44:02.923Z", "due_at" : null, "due_on" : "2023-11-13", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "698025068994499", "name" : "IrinaOs", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205941301409372", "name" : "Flutter / 2.3.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-15T06:02:15.983Z", "name" : "Heado / Поиск по задачам для десктопа", "notes" : "Макет:\nhttps://www.figma.com/file/Ju6ci6kjHcHNBQBQViM2hJ/Heado_Desktop?type=design&node-id=564-308&mode=design&t=IMo9tSBNBojhZar6-4\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205904208628877\n\n\nФлоу:\n Нажимаем на лупу - включается режим \"поисковая строка\" с фокусом в строке (https://www.figma.com/file/Ju6ci6kjHcHNBQBQViM2hJ/Heado_Desktop?type=design&node-id=567-2029&mode=design&t=n1KBr1AYIr80IRCZ-0)\n При наборе строки ищем по схеме https://app.asana.com/0/201687425733831/1205563640983441 п2.а. с добавлением в фильтр параметра \"client\":\"desktop\" (https://www.figma.com/file/Ju6ci6kjHcHNBQBQViM2hJ/Heado_Desktop?type=design&node-id=567-2430&mode=design&t=n1KBr1AYIr80IRCZ-0)\n Автокомплитер будет выдавать список подсказок со строками вида \"строка поиска\" и \"object:property\" + \"строка поиска\". В принципе, в задаче минимум достаточно подсвечивать серым \"object:property\", в задаче максимум (если успеваем) - резолвить по полученному в https://app.asana.com/0/201687425733831/1205563640983441 п.1 дескриптору\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205773171731730", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205822690324550", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-10-30T06:27:14.962Z", "due_at" : null, "due_on" : "2023-11-21", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205941301409372", "name" : "Flutter / 2.3.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-15T06:02:19.521Z", "name" : "Мотивационные блоки (мотоблоки)", "notes" : "Проект включает в себя:\n Новый тип блока в списке показателей экрана \"Показатели\"\n Детальный вид для этого блока\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205822690324550", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ { "gid" : "1205822690324552", "actual_time_minutes" : null, "assignee" : { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-10-30T06:28:28.922Z", "due_at" : null, "due_on" : "2023-11-14", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-11-14T08:50:02.888Z", "name" : "Показатели / Новый тип блока \"Мотоблок\"", "notes" : "Макет:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=2053-5169&mode=design&t=WJrTmQV28htZqy5D-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205822690324555\n\n\n\nВ моделях показателей, возвращаемом в filters (https://app.asana.com/0/201687425733831/1204387914919575), в модель добавляется:\n type == 255 - тип \"Мотоблок\"\n cpa : { due_date: , formula: , status: enum [\"enabled\", \"disabled\"] }\n status : \n\nТак же форкается модель, отдаваемая https://m.heado.ru/internal-papi-v2.0-reference.html#kpi_summary, теперь она будет в v3: https://m.heado.ru/internal-papi-v3.0-reference.html#kpi_summary. Вкратце, для type == 255:\ndata: {\n fact: , // Текущий факт прогресса \n vector: enum [\"left\", \"right\",\"none\"] // направление стрелочки у авы, \n forecast: // #FFU,\n thresholds: [ { // Пороги для любого вида прогресса\n status: enum [\"passed\", \"current\", \"current_nofill\", \"current_zone\", \"out\", \"out_zone\"],\n step: , \n step_suffix: \n bonus: \n },..] \n}\n\nЛогика работы \"прогресс-бара\":\n Отрисовываем пороги слева направо\n Первый и последний порог размещаются в краях\n если thresholds[].step == -1 - вместо значения рисуем значок ♾️\n status:\n passed - порог пройден, вся линейка с чёрной полоской (рис.1)\n current - текущая позиция (всегда от порога влево), (рис.2)\n если arrow:right, то чёрная полоска до авки слева,\n arrow:left - чёрная полоса справа\n arrow:none - нет чёрной полосы\n current_nofill - текущая позиция, но без чёрной полосы при любом стейте arrow (рис.3)\n current_zone - текущая позиция, с подсветкой зоны как в zone (рис.4.)\n out - не достигнутая зона (рис.5.)\n out_zone - не достигнутая зона удержания с зелёной подстветкой (рис.6)\n\n<#UPD.1>\nСтейты отображения бонусов:\n status in [\"current\", \"current_zone\", \"current_nofill\"]: Оранжевый фон, выделенный\n status in [\"passed\"] : Серый, подавленный\n status in [\"out\",\"out_zone\"]: Зелёный, выделенный\n\n\nрис.1\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205836699912679\n\n\nрис.2\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205836699912681\n\n\nрис.3. \n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205836699912683\n\n\nрис.4.\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205836699912691\n\n\nрис.5.\n\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205836699912685\n\n\nрис.6.\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205836699912689\n\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205822690324550", "name" : "Мотивационные блоки (мотоблоки)", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205822690324552/1205822690324552", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205822690324553", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-10-30T06:28:44.214Z", "due_at" : null, "due_on" : "2023-11-23", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ ], "modified_at" : "2023-11-14T08:58:31.271Z", "name" : "Мотоблок / Детальная информация ", "notes" : "Макет:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=2482-6407&mode=design&t=u3JtTQujrNDlyvI3-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205941301409369\n\n\nСпека:\nhttps://m.heado.ru/internal-papi-v3.0-reference.html#cpa_details\n\nПередача фильтров так же как в v2.analyticsDetails() (с \"id\" соответствующего блока)\n\nПримечания к макету:\n Вид саммари блока на данный момент берём из https://app.asana.com/0/201687425733831/1205822690324552\n Зоны в этой задаче НЕ реализуем\n На описание задачи (ticket.text) надо натравливать автосворачивание, если оно больше 4-х строк.\n Аттачменты Ирина сделал по схеме \"разъебись на всю ширь\", в этой задаче я приму унитарными квадратами. \n Аттачам с type:\"image\" нужна галерея просмотра, она есть у пасанов\n Файловые просто скачиваем\n При клике на блок - переходим в ticket/{ticket.id}\n", "num_hearts" : 0, "num_likes" : 0, "parent" : { "gid" : "1205822690324550", "name" : "Мотивационные блоки (мотоблоки)", "resource_type" : "task", "resource_subtype" : "default_task" }, "permalink_url" : "https://app.asana.com/0/1205822690324553/1205822690324553", "projects" : [ ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205563640983453", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-09-26T12:27:13.044Z", "due_at" : null, "due_on" : "2023-11-27", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205932447859536", "name" : "Flutter / 2.4.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-13T05:58:47.550Z", "name" : "Heado / Переход на RenderObject \"подгоняемых\" текстовых объектов ", "notes" : " баблы диалогов (глубокий рефакторинг)\n описание задач\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205563640983453", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205725621251351", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-10-18T07:07:34.818Z", "due_at" : null, "due_on" : "2023-11-27", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205932447859536", "name" : "Flutter / 2.4.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-13T05:58:52.522Z", "name" : "Задачи / Просмотр / Несоответствующий размер тамбнейл-превью ", "notes" : "В макете:\nhttps://www.figma.com/file/gHyoy6dRbU9gbuisnqasn0/Heado_Mobile?type=design&node-id=1871-2359&mode=design&t=BI261lhmHUVrUxCp-0\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205725621251354\n\n\n\nПо факту:\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205725621251356\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205725621251351", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205941301409375", "actual_time_minutes" : null, "assignee" : { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, "assignee_status" : "inbox", "completed" : false, "completed_at" : null, "created_at" : "2023-11-15T07:43:53.459Z", "due_at" : null, "due_on" : "2023-11-27", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205932447859536", "name" : "Flutter / 2.4.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-15T07:44:35.899Z", "name" : "Просмотр Задачи / Враппер скролла для маленьких устройств", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205941301409375", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205850745542966", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-11-03T06:19:59.653Z", "due_at" : null, "due_on" : "2023-11-27", "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205932447859536", "name" : "Flutter / 2.4.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-13T05:59:05.027Z", "name" : "Миграция на актуальную версию go_router", "notes" : "Обновить go router до последней (на текущий момент 12.0.1) версии, адаптировав вызовы.\nОсобое внимание обратить на breaking changes в мажорных версиях.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205850745542966", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205932447859541", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-11-13T05:59:07.267Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205932447859536", "name" : "Flutter / 2.4.0 track", "resource_type" : "section" } } ], "modified_at" : "2023-11-13T05:59:20.423Z", "name" : "Кошелёк и операции", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205932447859541", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205461983377478", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2023-10-31T06:00:04.303Z", "created_at" : "2023-09-11T10:52:11.966Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205461976329408", "name" : "Flutter / bugtracker", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T06:00:04.492Z", "name" : "Переход по пушу / Боковая панель не закрывается", "notes" : "В случае, если приложение оставить в фоне с открытым боковым меню, то при переходе затем по пушу, меню остаётся открытым.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205461983377478", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205461983377497", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2023-10-31T06:00:05.967Z", "created_at" : "2023-09-12T11:28:37.362Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205461976329408", "name" : "Flutter / bugtracker", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T06:00:06.084Z", "name" : "Мессенджер / Не обновляется содержимое чата", "notes" : "При переключении чатов по запросам видно, что отдаются разные данные, но на экране отображаются одни и те же, видимо из первого.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205461983377497", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205485422332296", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2023-10-31T06:00:09.136Z", "created_at" : "2023-09-13T05:42:51.079Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205461976329408", "name" : "Flutter / bugtracker", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T06:00:09.215Z", "name" : "Проблема с роутингом в схеме \"Постановка задач\"", "notes" : "ref: https://app.asana.com/0/201687425733831/1205461983377500", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205485422332296", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205622245133311", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : true, "completed_at" : "2023-10-31T06:00:11.796Z", "created_at" : "2023-10-03T11:31:37.309Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205461976329408", "name" : "Flutter / bugtracker", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T06:00:12.044Z", "name" : "После перехода по pack-пушу не возвращается в режим \"без тиражей\" у пользователей с отключённой фичей тиражей", "notes" : "При переходе по pack-пушу, при нажатии кнопки back интерфейс \"Мои задачи\" остаётся в режиме тиражи = включено, должны выключаться", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205622245133311", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205622245133307", "actual_time_minutes" : null, "assignee" : { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, "assignee_status" : "inbox", "assignee_section" : { "gid" : "1200306169594716", "name" : "Recently assigned", "resource_type" : "section" }, "completed" : false, "completed_at" : null, "created_at" : "2023-10-02T17:04:05.983Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "1203071663735925", "name" : "Sergey Volodin", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205461976329408", "name" : "Flutter / bugtracker", "resource_type" : "section" } } ], "modified_at" : "2023-10-10T04:57:23.712Z", "name" : "Стейт экрана after push clicked / Некорректная подсветка табов", "notes" : "https://app.asana.com/app/asana/-/get_asset?asset_id=1205622245133310\n\nПри переходе по пушу в задачи", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205622245133307", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ { "gid" : "4397140212895", "name" : "Проверить", "resource_type" : "tag" } ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205622245133313", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-10-04T06:08:28.809Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1205461976329408", "name" : "Flutter / bugtracker", "resource_type" : "section" } } ], "modified_at" : "2023-10-04T06:12:39.066Z", "name" : "Рейтинги (аналитика) / Лишний прогресс по \"страницам\"", "notes" : "demopartner@giftoman.ru\n\nВ первом запросе возвращается total_count=6, но стреляет второй запрос с offset:0, limit:20 (идентичный то бишь)", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205622245133313", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205793037716051", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-10-24T07:42:26.438Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" }, { "gid" : "2495641457856", "name" : "Никита", "resource_type" : "user" }, { "gid" : "1202859655765863", "name" : "Сергей Анисов", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1202395304416764", "name" : "Backlog", "resource_type" : "section" } } ], "modified_at" : "2023-10-24T07:49:40.308Z", "name" : "Мессенджер / Дедубликация контактов", "notes" : "Наложение логики MainBloc + MessengerBloc, im.contacts выполняется дважды на обоих экранах. В идеале использовать MessengerBloc как единственный источник информации, разрешающий подписаться извне на события.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205793037716051", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205461983377504", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-09-13T10:17:20.238Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1202395304416764", "name" : "Backlog", "resource_type" : "section" } } ], "modified_at" : "2023-09-13T10:18:43.351Z", "name" : "Heado / Аналитика / Десктоп+веб / Сброс фильтров при листании по показателям", "notes" : "По идее, надо сохранять выбранный фильтр при переходах по левому списку\n\nhttps://app.asana.com/app/asana/-/get_asset?asset_id=1205461983377507\n\n\n", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205461983377504", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205563640983439", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : true, "completed_at" : "2023-10-31T06:02:01.252Z", "created_at" : "2023-09-26T04:38:33.276Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1202395304416764", "name" : "Backlog", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T06:02:01.328Z", "name" : "Heado / Типы данных в кастомных формах отчётов / photo vs image", "notes" : "type:photo - тип для фотографий \"только с камеры\", активирует сразу камеру с автоматической вставкой снимка. \n\ntype:image - \"изображение с устройства\", просто выбор из эксплорера без ограничений.", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205563640983439", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } }, { "gid" : "1205836699912698", "actual_time_minutes" : null, "assignee" : null, "assignee_status" : "upcoming", "completed" : false, "completed_at" : null, "created_at" : "2023-10-31T11:51:51.677Z", "due_at" : null, "due_on" : null, "followers" : [ { "gid" : "547756841476", "name" : "Cyrill Gafarov", "resource_type" : "user" } ], "hearted" : false, "hearts" : [ ], "liked" : false, "likes" : [ ], "memberships" : [ { "project" : { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" }, "section" : { "gid" : "1202395304416764", "name" : "Backlog", "resource_type" : "section" } } ], "modified_at" : "2023-10-31T11:53:41.006Z", "name" : "Рефакторинг / Перевод фильтров задач на уровень ядра", "notes" : "", "num_hearts" : 0, "num_likes" : 0, "parent" : null, "permalink_url" : "https://app.asana.com/0/201687425733831/1205836699912698", "projects" : [ { "gid" : "201687425733831", "name" : "Client Apps & Mobile", "resource_type" : "project" } ], "resource_type" : "task", "start_at" : null, "start_on" : null, "subtasks" : [ ], "tags" : [ ], "resource_subtype" : "default_task", "workspace" : { "gid" : "547756841482", "name" : "Atomic munkeys", "resource_type" : "workspace" } } ] }