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.

Tests can also be run via devtools/run-tests. This requires an environment where docker and docker-compose are installed.

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-4.2.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_time_wizard-4.2.1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file django_time_wizard-4.2.1.tar.gz.

File metadata

  • Download URL: django_time_wizard-4.2.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for django_time_wizard-4.2.1.tar.gz
Algorithm Hash digest
SHA256 76378a1cdce40338ebb8944b0add31b9ecea2d318359c656a89336491b67c3be
MD5 c9a91fb257ef6e9c6430ef422848d9ff
BLAKE2b-256 a0e39482c74c8e9ffc3f2bd059faeee2ce1532eb07375fb710986bf769ee44c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_time_wizard-4.2.1.tar.gz:

Publisher: python-publish.yml on puzzleYOU/django-time-wizard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for django_time_wizard-4.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 01e7467ae0277013979afa7f7f5b105a8196c62de0f92955b92926aae9d8a8dc
MD5 380378661618516ff1e80da9948c4174
BLAKE2b-256 2ddb5c8b1018d3592425837849c5af07fe3f28dadd890535721191601f898784

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_time_wizard-4.2.1-py3-none-any.whl:

Publisher: python-publish.yml on puzzleYOU/django-time-wizard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page