Skip to main content

Create an agenda on top of djangocms-blog!

Project description

Add an Agenda to your blog that displays upcoming events!

Easy! CheapFree! Not seen on TV!


Install

  • Install the package

    python3 -m pip install djangocms-blog-agenda
    
  • Add it in your INSTALLED_APPS:

    "djangocms_blog_agenda",
    "recurrence",
    
  • Run the migration:

    python3 manage.py migrate djangocms_blog_agenda
    
  • Update the djangocms-blog urls by the ones in this module, by using this lovely setting:

    BLOG_URLCONF = "djangocms_blog_agenda.patched_urls"
    
  • Create a new blog configuration.

    • Instance namespace: put what you want.
    • Application title: put what you want.
    • Object name: put what you want.
    • [...]
    • Click on Layout (Show):
      • [...]
      • Template prefix: djangocms_blog_agenda.

      That's very important since this application will check this value multiple times (to update the queryset, to check the templates, to add the post extension "event date" only to the Agenda app...).

    • Save this config.
  • that's all folks!


Explanations/Views/Misc

  • A new Event date DateTime field has been added to blog posts that have the template prefix set to djangocms_blog_agenda.
  • A new post list view was created for the Agenda view, it includes all the posts where the event_date is set to a date in the future.
  • Another view is available at _("/past/"), that will display each post where the event_date is in the past.
  • The templates are not in djangocms_blog/templates anymore, but in djangocms_blog_agenda/templates. Something's not appearing on your templates? Try to edit the file in djangocms_blog_agenda/templates/!
  • We removed the mention of comments & liveblog in the admin form, because we're not using this.
  • We use some very special bits of code that are using some internal features of djangocms-blog (see misc.py, and apps.py). Try the module before pushing an update.

Config

Settings

DJANGOCMS_BLOG_AGENDA_HIDE_UPCOMING_EVENTS_AFTER_CHOICES

a tuple of choices describing when AgendaUpcomingEntriesPlugin will hide events.

Default choices are:

(
    ("start", _("just after event start date")),
    ("start+1h", _("1 hour after event start date")),
    ("start+4h", _("4 hours after event start date")),
    ("start+1d", _("1 day after event start date")),
    ("start+2d", _("2 days after event start date")),
    ("start+3d", _("3 days after event start date")),
    ("start+7d", _("7 days after event start date")),
    ("end", _("just after event end date")),
)

DJANGOCMS_BLOG_AGENDA_RECURRENCE_MAX_DAYS_SEARCH

a number of days (int) to limit the search of recurring events. Defaults to 365.

Multisite

This modules handles multisite just fine; just add BLOG_MULTISITE = True in your settings, and our module will inject the get_site function directly inside the class returned by get_user_model()! (it is done in AppConfig ready() method)

You will then need to create a new "Global Page Permission" entry with your user/group, and to select the site where the user/group will have the right to post new articles/agenda posts.

If you're curious about this function, here it is.

Recurrences

Recurring events are handled with the help of django-recurrence package. Only the first event is saved into database, and following recurring events are added into querysets just before they are displayed. Only events that occurs n days after the first event are displayed. You can change this n with the setting DJANGOCMS_BLOG_AGENDA_RECURRENCE_MAX_DAYS_SEARCH.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djangocms_blog_agenda-0.9.2.tar.gz (34.9 kB view details)

Uploaded Source

Built Distribution

djangocms_blog_agenda-0.9.2-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

File details

Details for the file djangocms_blog_agenda-0.9.2.tar.gz.

File metadata

  • Download URL: djangocms_blog_agenda-0.9.2.tar.gz
  • Upload date:
  • Size: 34.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for djangocms_blog_agenda-0.9.2.tar.gz
Algorithm Hash digest
SHA256 c61ca2f4811c42667d06d38855c03678f0131607478e86abfe2094bc6c5e20ab
MD5 fba57e41214f61fe75ea736314b87403
BLAKE2b-256 85dde229e3e295ce1f9ad2d318e1283229333180a94429a344882bfe0bdb32ab

See more details on using hashes here.

File details

Details for the file djangocms_blog_agenda-0.9.2-py3-none-any.whl.

File metadata

File hashes

Hashes for djangocms_blog_agenda-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 75f9503453e20abef417ba28dea2b02ac50049d1bdec117c5e18107d9764ea49
MD5 4c41941ca62600be6a49b70c8534fa44
BLAKE2b-256 4dc8e70da82a8ca6c9ee171f5638bc488d248a147fe098e81e732f75f2beb34a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page