Pull to refresh

Comments 13

Необходимость делать миграцию ради кнопки "Наверх" это, конечно, круто!

На мой взгляд, оптимальным решением является создавать кнопку "Наверх" динамически с помощью JavaScript. На крайний случай, код кнопки можно вставить в базовый шаблон.

Согласен: если нужна одна статичная кнопка «Наверх», я бы тоже не стал ставить отдельный пакет с миграциями. Ссылка в базовом шаблоне или небольшой JavaScript здесь проще и правильнее.

Я рассматривал вариант, где всё настраивается только через settings.py и миграции не нужны. Но у кнопки довольно быстро набирается много параметров: отдельные настройки для сайта и админки, положение, размеры, мобильные переопределения, цвета и состояния, иконки, порог показа, поведение при прокрутке, столкновения с чатами и баннерами, настройки скрытия пользователем.

В итоге получился бы большой словарь в настройках проекта, который всё равно меняется только разработчиком и требует выкладки при каждой правке дизайна.

Поэтому для текущего варианта я выбрал конфигурацию в базе и Django Admin. Миграция делается один раз при установке, зато дальше кнопку можно менять без поиска кода: например, дизайнером или администратором сайта с нужными правами. Это удобно, когда изменили дизайн, добавили чат или cookie-баннер, а разработчик, который когда-то собирал интерфейс, уже не занимается этим проектом.

То есть пакет не пытается заменить пару строк JS в простом случае. Он рассчитан на сценарий, где кнопка становится настраиваемым компонентом сайта.

А вариант облегчённого режима без БД действительно имеет смысл. Если будет спрос на такой способ подключения, его можно сделать отдельным режимом с настройками через settings.py.

А миграция зачем нужна ? Так и не понял

В статье написано, что настройки кнопки сохраняются в базе. А еще можно настроить на разных страницах, разные кнопки, для этого тоже наверное база данных используется.

Да, именно для хранения конфигурации.

Миграция создаёт модели для профилей и ревизий настроек: отдельная конфигурация для сайта и Django Admin, черновики, публикация, откат, параметры внешнего вида и поведения, загруженные SVG-иконки.

При подключённом django.contrib.sites можно также сделать отдельный профиль для конкретного Site с общей конфигурацией как запасным вариантом.

Для простой статичной кнопки это, конечно, избыточно — её проще добавить вручную. Здесь база нужна именно потому, что пакет рассчитан на настраиваемый компонент, который потом можно менять через админку без правок кода.

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

Первая секция - это для загрузки своих иконок. Вы добавили профили кнопки прокрутки и ревизии кнопки прокрутки? Если нет, вначале создаёте ревизию и цепляете её к профилю. Если остались вопросы - можно в ТГ обсудить или дальше в комментариях

Я сделал по статье. Добавил код, мигранул, увидел, что кнопка появилась и полез в админку. Там три секции, внутри пусто во всех. Получается профили и ревизии я не делал. Попробую вечером, дам обратную связь.

Ещё раз у себя проверил. Создаёте ревизию, из него профиль или отдельно. И когда ревизию сохраните, надо будет профиль ещё раз подредактировать и выбрать созданную вами ревизию. Да, немного косячно (ошибки проектирования с ИИ), но работает. Посмотрите пожалуйста, может ещё какие замечания всплывут и в новой версии всё исправлю

Мое мнение такое - эта штука не для админки. Она загромождает своим функционалом, ее настройки хочется видеть в settings. Админка - это про бизнес логику, а не frontend.

У этого подхода есть как свои плюсы, так и минусы. Из плюсов - можно оперативно менять дизайн кнопки без программиста. Например, чисто дизайнером.

Почему сразу не делал конфиг - настроек по количеству очень много и конфиг получился бы через чур объёмным, если говорим про settings.py. Была ещё мысль сделать настройки в админки и получить код для вставки в сеттингс на те значения, которые отличаются от дефолта, но опять же всё идёт к перезапуску сайта. Если будет спрос, то скорее всего это добавлю без проблем. Спасибо за отзывы! Если что, свои хотелки и пожелания на доработку можете через гитхаб отправлять.

А так приятный проект, все настраивается и работает из коробки. Спасибо!

Спасибо за отзыв! Обновил кнопку до версии 0.3.0. Добавил возможность свёртывания в боковой панели, добавил создание демо набора, который можно редактировать.

Sign up to leave a comment.

Articles