Skip to main content

Django year calendar

Django CI

A django app based on js-year-calendar

Dynamic view implemented with Bootstrap 5 and JS Fetch API (no jquery).

Popups are not supported, replaced by a modal dialog raised on date range selection.

Get started

Clone the repository or download the project

Optional: set a django environnement, then activate

python -m venv venv
venv\Scripts\activate.bat (windows)
. venv/bin/activate       (linux)
pip install django

Install django_year_calendar (or give an access)

pip install django-year-calendar
#  or
python setup.py install
# or put current directory in PYTHONPATH

Go to the example django project, initialize the project then run dev server

cd example_project
python manage.py migrate
python manage.py loaddata sample_data.json
python manage.py runserver

Check then http://localhost:8000

You can also go to the admin panel http://localhost:8000/admin (login admin passwd admin) to browse models and add some more data.

Usage for an existing django project

Add the django_year_app to your project

INSTALLED_APPS = [
    ...
    'django_year_calendar',
]

Add some routes to views in the urls.py file

urlpatterns = [
    ...
    path('my_calendar', include('django_year_calendar.urls')),
    path('minimal_fr', TemplateView.as_view(template_name='django_year_calendar/minimal.html',
                                            extra_context = {'calendar_lang': 'fr'})),
    ...
]

You may (or not) add some settings in your settings.py file:

CALENDAR_LANG  = "fr"   # see https://github.com/year-calendar/js-year-calendar/tree/master/locales
CALENDAR_WEEKSTART = 1  # monday
CALENDAR_WEEKNUMBER = True # display week number

CALENDAR_TPL = "django_year_calendar/bootstrap5"
# style: 'border' | 'background' | [custom_template] for 'custom' style
CALENDAR_RENDERER = 'background'

CALENDAR_VIEWS = [
    ...
    {'manager': 'app.models.MyModel[.myManager[.a_method]]',
     'color': 'blue',
     'style': 'background | border'},
    ...
]

Add some code to the models to display on the calendar,

class MyEvent(models.Model):
    ...
    # REQUIRED
    def start_date(self) -> DateField | date :
        ...
        return some_date
    # REQUIRED    
    def end_date(self):
        ...
        return another_date
    
    # optional
    def color(self) -> str:
        return 'blue'
    def infos(self) -> str:
        return "my birthday"
    def style(self) -> str ('background' | 'border' ):
        return 'border'

You can make your own views in various ways depending on your needs:

  • new templates based on the provided ones in django_year_calendar/templates
  • parameters in the urls.py file
  • new views based on CalendarView provided by the django_year_calendar app

See example_project for more details.

Future

  • Customizing the calendar view based on user rights
  • Helpers for building event editing views
  • ...

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

django_year_calendar-0.1.8-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file django_year_calendar-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for django_year_calendar-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 fc983003988242ffaf870ad11ec7c2c58ae958edcb70d708ea6d5603e6e42c23
MD5 f31189d6da8a6df2dd78753ea9976664
BLAKE2b-256 fab4c525131def02e1ad2654004890d06f8741d9db6904d41c16963ab219d2bd

See more details on using hashes here.

Supported by

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