Calloway introduction
-
date post
18-Oct-2014 -
Category
Technology
-
view
2.009 -
download
1
description
Transcript of Calloway introduction
![Page 1: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/1.jpg)
It builds the boring stuff,
so you can build the cool stuff
Friday, June 25, 2010
![Page 2: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/2.jpg)
Websites are mostly
“infrastructure”
The fun stuff
Caching
Taxonomies
Media Handling
Staff Management
User Management
Server Configuration
Unique
Features
The boring stuff
Friday, June 25, 2010
![Page 3: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/3.jpg)
Web teams
have their own ways of
doing things
Friday, June 25, 2010
![Page 4: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/4.jpg)
A builder of boring stuff for
opinionated developers
Calloway
Friday, June 25, 2010
![Page 5: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/5.jpg)
Principles
• Integration without dependency
• User interface for content managers is
important
• Easy customization through overrides
and fallbacks
• So simple a designer could do it
Friday, June 25, 2010
![Page 6: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/6.jpg)
Integration Without
Dependency
Friday, June 25, 2010
![Page 7: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/7.jpg)
if 'staff' in global_settings.INSTALLED_APPS: from staff.models import StaffMember as AuthorModelelse: from django.contrib.auth.models import User as AuthorModel
from django.conf import settingsfrom django.db.models import get_modelAUTHOR_MODEL = getattr(settings, 'STORY_AUTHOR_MODEL', 'auth.user')AuthorModel = get_model(AUTHOR_MODEL.split('.'))
authors = models.ManyToManyField(AuthorModel, verbose_name=_('Authors'), blank=True, null=True)
Dynamic Relations
Integrate with
another app, if
available.
Or allow the
developer to
decide.
Either way,
implementation is
still simple.
Friday, June 25, 2010
![Page 8: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/8.jpg)
if 'categories' in global_settings.INSTALLED_APPS: HAS_CATEGORIES = True from categories.fields import CategoryM2MField, CategoryFKFieldelse: HAS_CATEGORIES = False
if HAS_CATEGORIES: primary_category = CategoryFKField( related_name='primary_story_set') categories = CategoryM2MField(blank=True)
Optional Features
Friday, June 25, 2010
![Page 9: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/9.jpg)
Other Add-ons
Rich Text Editing
Positioning of
content
Some applications can simply augment
others, without modification
Friday, June 25, 2010
![Page 10: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/10.jpg)
User Interface for
Content Managers is
Important
Friday, June 25, 2010
![Page 11: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/11.jpg)
You can make your own dashboard modules
Friday, June 25, 2010
![Page 12: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/12.jpg)
Menus are easily
customized by project
Friday, June 25, 2010
![Page 13: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/13.jpg)
We took the edit inline to a new level
Friday, June 25, 2010
![Page 14: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/14.jpg)
Still a few CSS issues
The quick edit form is specified in admin.py
Friday, June 25, 2010
![Page 15: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/15.jpg)
Icon sets are included!
Friday, June 25, 2010
![Page 16: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/16.jpg)
A lightbox view of images only makes sense
Friday, June 25, 2010
![Page 17: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/17.jpg)
Many-to-Many Generic Relations
Friday, June 25, 2010
![Page 18: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/18.jpg)
Allows for different presentations...
Friday, June 25, 2010
![Page 19: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/19.jpg)
...of related content
Friday, June 25, 2010
![Page 20: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/20.jpg)
Easy customizations
through overrides and
fallbacks
Friday, June 25, 2010
![Page 21: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/21.jpg)
Overriding Settings
Calloway settings.py
ADMIN_MEDIA_PREFIXAPPEND_SLASH
AUTHENTICATION_BACKENDSMEDIA_ROOT
MIDDLEWARE_CLASSESROOT_URLCONFSITE_ID
TEMPLATE_CONTEXT_PROCESSORS
Friday, June 25, 2010
![Page 22: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/22.jpg)
Overriding Settings
Project settings.py
from calloway.settings import *
AUTHENTICATION_BACKENDSMEDIA_ROOT
from local_settings import *
Calloway settings.py
ADMIN_MEDIA_PREFIXAPPEND_SLASH
AUTHENTICATION_BACKENDSMEDIA_ROOT
MIDDLEWARE_CLASSESROOT_URLCONFSITE_ID
TEMPLATE_CONTEXT_PROCESSORS
Friday, June 25, 2010
![Page 23: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/23.jpg)
Overriding Settings
Project settings.py
from calloway.settings import *
AUTHENTICATION_BACKENDSMEDIA_ROOT
from local_settings import *
Calloway settings.py
ADMIN_MEDIA_PREFIX APPEND_SLASH
AUTHENTICATION_BACKENDSMEDIA_ROOT
MIDDLEWARE_CLASSESROOT_URLCONFSITE_ID
TEMPLATE_CONTEXT_PROCESSORS
local_settings.py
MEDIA_ROOT
Friday, June 25, 2010
![Page 24: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/24.jpg)
So simple a designer
could do it
talented
Friday, June 25, 2010
![Page 25: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/25.jpg)
Calloway App
Pieces of Calloway
Internal snippets
Default Templates
Default Settings
External App
References
Project Creation
Template Project
start_project.py
Friday, June 25, 2010
![Page 26: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/26.jpg)
Typical Workflow
• Execute start_project.py
• Answer questions
• Modify application bundles in INSTALLED_APPS
• Execute generate_reqs
• Execute pip install -r setup/requirements.txt
Friday, June 25, 2010
![Page 27: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/27.jpg)
Details
• In production, but still a bit alpha
• Apache 2.0 license
• www.callowayproject.com
• github.com/callowayproject
Friday, June 25, 2010
![Page 28: Calloway introduction](https://reader033.fdocuments.in/reader033/viewer/2022051311/5442d584b1af9f390a8b47ad/html5/thumbnails/28.jpg)
More Details
• [email protected], @coordt
• opensource.washingtontimes.com
• github.com/coordt
• github.com/washingtontimes
Friday, June 25, 2010