Customization

As more sites are built using Pinax, more best practices will emerge, but for now what we recommend is:

  • Always work off a stable release. The most current release is 0.7beta3.
  • Use the pinax-admin clone_project command.
  • Make necessary changes to the settings.py and urls.py files in your copied directory.
  • Change the domain and display name of the Site in the admin interface.
  • Develop your custom apps under your new project or anywhere on Python path.
  • Develop your own templates under your new project.

Choosing a Project

Pinax provides several projects to use as a starting point for customization. Depending on your development style, you may prefer one project over the other.

basic_project
This project comes with the bare minimum set of applications and templates to get you started. It includes no extra tabs, only the profile and notices tabs are included by default. From here you can add any extra functionality and applications that you would like.
cms_project_company

A very simple CMS that lets you set up templates and then edit content, including images, right in the frontend of the site.

The sample media, templates and content including in the project demonstrate a basic company website.

cms_project_holidayhouse

A very simple CMS that lets you set up templates and then edit content, including images, right in the frontend of the site.

The sample media, templates and content including in the project demonstrate a basic site for holiday house rentals.

code_project
This project demonstrates group functionality and the tasks, wiki and topics apps. It is intended to be the starting point for things like code project management where each code project gets its own wiki, task tracking system and threaded discussions.
intranet_project
This project demonstrates a closed site requiring an invitation to join and not exposing any information publicly. It provides a top-level task tracking system, wiki and bookmarks. It is intended to be the starting point of sites like intranets.
private_beta_project
This project demonstrates the use of a waiting list and signup codes for sites in private beta. Otherwise it is the same as basic_project.
sample_group_project
This project demonstrates group functionality with a barebones group containing no extra content apps as well as two additional group types, tribes and projects, which show different membership approaches and content apps such as topics, wiki, photos and task management.
social_project

This project demonstrates a social networking site. It provides profiles, friends, photos, blogs, tribes, wikis, tweets, bookmarks, swaps, locations and user-to-user messaging.

In 0.5 this was called complete_project.

pinax-admin clone_project

Pinax provides you with pinax-admin, a command line utility. With pinax-admin you can quickly generate a cloned project. For example, if you wanted to clone the basic_project you could simply do the following:

(pinax-env)$ pinax-admin clone_project basic_project mysite

Settings You Will (Possibly) Want To Override

Pinax-specific:

  • PINAX_THEME
  • CONTACT_EMAIL
  • URCHIN_ID
  • BBAUTH_APP_ID
  • BBAUTH_SHARED_SECRET
  • SITE_NAME
  • MAILER_PAUSE_SEND
  • SERVE_MEDIA
  • ACCOUNT_OPEN_SIGNUP
  • ACCOUNT_REQUIRED_EMAIL
  • ACCOUNT_EMAIL_VERIFICATION
  • EMAIL_CONFIRMATION_DAYS
  • LOGIN_REDIRECT_URLNAME

General to Django:

  • DEBUG
  • TEMPLATE_DEBUG
  • LOGGING_OUTPUT_ENABLED
  • ADMINS
  • MANAGERS
  • DATABASE_ENGINE
  • DATABASE_NAME
  • DATABASE_USER
  • DATABASE_PASSWORD
  • DATABASE_HOST
  • TIME_ZONE
  • SECRET_KEY
  • DEFAULT_FROM_EMAIL
  • SERVER_EMAIL
  • SEND_BROKEN_LINK_EMAILS
  • EMAIL_HOST
  • EMAIL_HOST_USER
  • EMAIL_HOST_PASSWORD
  • EMAIL_SUBJECT_PREFIX
  • LOGIN_URL

base.html versus site_base.html

In the sample projects, templates/base.html is intended for overall page structure whereas templates/site_base.html is intended for adding site-specific content that is to be found on all pages (things like logo, navigation or footers).

If you are writing a theme to be used across multiple sites, you should modify base.html, not site_base.html. If you want to keep a particular theme but modify content for a specific site, you should modify site_base.html.

Changing Avatar/Gravatar defaults

By default Pinax assigns to users the Gravatar icon and uses the Gravatar icon system. If you want your own personal site avatar default, simply go to the settings.py in your project root and add these two lines of code:

# avatar controls
AVATAR_DEFAULT_URL =  MEDIA_URL + '<our_custom_avatar.jpg>'
AVATAR_GRAVATAR_BACKUP = False

Adding Tabs

See Tab Navigation