Корзина для удаленных записей

Пишите ваши предложения здесь.
iddqd
Сообщения: 69
Зарегистрирован: 07 дек 2015, 08:12

Корзина для удаленных записей

Сообщение iddqd »

Думаю не нужно объяснять для чего. Мало ли кто и что из нерадивых сотрудников случайно (или специально) удалит. Хотелось бы иметь возможность восстановления записи. И да, бэкапы делаю ежедневно )
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Корзина для удаленных записей

Сообщение support »

Из за того что нету функционала "Корзина" нету и многострочного удаления:)
Когда то будет, в планах уже давно весит.
Аватара пользователя
nikorn
Сообщения: 252
Зарегистрирован: 02 апр 2016, 22:26
Имя: Корняков Никита
Откуда: РФ, Ярославль
Организация: Тяжмаштрейд
Контактная информация:

Re: Корзина для удаленных записей

Сообщение nikorn »

Вставлю свое лыко в строку. Хорошая система удаления записей реализована в 1С. Там понятия удаления нет, а есть понятие "пометить на удаление". При этом физически запись не удаляется, а просто в поле "Удаленная" записывается true. При этом запись автоматически отфильтровывается во всех запросах.

Чтобы физически удалить помеченные на удаление записи, у администратора системы есть обработка, которая проверяет базу данных на связность и удаляет записи, помеченные на удаление. Но эта операция довольно рискованная, поэтому выполняется редко и только при крайней нужде.

Я у себя во всех системах (в том числе, в Руководителе) реализую подобный подход. В каждой таблице есть логическое поле "Архив". Если запись не нужна, то просто отправляю ее в архив. По умолчанию установлены фильтры "Архив != true". При случае всегда можно посмотреть, что было сброшено в архив и вернуть обратно.
$Expert
Спонсор
Спонсор
Сообщения: 371
Зарегистрирован: 06 фев 2017, 23:32
Имя: Сергей
Откуда: Планета Земля

Re: Корзина для удаленных записей

Сообщение $Expert »

+ плюсую к пометке на удаление по аналогии с 1С. Сейчас реализовал у себя такой функционал в виде статуса у записи - "Пометить на удаление". Но при большой структуре добавлять и настраивать данное поле в каждой сущности трудо и времязатратно, поэтому было бы удобно иметь подобную функцию по умолчанию к создаваемым записям. И в правилах доступа правило - Помечать на удаление.
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Корзина для удаленных записей

Сообщение nruslan2 »

+1 за корзину (правда чтоб можно было ее и отключить,если не надо)
LelikSAN
Сообщения: 62
Зарегистрирован: 17 авг 2016, 10:33
Имя: Alex
Откуда: Россия

Re: Корзина для удаленных записей

Сообщение LelikSAN »

За.
как-то обсуждали этот вопрос viewtopic.php?f=3&t=1760&p=10433&hilit= ... %B2#p10433
Raffaello
Сообщения: 4
Зарегистрирован: 22 апр 2021, 09:26
Имя: Рафаэль
Откуда: РФ, Тольятти
Организация: ООО ЛАЙФМЕДИКАЛ

Re: Корзина для удаленных записей

Сообщение Raffaello »

Да, корзина удаленных записей очень нужна!
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Корзина для удаленных записей

Сообщение support »

Принял решение не делать корзину. Изначально я ее не сделал, сейчас все переделывать очень проблематично.
Выйти из положения можно с помощью видимости записей https://docs.rukovoditel.net.ru/index.php?p=82
Запрещаете пользователям удалять записи. Добавляете какой-то флаг, например "Архив" и пусках пользователи помещают записи в архив. С помощью правил видимости скрываете архивные записи для всех.
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1196
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Корзина для удаленных записей

Сообщение Fait »

support писал(а): 24 ноя 2021, 07:11 Принял решение не делать корзину. Изначально я ее не сделал, сейчас все переделывать очень проблематично.
Выйти из положения можно с помощью видимости записей https://docs.rukovoditel.net.ru/index.php?p=82
Запрещаете пользователям удалять записи. Добавляете какой-то флаг, например "Архив" и пусках пользователи помещают записи в архив. С помощью правил видимости скрываете архивные записи для всех.
Я у себя тоже делал пометки на удаление.
У меня есть флаг, фильтры по нему и 2 кнопки автоматизации.
Создавать это для каждой сущности реально долго. Очень долго.

Я вижу решение проблемы такое:
1) Сделать кнопку "В архив" рядом с кнопками Удалить, Изменить, Просмотр.
2) В настройках доступа сделать пункты "Архивировать", "Архивировать выбранные" "Восстанавливать" и "Восстанавливать выбранные" в том меню, где указывается, что пользователь может делать с записями (Обновить, Удалить выбранные и т.д.)
3) В базу данных во все таблицы app_entity_..... добавить поля "archieved" с численным типом (проще указать 1 или 0, чем true или false, но не в этом суть сейчас) и "date_archieved" с типом Дата и время
При создании сущности создавать автоматически это поле так же, как date_added, created_by, и т.д.
4) Тип поля сделать отдельный, например "fieldtype_archieved" для прописывания в типах полей в БД. Потом настраивать отображение и фильтрацию записей по этому признаку.
5) При редактировании или добавлении записи это поле не показывать никому, даже администратору. Но при этом его должно быть видно в фильтрах.
6) В настройках сущности сделать флаг "Разрешить архивацию", по умолчанию false.
При установке в true возможность архивации появится. (Примерно так, как это сделано сейчас в 3.0 с добавлением в избранное)

Будет очень удобно, это факт.

Что скажете? Насколько возможно всё это сделать?
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Корзина для удаленных записей

Сообщение nruslan2 »

Да все возможно) главное желание и время)

но описано как то сложновато - можно сделать намного проще!
плюс не описан алгоритм работы с корзиной!
Ответить