Экономика стран

К сожалению, большинство людей, которые будут ими затронуты почти весь мир, не будут иметь никакого влияния на результат. Вести Экономика Дайджест иностранной прессы за 14 августа.
Вести Экономика Греции снова придется списывать долги Греция не сможет самостоятельно расплатиться по долгам, и понадобится новая реструктуризация долгов, чтобы спасти страну от банкротства.

Wagtail 1.0 (бета) лучший Django CMS?

  1. Основные характеристики
  2. Способы настройки Wagtail Admin
  3. Страницы трясогузки
  4. Сложнее в трясогузке
  5. Изображения и документы
  6. Интерфейс Form Builder
  7. обрывки
  8. Лучшая особенность? Потоки контента
  9. Будущее трясогузки

Теперь, когда Wagtail CMS готовится к выпуску версии 1.0, я хотел потратить некоторое время, чтобы познакомить вас со всеми лучшими и наиболее гибкими на данный момент CMS Django. Трясогузка была вокруг некоторое время, но, кажется, не привлекает внимание, которое, я полагаю, заслуживает.

Недавно мы использовали Wagtail в ряде проектов, и общий опыт был великолепным. Он устанавливает правильный баланс, делая простые вещи легкими, а сложные - не только возможными, но и относительно легкими.

Основные характеристики

  • Нетехническое удобство для конечного пользователя. Пользовательский админ с отличным UI / UX
  • Прекрасно играет вместе с другими приложениями Django на вашем сайте
  • Простая настройка админки и брендинг
  • Гибкость моделей CMS для более структурированных данных, помимо наличия «Страницы»
  • Встроенная система Form Builder
  • Отличная поддержка изображений и документов / файлов и пользовательского интерфейса
  • StreamField для максимальной гибкости, позволяющей вам определять и организовывать небольшие блоки контента
  • Возможность организации вкладок администратора и макетов полей
  • Контроль / Гибкость того, какие модели страниц могут быть добавлены ниже определенных URL
  • Подключается к ElasticSearch для поиска
  • Совместим с Varnish и статическими генераторами сайтов, чтобы помочь с производительностью в масштабе

Интерфейс администратора

Посмотрим правде в глаза, администратор Django оставляет желать лучшего. Это очень CRUD-ориентированный и запутанный для всех, кроме самых технических пользователей. Даже придавая ей подтяжку лица с помощью таких пакетов, как Джанго Костюм или обменять его на что-то вроде Grappelli не совсем то, что хотят ваши конечные пользователи. Не поймите меня неправильно: оба этих пакета великолепны, и вы должны проверить их, но они оба просто не могут преодолеть все препятствия и боль, которые возникают при попытке настроить администратора Django после определенного момента.

Wagtail поставляется с собственным настраиваемым интерфейсом администратора, специально предназначенным для типичного рабочего процесса CMS. Проверьте это здорово промо видео о трясогузке, и вы поймете, что я имею в виду. Нет, серьезно, иди смотреть это. Я буду ждать.

Разве это не прекрасно выглядит? Моей первой мыслью, когда я впервые увидел видео Wagtail, было: «Хорошо, но держу пари, что настраивать его - огромная боль в…». К счастью, я все равно обернулся и обнаружил, что настройка администратора Wagtail на самом деле довольно проста.

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

О, и огромный бонус, который администратор может использовать на мобильных устройствах и планшетах!

Способы настройки Wagtail Admin

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

Настройка фирменного стиля администратора также является очень частой необходимостью. Специалисты часто не видят в этом смысла, но если вы можете на мгновение надеть шляпу конечного пользователя, то это кажется странным и часто сбивающим с толку посещать страницу входа на www.revsys.com, на которой написано «Добро пожаловать в Wagtail CMS Admin» ,

Если вы установите Джанго-overextends вы можете легко настроить логотип, логин и приветственные сообщения, используемые CMS для соответствия ожиданиям вашего пользователя.

Для меня эти два варианта настройки - это то, что я ожидаю от CMS. Тем не менее, трясогузка идет дальше и дает вам крючки чтобы позволить гораздо более богатые настройки. Вы можете делать такие вещи, как:

  • Добавьте элементы в панель пользователя Wagtail, которая отображается для зарегистрированных пользователей в правой части страницы, так же, как панель инструментов Django Debug.
  • Добавление или удаление панелей с главной страницы администратора Wagtail
  • Добавить или удалить элементы сводки (страницы, документы, изображения и т. Д.) С домашней страницы
  • Используйте хуки для выполнения скрытых действий или, если вы хотите, чтобы ваши собственные настроенные ответы после создания, редактирования или удаления на странице
  • Добавьте свои собственные пункты меню администратора, которые могут перейти к любым представлениям Django или внешним URL-адресам, которые вы пожелаете.

) С домашней страницы   Используйте хуки для выполнения скрытых действий или, если вы хотите, чтобы ваши собственные настроенные ответы после создания, редактирования или удаления на странице   Добавьте свои собственные пункты меню администратора, которые могут перейти к любым представлениям Django или внешним URL-адресам, которые вы пожелаете

Я использовал эту последнюю возможность добавлять пункты меню администратора с большим успехом на TEDxLawrence.com , Нам нужен был способ, чтобы наш комитет спикеров мог просматривать представления спикеров, голосовать и делать комментарии. Вместо того, чтобы пытаться объединить все это в Django Admin или даже Wagtail Admin вселенной, я просто подключился к полностью настроенным представлениям на основе классов, чтобы дать мне полный сквозной контроль.

Страницы трясогузки

Большинство систем управления контентом работают вокруг концепции страницы, которая обычно имеет заголовок, своего рода краткое описание страницы, а затем и самого содержимого страницы. Многие из них предоставляют вам приятные инструменты для редактирования WYSIWYG, которые упрощают добавление заголовков, списков, полужирного шрифта и курсива.

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

С Wagtail вы создаете свои собственные модели, которые наследуются от его модели Page. Это дает вам возможность настраивать определенные поля для конкретных данных и в конечном итоге удаляет многие обычные махинации, которые вы проходите, чтобы вписать ваши концепции данных в видение мира вашей CMS.

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

Наша простая страница может выглядеть так:

из django.db Импорт моделей из wagtail.wagtailcore.models Страница импорта из wagtail.wagtailcore.fields Импорт RichTextField из wagtail.wagtailadmin.edit_handlers Импорт класса FieldPanel BlogPage (Page): sub_title = models. CharField (max_length = 500, пусто = True) опубликовано = модели. DateField () author = models. CharField (max_length = 100) резюме = модели. RichTextField (blank = True) body = models. RichTextField () close_content = models. RichTextField (blank = True) content_panels = [FieldPanel ('title'), FieldPanel ('sub_title'), FieldPanel ("опубликовано"), FieldPanel ("автор"), FieldPanel ("сводка"), FieldPanel ("тело") , FieldPanel ('closed_content')]

Wagtail автоматически настраивает некоторые поля для вас, такие как заголовок, фрагмент страницы, время начала / окончания видимости и поля, связанные с SEO / мета, поэтому вам просто нужно определить поля, которые вы хотите, помимо них.

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

Все, что вам нужно сделать, это добавить это в файл models.py приложения Django, запустить makemigrations и выполнить миграцию, и все готово.

Теперь давайте сделаем немного более сложную страницу персонала:

DEPARTMENT_CHOICES = ((«Администратор», «Администрация»), («Бухгалтерский учет», «Бухгалтерский учет»), («Маркетинг», «Маркетинг»), («Продажи», «Продажи»), («Инженер», «Инженерное дело» '),) class StaffPage (Page): first_name = models.CharField (max_length = 50) last_name = models.CharField (max_length = 50) active = models.BooleanField (default = True) start_date = models.DateField () end_date = models .DateField (blank = True, null = True) департамент = models.CharField (max_length = 50, choices = DEPARTMENT_CHOICES) email = models.EmailField () twitter = models.CharField (max_length = 50) short_bio = models.RichTextField (blank = True) bio = models.RichTextField (blank = True) Education = models.RichTextField (blank = True) work_history = models.RichTextField (blank = True) # Параметры панели оставлены для краткости

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

Довольно просто, верно? Вы, вероятно, думаете, что есть какой-то улов, к счастью, вы ошибаетесь Это действительно очень просто. Легкие вещи легко, верно?

Сложнее в трясогузке

Так что же сложного в трясогузке? Ну, это в основном просто знакомство с системой в целом. Несколько вещей, которые могут сбить вас с толку:

  • Вы не можете иметь поле с именем url в своих производных моделях, так как Wagtail использует это имя поля в модели родительской страницы. К сожалению, если вы добавите один, который я сделал больше раз, чем я хочу признать, вы получите не очень полезную ошибку « не могу установить атрибут » и больше ничего не делать.
  • На многих страницах типа листинга можно просто показать все элементы с нумерацией страниц в некотором хронологическом порядке. В других случаях пользователи хотят иметь возможность вручную отслеживать то, что отображается на указанных страницах. Wagtail делает это относительно легко, так как вы можете определить отношение ForeignKey, используя модель сквозного типа для других страниц, и использовать PageChoosePanel чтобы дать пользователю хороший интерфейс для этого. Пользователь также может вручную заказать их прямо в админке, никаких дополнительных работ не требуется.
  • Ограничение того, какие страницы могут быть созданы как дочерние (то есть ниже) страницы, можно обработать, установив список с именем parent_page_types в дочерней модели. Тогда он может быть добавлен только ниже страниц этих определенных типов. На сложных сайтах с большим количеством разных типов страниц это помогает пользователям выбирать варианты выбора и создания страницы на управляемом уровне. И это также, очевидно, помогает удерживать пользователей от создания неправильных типов страниц в неправильных частях сайта.
  • В настоящее время у Wagtail нет большой истории создания навигационных меню, но есть дюжина повторно используемых приложений Django, которые помогут справиться с этим. Часто меню сайта остается относительно статичным и не редактируется в любом случае.
  • Поддержка нескольких сайтов с одной и той же CMS. Это не технически сложно, но концептуально сложнее. Wagtail поддерживает наличие нескольких сайтов через приложение wagtailsites. Это работает так, что вы просто устанавливаете корневую страницу для каждого имени хоста, и она в основном берет ее оттуда. Тем не менее, в большинстве случаев, вероятно, проще и чище иметь два разных экземпляра Wagtail и использовать разные базы данных.

Изображения и документы

Документы - это файлы любого типа, которые вы хотите загружать в систему. Это обрабатывает любые ситуации, когда пользователю необходимо загрузить документ PDF, Excel или Word и иметь возможность ссылаться на него из любого другого содержимого.

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

С обоими документами и изображениями, имеющими поддержку тегов через Джанго-taggit и действительно красивый дизайн и UX для них в интерфейсе администратора.

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

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

Интерфейс Form Builder

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

Как и Pages, вы просто создаете подкласс Wagtail и определяете, какие поля вы хотите собрать. В вашей модели вы также можете переопределить метод process_form_submission, чтобы выполнить более сложную проверку или, в более распространенном случае, отправить по электронной почте заинтересованным сторонам информацию о новой отправке.

Одной из замечательных особенностей встроенного конструктора форм является интерфейс просмотра и загрузки. Просмотр полученных данных - это здорово, но вы просто знаете, что ваши пользователи захотят извлечь их и использовать для каких-то других целей. Трясогузка предвосхищает это и позволяет пользователю загружать представленные данные по диапазону дат в виде файла CSV в любое время.

обрывки

Отрывки трясогузки многократно используемые фрагменты контента, которые не являются полными веб-страницами. Часто они используются для таких вещей, как контент на боковой панели, реклама или призывы к действию.

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

Лучшая особенность? Потоки контента

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

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

Когда вы определяете StreamField на странице, вы задаете, какие типы блоков доступны для добавления в этот поток. Блок может быть чем-то таким же простым, как текстовое поле CharField, или таким же сложным, как запись типа Staff, как описано выше. типы структурных блоков ,

Затем конечный пользователь может добавить, скажем, несколько заголовков различных типов, несколько блоков содержимого расширенного текста и добавить все это к нескольким изображениям и кодовым блокам. Каждый из этих типов блоков, которые вы определяете, может затем иметь различные стили CSS и / или иметь разную структуру разметки, если это необходимо.

До того, как эта функция была добавлена ​​в 1.0, мне пришлось прибегнуть к сложным отношениям между страницами, которые на самом деле не были страницами, которые мы намеревались сделать видимыми на сайте. Мы просто перевернули страницу Выбор функций Wagtail, чтобы предоставить пользователям необходимую гибкость и сохранить все в одном интерфейсе администратора.

Вот как выглядит интерфейс администратора для StreamFields. Здесь мы определили поле с именем Body, которое имеет типы заголовков, содержимого и блоков кода. Каждая из этих строк представляет собой разные блоки. Верхний и нижний заголовки. Как видите, вы можете просто щелкнуть значки «плюс», чтобы добавить новые блоки между другими, или использовать стрелки справа для перемещения блока. В настоящее время их немного сложно увидеть из-за ошибки в CSS, которую я ожидаю быстро исправить.

В настоящее время их немного сложно увидеть из-за ошибки в CSS, которую я ожидаю быстро исправить

Будущее трясогузки

Я думаю, что у Wagtail ОЧЕНЬ светлое будущее в целом и особенно в сообществе Django. Тем не менее, как и в любом другом продукте 1.0, я бы хотел увидеть некоторые вещи в будущих версиях. Я надеюсь увидеть две основные вещи:

  • Коллекция сообщества высококачественных и гибких общих типов страниц и блоков, которые делают большинство сайтов более практичными, чем кодирование.
  • Возможность более легкой настройки и управления параметрами публикации / модерирования / сохранения в виде черновика, которые отображаются в нижней части экрана при редактировании содержимого. На многих небольших сайтах или сайтах с плоским рабочим процессом должно быть тривиально сделать действие «Опубликовать» или «Отправить на модерацию» действием по умолчанию, представляемым пользователю.

Разве это не прекрасно выглядит?
Вы просто засунете его в поле контента?
Довольно просто, верно?
Легкие вещи легко, верно?
Лучшая особенность?
Навигация сайта
Реклама
Панель управления
Календарь новостей
Популярные новости
Информация
Экономика стран www.mp3area.ru © 2005-2016
При копировании материала, ссылка на сайт обязательна.