A simple event calendar app for Django.
Project description
An event calendar app for Django.
Features:
Repeating and non-repeating events
Events that start and end on different days
Support for cancelled events
Upcoming events list
AJAX support
Default CSS & Javascript to help you get started
Coming soon:
better integration of categories and tags
more views, including an agenda view
support for users
++ more
Note about upgrading from previous versions: Upgrading your version of the app is a good idea, but be aware that some updates to the app involve changes to models, which may cause problems with your database. For this reason I’ve included south migrations to help make upgrading easier. But you should always be cautious and make sure to backup your database before upgrading. To see a list of changes made for each version view the CHANGELOG.
Dependencies
Required:
Django 1.6+
Python 2.6+, 3+
pytz
Optional:
jQuery
Twitter Bootstrap 3.0.0+ (w/ tooltip plugin)
South (for database migrations)
jQuery is used for AJAX and the ‘Today’ button on the calendar.
TWBS is used to create popovers when an event is clicked on the calendar.
Quick Install
Install with pip:
$ pip install django-happenings
Add happenings to INSTALLED_APPS:
INSTALLED_APPS = (
...
'happenings',
)
Include the django-happenings URLconf in urls.py:
url(r'^calendar/', include('happenings.urls', namespace='calendar'))
Make sure your TIME_ZONE is set correctly in settings.py.
Run python manage.py migrate to create the models (replace migrate with syncdb happenings if using older Django without South). If you’re running MySQL, be sure that your database is properly configured to use time zones.
Run the development server and go to 127.0.0.1:8000/admin/ to create and manage events.
Check out the calendar at 127.0.0.1:8000/calendar/.
Customizing
The quickest way to begin customizing the app is to override the middle.html template by creating your own version in <mytemplates>/happenings/middle.html (replace <mytemplates> with wherever you keep your templates) and add the line {% extends 'base.html' %} (replace base.html with your base template). For a greater degree of customization, you can copy and paste into your project all of the templates included in the app, and change them to fit your needs.
Be sure to include the packaged css & javascript into your base template if you want to use them. Loading the default style into your template would look something like (assuming staticfiles has been loaded):
<link href=" {% static 'happenings/css/calendar.css' %}" rel="stylesheet">
And the default javascript something like:
<script src="{% static 'happenings/js/calendar.js' %}"></script>
Optional Settings
You can specify different settings for the app in your settings.py file.
Use CALENDAR_COLORS to add a custom color to the drop down in the admin when creating an event. Example of setting the custom color ‘fuchsia’:
CALENDAR_COLORS = [('ff00ff', 'fuchsia')]
Use CALENDAR_START_DAY to change the day on which the calendar starts. Example of starting the calendar on Sunday (instead of the default of Monday):
CALENDAR_START_DAY = 6
There are no translations from English yet, but if you’d like to display the calendar and the event list in a different language, you can use CALENDAR_LOCALE. The upcoming events list won’t be translated, though. For that you’ll need to specify your LANGUAGE_CODE in the Django settings. Also note that to use CALENDAR_LOCALE you’ll need to have the correct locale pack installed for your system. Example of changing the language to German:
CALENDAR_LOCALE = 'de_DE.utf8'
Default time format is “%I:%M%p” but it can be changed with next setting:
CALENDAR_TIME_FORMAT = '%H:%M'
Tests
Tox is used for testing.
$ pip install tox
$ tox -e py27-django16
More To Come!
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.