image

Всем привет

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



Получилось как-то так:

image

Недолго думая и сдав с чистой совестью проект, я решил показать Django-сообществу свое творение. Pull Request в официальном репозитории Django вызвал бурное обсуждение, к которому присоединились core-девелоперы. В итоге было решено, что внешний вид действительно стоит обновить, но не ассоциировать интерфейс с «брендовым» сайтом Django, а сохранить прежнюю узнаваемую цветовую схему.

На сей раз я решил не спешить и проработать все возможные ситуации. Специально для этого в марте мною был создан апп django-flat-theme, благодаря которому удалось собрать фидбэк пользователей (апп установили даже на djangoproject.com) и улучшить первоначальные задумки.

К августу после продолжительной дискуссии в сообществе django-developers мой Pull Request с новой темой для админки был замерджен в мастер-ветку Django, а еще через некоторое время по многочисленным запросам пользователей старые GIF-иконки были заменены на SVG. Таким образом Django-админка впервые за 10 лет претерпит серьезные изменения.

image

Кстати говоря, переход на SVG-иконки тоже вызвал в коммьюнити большое обсуждение, результатом которого стал отказ от поддержки IE8 начиная с версии Django 1.9, из-за чего также решено было обновить jQuery c 1.11 до 2.1.4.

Новый внешний вид интерфейса админки, вероятно, затронет сторонние приложения. Однако хорошая новость в том, что изменения в плане кода коснулись только CSS-файлов (за исключением пары HTML-шаблонов, где пришлось поменять названия иконок). Если у вас есть свои приложения, советую посмотреть на них локально в новом виде. Сделать это можно двумя способами:

  • установить пакет django-flat-theme в свой проект
    pip install django-flat-theme
  • обновить Django из master-ветки
    pip install git+https://github.com/django/django.git@master --upgrade

Не стесняйтесь сообщать о найденных в новом интерфейсе багах. Сделать это можно либо создав Issue в django-flat-theme, либо непосредственно в баг-трекере Django. Бета-версия Django 1.9 выйдет 19 октября, до этого момента еще останется возможность исправить найденные ошибки. Большое спасибо.

Комментарии (29)


  1. 4umak
    05.09.2015 04:32

    Хотелось бы кликабельных скриншотов:) А так, похоже, что работа отличная.


    1. danSamara
      05.09.2015 08:43
      +3

      Вот здесь есть скрины.

      Пусть и тут будут:
      image
      image
      image
      image


    1. walkman7
      05.09.2015 10:20
      +1

      Для этих целей (получение полноразмерной картинки) я использую расширение http://tiny.cc/Imagus


  1. ad3w
    05.09.2015 05:45
    +1

    А зачем такие огромные отступы по бокам?


    1. Chode
      05.09.2015 10:05
      +1

      Там и между модулями не меньше отступы, при больших объемах данных придется ужимать красоту


    1. elky
      05.09.2015 12:00
      +2

      Подскажите, какие именно отступы вы имеете в виду?


  1. freylis
    05.09.2015 05:53
    +6

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


  1. Phizio
    05.09.2015 09:16
    +3

    эхх… когда уже у modx будет бутстрапная адаптивная админка… )) а то только поделки отдельных товарищей гуляют по сети… Автору данной статьи респект за то, что его PR взят в официальную ветку разработки, сам на Джанго не кодил, но это явно признак достойной работы. К тому же в союзе с авторами движка у вас есть реальные перспективы сделать законченное решение, а не костыль) так держать!


  1. armo
    05.09.2015 14:19
    +1

    Молодец! Спасибо! Уже несколько месяцев используем django-flat-theme и очень довольны.


  1. pacahon
    05.09.2015 21:20
    +1

    Что же оно так плохо гуглилось. Хорошо, что можно установить не дожидаясь 1.9 Спасибо.


  1. ZoomLS
    05.09.2015 21:24
    +4

    >>Вероятно многие из нас сдавая очередной Django-проект ловили себя на мысли о том, что интерфейс администратора выглядит, мягко говоря, непрезентабельно и несовременно.

    Обычно просто использовали нестандартные, например Grappelli.


    1. ZoomLS
      05.09.2015 22:05
      +2

      Но, вообще, радует очень, что стандартная обновится наконец! Спасибо!


  1. kesn
    06.09.2015 18:00

    Знаете, чёрт с ними, с красивостями. Я всё удивляюсь, почему в джанге никак не запилят автокомплит полей, как в django-grappelli. У меня вот интернет-магазин, и не дай бог где-нибудь в админке я вставлю поле Foreign Key на модель «товар» — джанго услужливо создаст со списком из двух тысяч товаров. Ну или например ещё кейс: в инлайн формах можно создать инстанс, удалить инстанс, а выбрать существующий нельзя.
    Ну а так красиво, вы молодец! Сейчас если нужно «не стыдно заказчику показать» — ставьте django-grappelli.


    1. kesn
      06.09.2015 18:01

      * создаст select со списком


    1. elky
      06.09.2015 23:22

      почему в джанге никак не запилят автокомплит полей

      Я бы тоже хотел такое. Создайте тикет в баг-трекере Django, я думаю, за эту фичу проголосует немало народу.

      Сейчас если нужно «не стыдно заказчику показать» — ставьте django-grappelli.

      Если честно, я бы и стили django-grappelli перепилил :) Старомодно стал выглядеть для 2015 года.


    1. glader
      08.09.2015 20:34
      +1

      джанго услужливо создаст со списком из двух тысяч товаров

      raw_id_fields


      1. kesn
        09.09.2015 07:34

        Вы любите пожёстче? :)


        1. glader
          09.09.2015 08:55

          Я не люблю списки на две тысячи товаров :)


          1. syschel
            10.09.2015 23:17

            А на 1кк товаров или список городов планеты? :-)
            Я тоже использую raw_id_fields, но вот для полей «страна» — «город», пришлось для админки небольшую функцию вывода писать.


            1. glader
              11.09.2015 00:00

              Вот тут я тебя не понял. raw_id_fields открывает отдельное окно, там и фильтры, и поиск. Зачем что-то еще делать?


              1. syschel
                11.09.2015 19:11

                Мне нужно было при выборе страны, подгружать её города. Что бы в профиле заполнить два поля «страна» и «город». Городов 39 584


                1. glader
                  11.09.2015 19:17

                  Ага, так понятнее, спасибо. Два поля сразу — это действительно нестандарт.


  1. artifex
    06.09.2015 22:59
    +3

    Это не новый дизайн, это точно такая же админка с обновлёнными стилями.


  1. phoenixweiss
    07.09.2015 10:30

    Вот мне интересно, почему никуда не попадают крутые админки с Темфореста? Я имею ввиду почему до сих пор при таком количестве контента, многие современные фреймворки до сих пор пользуются админками образца начала 2000-х?

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

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


    1. magic4x
      07.09.2015 14:15

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


      1. phoenixweiss
        07.09.2015 14:41

        В этом есть доля правды, однако например для админок рельсовых проектов используем свои наработки на базе третьего бутстрапа. За два с половиной года менялись только версии гемов:

        gem 'font-awesome-rails'
        gem 'bootstrap-glyphicons'
        gem 'bootstrap-sass'
        

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


  1. magic4x
    07.09.2015 14:30

    Рано обрадовался. Открыл админку, а там и половины привычного не влезло. Комрад, благодарю за работу, но «рабочий» интерфейс, на мой вкус, не должен быть таким «распухшим» — боюсь, скролл сломается.


    1. magic4x
      07.09.2015 14:37
      +1

      Ну и раз пошла такая пьянка, и стили все равно заменят, имеет смысл решить подобные казусы (снизу решение граппелли):


      1. elky
        07.09.2015 17:05
        +1

        Спасибо за отзыв, попробую протолкнуть эту идею. Так действительно удобнее и компактнее. О результатах сообщу :)