Skip to main content

Overview

django-simple-events lets you bind your models to events. This events have the following configuration options:

  • beginning

  • time

  • frecuency: single time, daily, weekly, montly, yearly

  • interval: times between frecuencies

  • repetitions

  • end

The event occurrences are stored in the DB when an event gets saved. If you don’t specify a maximum repetitions number or the end datetime, the event occurrences are updated periodically with the update_occurrences command.

Instalation

Add events to your INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'events',
    ...
    )

Set EVENTS_MAX_FUTURE_OCCURRENCES to indicate the maximum of future occurrences to recolect in the DB if an event is endless

EVENTS_MAX_FUTURE_OCCURRENCES = 50

You can also set EVENTS_MAX_PAST_OCCURRENCES

Usage

In the following examples we are going to relate Study objects to events.

Models

If you want to access from Study the events, it’s recommendable to add a generic relation

from django.db import models
from django.contrib.contenttypes import generic
from events.models import Event

class Study(models.Model):
    ...
    events = generic.GenericRelation(Event)
    ...

API

Get the events related to a Study:

study = Study.objects.get(pk=1)
study.events.all()

Add an event to a Study:

from events.models import Event
from datetime import date, time

study = Study.objects.get(pk=1)
event = Event(date.today(), time.now())

event.related_object = study
event.save()

study.events.get(pk=event.pk)

Play with the occurrences of an event:

from events.models import Event

event = Event.objects.get(pk=1)

#get all the occurrences as an iter of datetimes
event.get_occurrences()

#get all of past occurrences as a list of datetimes
event.get_past_occurrences()

#get the last 20 past occurrences as a list of datetimes
event.get_past_occurrences(20)

#get the next 20 future occurrences as a list of datetimes
event.get_future_occurrences(20)

#update the Occurrence objects of an event
event.update_occurrences(event.get_occurrences)

#get the Occurrence objects of an event
event.occurrence_set.all()

#get all the Study objects that have occurrences in the future
from datetime import datetime
Study.objects.filter(events__occurrence__datetime__gt=datetime.now())

Admin

If, when you are editing a Study in admin, you want to also edit the related events, you are easilly done:

from django.contrib import admin

from events.admin import EventInline

class StudyAdmin(admin.ModelAdmin):
    ...
    inlines = EventInline,
    ...
admin.site.register(Study, StudyAdmin)

Forms

You can also use the event form:

from events.forms import EventForm

Metadata

Release files for django-simple-events 1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-simple-events 1.2
File Size Uploaded
django-simple-events-1.2.tar.gz 202.5 kB Details

Release files / django-simple-events-1.2.tar.gz

Download URL django-simple-events-1.2.tar.gz
Size 202.5 kB
Tags Source
SHA-256 checksum
How to use checksums
468f41de020e5547195bd752c2dc8afe6bf9639da92cf12b16462d66718c3ec6
BLAKE2b-256 checksum
How to use checksums
b6fbe2a410150b5183629d07449f76529adfebbe38b7053445941a8d62c73bbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.2 This release

1 release file

1.1

1 release file

1.0

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page