{ "info": { "author": "David A Krauth", "author_email": "dakrauth@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Office/Business :: Scheduling" ], "description": "Django Swingtime\n================\n\n.. image:: https://travis-ci.org/dakrauth/django-swingtime.svg?branch=master\n :target: https://travis-ci.org/dakrauth/django-swingtime\n\n.. image:: https://badge.fury.io/py/django-swingtime.svg\n :target: http://badge.fury.io/py/django-swingtime\n\n:Version: 1.1.0\n:Demo: https://nerdfog.com/swingtime/\n:Download: https://pypi.org/project/django-swingtime/\n:Source: https://github.com/dakrauth/django-swingtime\n:Documentation: http://dakrauth.github.io/django-swingtime/ \n\n\nWelcome\n-------\n\nSwingtime is a `Django `_ application similar to\na stripped-down version of iCal for Mac OS X or Google Calendar.\n\nSwingtime provides a ``models.Event`` model that acts as metadata container\nfor one or more ``models.Occurrence`` objects, which describe specific\nstart and end times.\n\nSwingtime relies heavily upon both the ``datetime`` standard library package and\nthe ``dateutil`` package, featuring direct support for the ``dateutil.rrule``\ninterface to create occurrences.\n\nA fairly simple example:\n\n.. code:: python\n\n >>> from datetime import *\n >>> from swingtime import models as swingtime\n >>> et = swingtime.EventType.objects.create(abbr='work', label='Work Related Events')\n >>> evt = swingtime.Event.objects.create(\n ... title='New TPS Cover Sheet',\n ... description='Kiss off, Lumbergh!',\n ... event_type=et\n ... )\n >>> evt.add_occurrences(datetime(2018,3,18,16), datetime(2018,3,18,16,15), count=5)\n >>> for o in evt.occurrence_set.all():\n ... print(o)\n ...\n New TPS Cover Sheet: 2018-03-18T16:00:00\n New TPS Cover Sheet: 2018-03-19T16:00:00\n New TPS Cover Sheet: 2018-03-20T16:00:00\n New TPS Cover Sheet: 2018-03-21T16:00:00\n New TPS Cover Sheet: 2018-03-22T16:00:00\n\nA bit more elaborate example, using the the convenience function ``models.create_event``:\n\n.. code:: python\n\n >>> # pay day is the last Friday of the month at 5pm\n >>> evt = swingtime.create_event(\n ... 'Pay day',\n ... ('pay', 'Payroll'), # alternate means to add EventType on the fly\n ... freq=rrule.MONTHLY,\n ... byweekday=rrule.FR(-1),\n ... until=datetime(2013,8,1),\n ... start_time=datetime(2013,4,1,17)\n ... )\n >>> for o in evt.occurrence_set.all():\n ... print(o)\n ...\n Pay day: 2013-04-26T17:00:00\n Pay day: 2013-05-31T17:00:00\n Pay day: 2013-06-28T17:00:00\n Pay day: 2013-07-26T17:00:00\n\nDemo\n----\n\nTo view a demo, `click here `_.\n\nTo run a local demo using Docker, do the following:\n\n.. code:: bash\n\n $ docker build -t swingtime .\n $ docker run -p 8000:80 -d swingtime:latest\n\nAnd browse to `localhost:8000 `_.\n\n\nFeatures\n--------\n\n* Support for adding complex event occurrences via ``dateutil``\n* Ready-made ``forms.MultipleOccurrenceForm`` for handling complex input\n* Daily, monthly, and annual view functions\n* Grid-based daily view generator, complete with alternating or sequential\n ``EventType`` CSS-class handling\n* Slightly better than average documentation, a few test cases, and commented code\n* Active support (I have to eat my own dogfood)\n* Built-in demo project / application\n\nRequirements\n------------\n\n* Python 3.5+\n* `Django 2.0+ `_\n* `python-dateutil `_.\n\n\n\n", "description_content_type": "text/x-rst", "docs_url": "https://pythonhosted.org/django-swingtime/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dakrauth/django-swingtime", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-swingtime", "package_url": "https://pypi.org/project/django-swingtime/", "platform": "any", "project_url": "https://pypi.org/project/django-swingtime/", "project_urls": { "Homepage": "https://github.com/dakrauth/django-swingtime" }, "release_url": "https://pypi.org/project/django-swingtime/1.1.0/", "requires_dist": [ "Django (<3.1,>=2.0)", "python-dateutil (==2.8.0)" ], "requires_python": ">=3.5, <4", "summary": "A Django calendaring application.", "version": "1.1.0" }, "last_serial": 5998024, "releases": { "0.4": [ { "comment_text": "", "digests": { "md5": "26f29a3951db5243cc5f3f4cac0cf55d", "sha256": "e1d305fc996449423e148374e8c7652707e5b9aa44ce39fa67fd60953828b427" }, "downloads": -1, "filename": "django-swingtime-0.4.tar.gz", "has_sig": false, "md5_digest": "26f29a3951db5243cc5f3f4cac0cf55d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15413, "upload_time": "2014-09-18T14:44:45", "url": "https://files.pythonhosted.org/packages/ab/cb/3887a91b03318599be744387319a15273db0e5a2e04a34556b1637361569/django-swingtime-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "1ae859fef95ac8a26747860b2313c25e", "sha256": "d630333e74098950beafa02408fb3367fb6f67783babc35ba772517e3ae719d0" }, "downloads": -1, "filename": "django-swingtime-0.4.1.tar.gz", "has_sig": false, "md5_digest": "1ae859fef95ac8a26747860b2313c25e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15494, "upload_time": "2015-02-10T20:15:59", "url": "https://files.pythonhosted.org/packages/d2/d5/320279baefab104e68de36b73c7b54963a36925dc853f3e246d7385d9068/django-swingtime-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "6a828aa6fbbfd9a2d258be37662935f7", "sha256": "47263c30477f941ceaefe90c231fc331943678e2f9a988fe9bc487cafefedc64" }, "downloads": -1, "filename": "django-swingtime-0.5.tar.gz", "has_sig": false, "md5_digest": "6a828aa6fbbfd9a2d258be37662935f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31228, "upload_time": "2015-02-11T14:11:12", "url": "https://files.pythonhosted.org/packages/96/cd/333d86d8d5f782cd0fdf1f46fcbece80c805b8aa1c24b311034bc4fed587/django-swingtime-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "af7746991c9eb20114451680c311bc17", "sha256": "6e3501356f0643b104e652ae598a682cd0ab29c6b8cf14181a14ee6fabf58b4e" }, "downloads": -1, "filename": "django-swingtime-0.6.tar.gz", "has_sig": false, "md5_digest": "af7746991c9eb20114451680c311bc17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31959, "upload_time": "2015-04-05T10:21:03", "url": "https://files.pythonhosted.org/packages/39/f1/f27f1a999f9d40c5645884450e15d9ab90b3b14e808196b33d1800c0750f/django-swingtime-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "02b7f440ee440eeca62567fefbf924a5", "sha256": "f364d653bd003f2945ad013e909f95c0cc0fb49c7225d01c06bda5113fe5d86d" }, "downloads": -1, "filename": "django-swingtime-0.6.1.tar.gz", "has_sig": false, "md5_digest": "02b7f440ee440eeca62567fefbf924a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31873, "upload_time": "2015-11-17T16:24:11", "url": "https://files.pythonhosted.org/packages/23/de/d1ef62a42d38b5fa5df54ef4a848e6bcd22a143fec7e63a2be869f722f22/django-swingtime-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "998b0d000cae674ead8c503882307425", "sha256": "2a20050e380d25ad0ff046e86faafe69d56dccc5406805f3e7b7fd419df51279" }, "downloads": -1, "filename": "django-swingtime-0.6.2.tar.gz", "has_sig": false, "md5_digest": "998b0d000cae674ead8c503882307425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31910, "upload_time": "2015-11-18T22:14:47", "url": "https://files.pythonhosted.org/packages/13/29/b6b8ae137f8d71d3232760266edbfb2f58dec354b20645a2c0b54c29ef84/django-swingtime-0.6.2.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "c8a466f2ff1793eed2321b573a3b1edb", "sha256": "9c58532bbe3cb56e04d9364553d32a56ac5dc6f474f19e1bcd756cbeefb12ccb" }, "downloads": -1, "filename": "django-swingtime-0.7.1.tar.gz", "has_sig": false, "md5_digest": "c8a466f2ff1793eed2321b573a3b1edb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32898, "upload_time": "2016-01-29T10:10:17", "url": "https://files.pythonhosted.org/packages/54/e9/a5feb9a41a3c26d5d285754ab01f218deb4c40fa2b9cb92140af261d91d6/django-swingtime-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "784922ebbdba0d4bf08c25f6f8e73dfa", "sha256": "271b6b95013da26e601597857be21887157ad41bdeb60ffcb4839277de504caf" }, "downloads": -1, "filename": "django-swingtime-0.8.0.tar.gz", "has_sig": false, "md5_digest": "784922ebbdba0d4bf08c25f6f8e73dfa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29132, "upload_time": "2017-07-03T20:53:46", "url": "https://files.pythonhosted.org/packages/d6/b1/020dae83690fd9bb643ea6078a6d5da0fc0e27716c79948cb8803e898ab8/django-swingtime-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "5b851a25116e9d10f0bafa7467dda6b6", "sha256": "76535c2354f005782b8b96eb14affbbd674a4ad2537fcb843dd1ce452cdb37d3" }, "downloads": -1, "filename": "django-swingtime-0.9.0.tar.gz", "has_sig": false, "md5_digest": "5b851a25116e9d10f0bafa7467dda6b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18944, "upload_time": "2018-01-07T16:06:58", "url": "https://files.pythonhosted.org/packages/ed/8f/2f8f254b582dc0af51d23b4b717764995914991084576dbb9963ed25001e/django-swingtime-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "1190afafc76e1890856e6a7277f454b0", "sha256": "b0266721859db0f184303fd06c79436bf41cfb375f7f4f9fbc047578518e0b6f" }, "downloads": -1, "filename": "django_swingtime-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1190afafc76e1890856e6a7277f454b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4, <4", "size": 19848, "upload_time": "2019-02-02T21:33:33", "url": "https://files.pythonhosted.org/packages/52/df/58a5d8d34d9d909bb2712bbe47b1c3769fbae23559846a3221f0b1b30a3b/django_swingtime-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83516571aaaa67c83cd9f5338af5aad8", "sha256": "053851df34a6369021bc4c89ac4cd24ca6b0aef60b7054cf0780c2ed1ad56365" }, "downloads": -1, "filename": "django-swingtime-1.0.0.tar.gz", "has_sig": false, "md5_digest": "83516571aaaa67c83cd9f5338af5aad8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 20059, "upload_time": "2019-02-02T21:33:35", "url": "https://files.pythonhosted.org/packages/93/80/814c32d3c662bfdc55982be1107d3429e41111d440cabcd9f91f9f7d3e02/django-swingtime-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "f39a0b36e47bab81d799a95ca518c937", "sha256": "0dcb9b0f4a65804707a90b0a469e435ca13559cd9cfa954eadcedfc65d179a2d" }, "downloads": -1, "filename": "django_swingtime-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f39a0b36e47bab81d799a95ca518c937", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 19584, "upload_time": "2019-10-18T23:24:02", "url": "https://files.pythonhosted.org/packages/e3/b5/8b4d1c1553294aa600e010b5e898c2e2805517259f81cac6131ddb20dac3/django_swingtime-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "006a2a390d694d8fefb55d1997fa2c56", "sha256": "6a39371936e9c5e3455e46f7169ef7cf5cb29dff9f6449eae5604ec7d71ee796" }, "downloads": -1, "filename": "django-swingtime-1.1.0.tar.gz", "has_sig": false, "md5_digest": "006a2a390d694d8fefb55d1997fa2c56", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 19476, "upload_time": "2019-10-18T23:24:04", "url": "https://files.pythonhosted.org/packages/8b/17/ae1a3e98c047b249cc6cbd751724886885aeb4715e7d805f4d23ceeec23e/django-swingtime-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f39a0b36e47bab81d799a95ca518c937", "sha256": "0dcb9b0f4a65804707a90b0a469e435ca13559cd9cfa954eadcedfc65d179a2d" }, "downloads": -1, "filename": "django_swingtime-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f39a0b36e47bab81d799a95ca518c937", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 19584, "upload_time": "2019-10-18T23:24:02", "url": "https://files.pythonhosted.org/packages/e3/b5/8b4d1c1553294aa600e010b5e898c2e2805517259f81cac6131ddb20dac3/django_swingtime-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "006a2a390d694d8fefb55d1997fa2c56", "sha256": "6a39371936e9c5e3455e46f7169ef7cf5cb29dff9f6449eae5604ec7d71ee796" }, "downloads": -1, "filename": "django-swingtime-1.1.0.tar.gz", "has_sig": false, "md5_digest": "006a2a390d694d8fefb55d1997fa2c56", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 19476, "upload_time": "2019-10-18T23:24:04", "url": "https://files.pythonhosted.org/packages/8b/17/ae1a3e98c047b249cc6cbd751724886885aeb4715e7d805f4d23ceeec23e/django-swingtime-1.1.0.tar.gz" } ] }