Extension for default template system for making inheritance more flexible. Adding some kind of themes.
Project description
Extension for default template system for making inheritance more flexible. Adding some kind of themes.
Usage
Imagine you have several sites on different hosts. They differ by visually and small functional. django-vest this is a way to use one code base for this situation.
He allowing to split templates on themes - one per site. We also have extended inheritance between themes - we have DEFAULT_THEME and we can override each template in CURRENT_THEME. Exmaple:
{% extends 'DEFAULT_THEME/index.html' %}
{% block page_title %}Dark theme{% endblock %}
django-vest have some tools for logic splitting according by CURRENT_THEME in views. Assume we have some form class who is different in each theme. Then our code may looks like:
# forms.py
from django_vest.decorators import themeble
@themeble(name='Form', themes=('dark_theme',))
class DarkThemeForm(object):
''' Some kind of logic/fields for dark_theme form
'''
name = 'DarkThemeForm'
@themeble(name='Form')
class DefaultForm(object):
''' Default logic/fields for all themes
'''
name = 'Default form'
# views.py
from .forms import Form
In example bellow Form class will be alias for DarkThemeForm if settings.CURRENT_THEME == 'dark_theme' otherwise it is DefaultForm.
Installation
$ pip install django_vest
And add next setting options to your settings.py:
TEMPLATE_LOADERS = (
'django_vest.templates_loaders.Loader',
'django.template.loaders.app_directories.Loader',
)
DEFAULT_THEME = 'main_theme'
# Unique for each host
CURRENT_THEME = 'dark_theme'
Then update structure of your templates like this:
exampleproject/templates/
├── dark_theme
│ └── index.html
└── main_theme
└── index.html
Contributing
Fork the django-vest repo on GitHub.
Clone your fork locally:
$ git clone git@github.com:your_name_here/django-vest.git
Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:
$ mkvirtualenv django-vest
$ cd django-vest/
$ python setup.py develop
Create a branch for local development:
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
When you’re done making changes, check that your changes pass the tests, including testing other Python versions with tox:
$ python setup.py test
$ make test-all
Commit your changes and push your branch to GitHub:
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
Submit a pull request through the GitHub website.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.