Django year calendar
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
- ...
Metadata
Release files for django-year-calendar 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_year_calendar-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / django_year_calendar-0.5.0-py3-none-any.whl
| Download URL | django_year_calendar-0.5.0-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7e854a32a1ec42d0d8c4ff4283d1927025e4ba4b94b6eebb50b3024e42c68b2
|
|
BLAKE2b-256 checksum How to use checksums |
a2d34c44a8c61191f8db5d3c57d73309eb5e62c3309ded093bf3502dbd96f6a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Security for django-year-calendar 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.