Skip to main content

A Django calendaring application.

Project description

https://github.com/dakrauth/django-swingtime/workflows/Test/badge.svg https://badge.fury.io/py/django-swingtime.svg
Version:

1.2.1

Demo:

https://nerdfog.com/swingtime/

Download:

https://pypi-hypernode.com/project/django-swingtime/

Source:

https://github.com/dakrauth/django-swingtime

Documentation:

http://dakrauth.github.io/django-swingtime/

Welcome

Swingtime is a Django application similar to a stripped-down version of iCal for Mac OS X or Google Calendar.

Swingtime provides a models.Event model that acts as metadata container for one or more models.Occurrence objects, which describe specific start and end times.

Swingtime relies heavily upon both the datetime standard library package and the dateutil package, featuring direct support for the dateutil.rrule interface to create occurrences.

A fairly simple example:

>>> from datetime import *
>>> from swingtime import models as swingtime
>>> et = swingtime.EventType.objects.create(abbr='work', label='Work Related Events')
>>> evt = swingtime.Event.objects.create(
...     title='New TPS Cover Sheet',
...     description='Kiss off, Lumbergh!',
...     event_type=et
... )
>>> evt.add_occurrences(datetime(2018,3,18,16), datetime(2018,3,18,16,15), count=5)
>>> for o in evt.occurrence_set.all():
...     print(o)
...
New TPS Cover Sheet: 2018-03-18T16:00:00
New TPS Cover Sheet: 2018-03-19T16:00:00
New TPS Cover Sheet: 2018-03-20T16:00:00
New TPS Cover Sheet: 2018-03-21T16:00:00
New TPS Cover Sheet: 2018-03-22T16:00:00

A bit more elaborate example, using the the convenience function models.create_event:

>>> # pay day is the last Friday of the month at 5pm
>>> evt = swingtime.create_event(
...     'Pay day',
...     ('pay', 'Payroll'), # alternate means to add EventType on the fly
...     freq=rrule.MONTHLY,
...     byweekday=rrule.FR(-1),
...     until=datetime(2013,8,1),
...     start_time=datetime(2013,4,1,17)
... )
>>> for o in evt.occurrence_set.all():
...     print(o)
...
Pay day: 2013-04-26T17:00:00
Pay day: 2013-05-31T17:00:00
Pay day: 2013-06-28T17:00:00
Pay day: 2013-07-26T17:00:00

Demo

To view a demo, click here.

To run a local demo using Docker, do the following:

$ docker build -t swingtime .
$ docker run -p 8000:80 -d swingtime:latest

And browse to localhost:8000.

Features

  • Support for adding complex event occurrences via dateutil

  • Ready-made forms.MultipleOccurrenceForm for handling complex input

  • Daily, monthly, and annual view functions

  • Grid-based daily view generator, complete with alternating or sequential EventType CSS-class handling

  • Slightly better than average documentation, a few test cases, and commented code

  • Active support (I have to eat my own dogfood)

  • Built-in demo project / application

Requirements

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

django-swingtime-1.2.1.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

django_swingtime-1.2.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file django-swingtime-1.2.1.tar.gz.

File metadata

  • Download URL: django-swingtime-1.2.1.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3

File hashes

Hashes for django-swingtime-1.2.1.tar.gz
Algorithm Hash digest
SHA256 4607c20bb67225fb76fa4a48fd061fcd6c840bd927ec302bc2443b0f879d3335
MD5 e997f2664403c05c65001ab88e228be3
BLAKE2b-256 79e30c92de5e1ee642fe02b234e1037b1102961f28e4063626fcfbb0709761dc

See more details on using hashes here.

File details

Details for the file django_swingtime-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: django_swingtime-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3

File hashes

Hashes for django_swingtime-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40778163f864a85f87ebaf07627fe1484b7bdc62cde3377c797906d2491e2242
MD5 16f7018cc8c6f9724f4af80a0272080d
BLAKE2b-256 1ec4a6d95d4e02a1cb513077c739df33a1a8e3ec8aa06b0e8d566734a9cc99f2

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