Django admin app for Pelican blogs.
Project description
pelican_admin
pelican_admin was developed to assist you manage your Pelican blog.
This is a beta release and will have upcoming new features.
Usage
Insert pelican_admin to the end of your INSTALLED_APPS in settings.py:
INSTALLED_APPS = ( ... 'pelican_admin', ... )
Now, you must tell pelican_admin what’s the path to you pelican blog. In your settings.py you must add:
PELICAN_PATH = '/path/to/your/blog' PELICAN_SETTINGS = 'your_pelican_settings.py # The default value is 'pelicanconf.py' PELICAN_BIN = 'pelican' # Path to pelican executable. Default value is '/usr/local/bin/pelican'
Don’t forget to sync your db with:
python manage.py syncdb
Or, if you’re using south:
python manage.py migrate pelican_admin
pelican_admin is already set to run Pelican’s service for you. It’ll be running in the autoreload mode in the background.
If you’re using django-admin-tools there’s a module available where you can manage your pelican service via admin interface. Add pelican_admin to your urls.py:
import pelican_admin url_patterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^admin_tools/', include('admin_tools.urls')), ... ) urlpatterns += pelican_admin.pelican_urls()
And finally, add pelican_admin’s module to your dashboard.py:
from pelican_admin.modules import PelicanAdmin class CustomIndexDashboard(Dashboard): def init_with_context(self, context): ... self.children.append(PelicanAdmin())
This module is super useful not only to check Pelican’s service status, but also to reload it if any change you made doesn’t load.
If you experience any troubles in this step and your django-admin-tools interface is scrambled, you may have too many modules in your dashboard. I never found out why, but my experience with django-admin-tools never allowed lots of modules, so just try removing some things you don’t use.
The Looks
This is how pelican_admin’s module for django-admin-tools looks like when enabled:
New Features
Metadata management: Now you can manage your posts’ metadatas via interface since, now, they’re attributes of your posts.
Category model: Though category is just another post metadata, it was made to be an model to ease filtering, insertion, etc.
View Draft button: In the blog post edit page there’s a new button called View Draft to help you visualise the post you’re writing in your blog. It simply set the status metadata as draft in that post.
Better post management: Blog posts had a very bad management earlier. Now the model list page has filters, more fields being displayed, search, date hierarchy, etc.
Bugfixes
Encoding issues: Some people were experiencing encoding issues when pelican_admin attempted to write special characters. Some of it were solved, but if you find any mode problems, please, let me know.
Slow build: Due to poor programming, pelican_admin was taking a very long time to run it’s __init__.py
Known Issues
pelican_admin is running Pelican’s service in background as a subprocess, but I wasn’t able to kill it when python dies. Currently there’s a method registered in atexit therefore, if python dies normally, the background service is killed with no trouble, but if python crashes, the method registered isn’t called and Pelican’s service may still be running in background.
Other than that, when you’re running Django in “development mode” (manage.py runserver), every time you update a Setting in pelican_admin, Django is reloading. I’m still to find out why.
If pelican raises an Exception from within it’s Generators, pelican_admin thinks it’s still running since the subprocess doesn’t die, even though it’s running in the background. When an Exception like that occurs, pelican’s process simply halts.
Old Features
Settings management: change your pelican settings through Django admin and have it automatically working.
Posting management: CRUD for blog postings via interface.
Service management: Manage your pelican service through the admin interface
Internationalization: pelican_admin is localizable. Currently only pt_BR and en_US are officially supported.
Requirements
Installation
I’ll just assume you’re already familiarised with pelican and move on.
Install using pip:
pip install pelican_admin
Or you can clone the project and install it via:
python setup.py install
Migration From Older Versions
When you migrate, whether installing from pip or cloning the repository, do not forget to sync the app. You can either do it through Django or using south, though south is better because you won’t lose any data.
Check This Out
Contact
If you have any comments, ideas questions, feedback, etcetera, email me and we’ll be in touch. I’m flavio@vieiracaetano.com
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.
Source Distribution
File details
Details for the file pelican_admin-0.3.tar.gz
.
File metadata
- Download URL: pelican_admin-0.3.tar.gz
- Upload date:
- Size: 63.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09381f15359e20fc558713dd4a55f4429a8ae535e874fd8d2ee06b14fce493c9 |
|
MD5 | 9f133eefa2f39fe5c2727f5e817db6c0 |
|
BLAKE2b-256 | 4d73b1ee92b52639d2b7120d397ef6213ba4baa01bead27f731893d9091eacb2 |