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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| django-simple-events-1.2.tar.gz | 202.5 kB | Without provenance | 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 |
Security for django-simple-events 1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.