Keeping things simpleΒΆ

Timezones? Views? Groups? Multiday-recurring events? All you wanted was a simple calendar of local one-off events! This tutorial will show you how to hide unneeded features to give your users a more streamlined interface.

In this example we will create a calendar for the gigs our band is playing.

  1. Install Wagtail and Joyous. (See the previous tutorial for details on that.)

  2. Create an application to hold the customisations we are going to make.

    $ ./ startapp gigs
  3. Add this application to your INSTALLED_APPS setting in mysite/mysite/settings/

  4. Edit gigs/ to have

    from ls.joyous.models import (MultidayEventPage, RecurringEventPage,
                                  MultidayRecurringEventPage, removeContentPanels)
    # Hide unwanted event types
    MultidayEventPage.is_creatable = False
    RecurringEventPage.is_creatable = False
    MultidayRecurringEventPage.is_creatable = False
    # Hide unwanted content
    removeContentPanels(["category", "tz", "group_page", "website"])
  5. Start your server

    $ ./ runserver

    And, point your web browser at http://localhost:8000/admin/.

  6. Select Home | Add child page, and add a Calendar page. (Or if you already have, select Edit for it.)

  7. Give the calendar a suitable Title etc.

  8. Select the Settings tab. Under VIEW OPTIONS | View choices untick the List View and Weekly View options.

Gigs Calendar
  1. Publish this.
  2. Add a child-page to your calendar. Notice how there is no need to select the event type, it goes straight to creating a new simple Event page.
NEW Event page
  1. Add a Title, Date and some Details. Notice how the user is not prompted for the fields Category, TZ, Group page, or Website due to the call to removeContentPanels in gigs/

  2. Publish your event. View the calendar again. Your event will be displayed on the date you set for it.

    Gigs Calendar

    Notice that the links for List View and Weekly View are not shown.

Hopefully your users will find this interface easy to use.