Slide 1

Slide 1 text

A COMPREHENSIVE APPROACH BUILDING DJANGO CMS APPLICATIONS

Slide 2

Slide 2 text

HELLO, I AM IACOPO Founder and CTO @NephilaIt django CMS core developer @yakkys https://github.com/yakky

Slide 3

Slide 3 text

WHAT WILL WE DO? Models Apphooks URLs Wizard Settings Meta Tags

Slide 4

Slide 4 text

WHERE WILL WE START FROM? https://github.com/yakky/stupid-blog each branch contains a step of this workshop

Slide 5

Slide 5 text

HOW WILL WE WORK? Hands-on Interactive Very opinionated

Slide 6

Slide 6 text

IT'S CARDIFF I'm prepared for the unexpected Shoot questions Question my assumptions

Slide 7

Slide 7 text

READY? git clone https://github.com/yakky/stupid-blog python3 -m venv env . env/bin/activate pip install -r requirements-test.txt python cms_helper.py server --persistent

Slide 8

Slide 8 text

WHAT'S CMS_HELPER.PY ? djangocms-helper (https://github.com/nephila/djangocms-helper) Sample project Base test class / utility functions Presented @ PyCon Uk 2015 https://www.youtube.com/watch? v=VeNDS4MLyPQ

Slide 9

Slide 9 text

PARLER parler branch Optional - yet recommended Reusable apps ought to be translatable diff

Slide 10

Slide 10 text

BASIC APPHOOK apphook branch Load application from the admin Freely structure your content tree diff

Slide 11

Slide 11 text

TRANSLATING URLCONF urlconf branch if you used translatable models, why not the url paths? diff

Slide 12

Slide 12 text

APPHOOK CONFIGURATION apphook_config branch Configuring applications from the admin Per instance diff

Slide 13

Slide 13 text

DYNAMIC SETTINGS settings branch Easy test-overridable settings diff

Slide 14

Slide 14 text

AUTOSETUP apphook_setup branch Setting up diff

Slide 15

Slide 15 text

WIZARD wizard branch Helps editors interacting with content diff

Slide 16

Slide 16 text

TOOLBAR toolbar branch A good alternative to the admin More intuitive than the admin diff

Slide 17

Slide 17 text

FILTERING PUBLISHED POSTS toolbar branch Editors ought to see unpublished items before making them public A "consequence" of frontend editing diff

Slide 18

Slide 18 text

PLACEHOLDER placeholder branch PlaceholderField is the major django CMS you're going to use And it's trivial to implement diff

Slide 19

Slide 19 text

RENDER_MODEL render_model branch yet another feature to make content editors' life easier Tons of options Check docs http://django-cms.readthedocs.io/en/release- 3.3.x/how_to/frontend_models.html diff

Slide 20

Slide 20 text

META meta branch Adds metadata support to your models/views django-meta makes easier Check complete docs https://readthedocs.org/projects/django-meta/ diff

Slide 21

Slide 21 text

MORE? Plugins Menu Sitemap Full text indexes

Slide 22

Slide 22 text

GRAZIE! Follow me on: https://github.com/yakky https://github.com/nephila https://twitter.com/yakkys