Metadata-Version: 1.1
Name: django-calendardate
Version: 0.1.1
Summary: A calendar model with date metadata for querying against.
Home-page: http://github.com/OmenApps/django-calendardate/
Author: Jack Linke
Author-email: jack@watervize.com
License: UNKNOWN
Description: ===================
        django-calendardate
        ===================
        
        *A calendar model with date metadata for querying against.*
        
        Sometimes it is useful to have a range of dates and associated metadata stored in the database, rather than calculating on-the-fly, particularly when creating reports based on quarters, fiscal years, etc. This is where django-calendardate comes in. Also known as a date dimension table or calendar table, the inspiration for this project comes from `this article <https://www.sqlshack.com/designing-a-calendar-table/>`_.
        
        django-calendardate provides:
        
        * a model for storing metadata about a set of dates.
        * a management command for generating the metadata
        
        
        THIS PROJECT IS PRE_RELEASE. It works, but is missing documentation and tests. Be cautious.
        
        Usage
        -----
        
        To process a range of dates (ignoring any duplicates):
        
            ``python manage.py process_dates 2021-01-01 2021-12-31``
        
        
        To process a range of dates (overwriting any duplicates):
        
            ``python manage.py process_dates 2021-01-01 2021-12-31 --force``
        
        
        Optional settings.py settings
        -----------------------------
        
        By default, django-calendardate assumes a fiscal year starts in October. If your fiscal year begins on a different month, set ``FISCAL_YEAR_START_MONTH`` to the month number (1-indexed). For instance January would be 1).
        
            ``FISCAL_YEAR_START_MONTH = 1``
        
        
        Model Fields
        ------------
        
        Each of the following are automatically calculated and inserted into the model using the ``process_dates`` management command.
        
            **calendar_date** (*DateField*)
                The actual date object
        
            **calendar_day** (*PositiveSmallIntegerField*)
                Number from 1 through 31
        
            **calendar_month** (*PositiveSmallIntegerField*)
                Month number from 1-12
        
            **calendar_year** (*PositiveSmallIntegerField*)
                Current year, eg: 2017, 2025, 1984
        
            **calendar_quarter** (*PositiveSmallIntegerField*)
                1-4, indicates quarter within the current year
        
            **fiscal_year** (*PositiveSmallIntegerField*)
                Current fiscal year, eg: 2017, 2025, 1984
        
            **fiscal_quarter** (*PositiveSmallIntegerField*)
                1-4, indicates fiscal quarter within the current fiscal year
        
            **day_of_week** (*PositiveSmallIntegerField*)
                Monday is 0 and Sunday is 6
        
            **day_of_isoweek** (*PositiveSmallIntegerField*)
                Monday is 1 and Sunday is 7
        
            **day_of_quarter** (*PositiveSmallIntegerField*)
                Number from 1-92, indicates the day # in the current quarter
        
            **day_of_year** (*PositiveSmallIntegerField*)
                Number from 1-366
        
            **week_of_month** (*PositiveSmallIntegerField*)
                Number from 1-6, indicates the number of week within the current month
        
            **week_of_year** (*PositiveSmallIntegerField*)
                Number from 1-53, indicates the number of week within the current year
        
            **isoweek_of_year** (*PositiveSmallIntegerField*)
                Number from 1-53, indicates the number of isoweek within the current year
        
            **is_weekday** (*BooleanField*)
                True if Monday-->Friday, False for Saturday/Sunday
        
            **is_leap_year** (*BooleanField*)
                True if current year is a leap year
        
            **days_in_month** (*PositiveSmallIntegerField*)
                Number of days in the current month
        
        Model Properties
        ----------------
        
        Each of the following properties are provided for each date.
        
            **get_day_name** (*property*)
                returns a string with the name of the day for the given date (e.g.: "Monday")
        
            **get_month_name** (*property*)
                returns a string with the name of the month for the given date (e.g.: "January")
        
            **get_month_abbreviated** (*property*)
                returns a string with the abbreviated name of the month for the given date (e.g.: "Jan")
        
        
        To Do
        -----
        
        1. Testing
        
        2. Better documentation
        
        3. Translations (strings already marked)
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Classifier: Framework :: Django :: 3.1
