/django-schedule

A calendaring app for Django. It is now stable, Please feel free to use it now. Active development has been taken over by bartekgorny.

Primary LanguagePython

Django-schedule

A calendaring/scheduling application, featuring:

  • one-time and recurring events
  • calendar exceptions (occurrences changed or cancelled)
  • occurrences accessible through Event API and Period API
  • relations of events to generic objects
  • ready to use, nice user interface
  • view day, week, month, three months and year
  • project sample which can be launched immediately and reused in your project

See see wiki page for more.

Installation

Download the code; put in into your project’s directory or run

python setup.py install
to install system-wide.

REQUIREMENTS: python-vobject (comes with most distribution as a package).

Settings.py

REQUIRED

INSTALLED_APPS – add:
‘schedule’

TEMPLATE_CONTEXT_PROCESSORS – add:
“django.core.context_processors.request”

Optional

FIRST_DAY_OF_WEEK

This setting determines which day of the week your calendar begins on if your locale doesn’t already set it. Default is 0, which is Sunday.

OCCURRENCE_CANCEL_REDIRECT

This setting controls the behavior of :func:`Views.get_next_url`. If set, all calendar modifications will redirect here (unless there is a `next` set in the request.)

SHOW_CANCELLED_OCCURRENCES

This setting controls the behavior of :func:`Period.classify_occurence`. If True, then occurences that have been cancelled will be displayed with a css class of canceled, otherwise they won’t appear at all.

Defaults to False

CHECK_PERMISSION_FUNC

This setting controls the callable used to determine if a user has permission to edit an event or occurance. The callable must take the object and the user and return a boolean.

Default:


check_edit_permission(ob, user):
return user.is_authenticated()

If ob is None, then the function is checking for permission to add new events

GET_EVENTS_FUNC

This setting controls the callable that gets all events for calendar display. The callable must take the request and the calendar and return a `QuerySet` of events. Modifying this setting allows you to pull events from multiple calendars or to filter events based on permissions

Default:


get_events(request, calendar):
return calendar.event_set.all()