Skip to main content

Date and time dependend content manipulation

Project description

Date and time dependent content manipulation.

Quick start

  1. Install using pip:

    pip install django-time-wizard
  2. Make sure to follow the installation steps for django-polymorphic

  3. Add to your INSTALLED_APPS:

    'polymorphic',
    'time_wizard',
  4. Include the time_wizard admin URLs in your project urls.py:

    path('admin/', include('time_wizard.urls')),
  5. Run python manage.py migrate to create the time_wizard models.

Note

Upgrading from version 0.2.0 to 1.0.0 will delete all the created models of time_wizard!

Usage

You can use the TimeWizard in different ways:

  • use a ForeignKey-relation

    • use one TimeWizardModel-definition for as much models as you want

    • affects your database as the relation needs a new model field

    • example:

      # models.py
      from time_wizard.mixins import TimeWizardMixin
      ...
      class MyModel(TimeWizardMixin, models.Model):
          ...
  • use the PeriodModelInline in the admin

    • each model of yours can have different time-settings

    • does not affect your database as it works with a generic relationship

    • example:

      # models.py
      from time_wizard.mixins import TimeWizardInlineMixin
      ...
      class MyModel(TimeWizardInlineMixin, models.Model):
          ...
      
      # admin.py
      from time_wizard.admin import PeriodModelInline
      from polymorphic.admin import PolymorphicInlineSupportMixin
      ...
      class MyModelAdmin(PolymorphicInlineSupportMixin, admin.ModelAdmin):
          inlines = [PeriodModelInline]
          ...
  • in both ways use is_published on your model to indicate if the content is shown or not.

  • create a custom PeriodModel as a base for custom AbsoluteRange- and HolidayRange-models. There are abstract base classes defined in models/abstract.py. This means you could for example create classes without a generic relation, as PeriodModel itself has.

Settings

Django-time-wizard uses the defined countries and provinces/states from holidays. Definitions need to be compatible with holidays. You can also define this yourself for your needs:

TIME_WIZARD_COUNTRIES = ['US', 'UK', 'DE', ...]
TIME_WIZARD_COUNTRY_PROVINCES = {'US': ['AL', 'AK', ...], ...}

Requirements

  • django

  • django-polymorphic

  • holidays

Tests

Setup your test environment with virtualenv and install the requirements with pip install .. Also install tox via pip and simply run tox.

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-time-wizard-1.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

django_time_wizard-1.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file django-time-wizard-1.1.0.tar.gz.

File metadata

  • Download URL: django-time-wizard-1.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.5.3

File hashes

Hashes for django-time-wizard-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6fa42d96eaee9d2e6037cf2a767316f755add4b4bc81492691b579b95af59699
MD5 5cf81cfacb7c9d71445841b729e15477
BLAKE2b-256 600479f81276c01be4a1063805f3bb05c2c9f7cb553c3fbf591b45e565519e19

See more details on using hashes here.

File details

Details for the file django_time_wizard-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: django_time_wizard-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.5.3

File hashes

Hashes for django_time_wizard-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cb9de6cd09569f480f3dda5df489d1fc12c165be66e3b31869d2bca29c02659
MD5 40a0827269505655f5db39888c2b2821
BLAKE2b-256 b7698569fd4c9897a221ca9a4676621757310b11f4d83bf232b81ce73ca02721

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