Add IPython support and fix event end date in iCal export

Included `ipython` and related dependencies in project requirements for enhanced developer tooling. Fixed `dtend` calculation in iCal export by adding one day to the event's end date for improved calendar compatibility.
main
Arne Schauf 3 weeks ago
parent 62c3b6c15d
commit 1b7df5657b
  1. 3
      core/utils.py
  2. 1
      requirements.in
  3. 36
      requirements.txt

@ -1,3 +1,4 @@
from datetime import timedelta
from icalendar import Calendar, Event, vText from icalendar import Calendar, Event, vText
from django.template.defaultfilters import striptags from django.template.defaultfilters import striptags
from django.utils import timezone from django.utils import timezone
@ -16,7 +17,7 @@ def generate_events_ics(queryset):
event.add('dtstart', e.start_date) event.add('dtstart', e.start_date)
event.add('uid', f'{e.slug}@feo.gmbh') event.add('uid', f'{e.slug}@feo.gmbh')
if e.end_date: if e.end_date:
event.add('dtend', e.end_date) event.add('dtend', e.end_date + timedelta(days=1))
if e.location_name: if e.location_name:
event.add('location', vText(f'{e.location_name}, {e.location_street}, {e.location_city}')) event.add('location', vText(f'{e.location_name}, {e.location_street}, {e.location_city}'))

@ -11,3 +11,4 @@ django-braces
daphne daphne
celery celery
redis redis
ipython

@ -12,6 +12,8 @@ asgiref==3.8.1
# via # via
# daphne # daphne
# django # django
asttokens==3.0.0
# via stack-data
attrs==25.3.0 attrs==25.3.0
# via # via
# service-identity # service-identity
@ -55,6 +57,8 @@ cryptography==44.0.2
# service-identity # service-identity
daphne==4.1.2 daphne==4.1.2
# via -r requirements.in # via -r requirements.in
decorator==5.2.1
# via ipython
defusedxml==0.7.1 defusedxml==0.7.1
# via willow # via willow
django==5.2 django==5.2
@ -106,6 +110,8 @@ draftjs-exporter==5.1.0
# via wagtail # via wagtail
et-xmlfile==2.0.0 et-xmlfile==2.0.0
# via openpyxl # via openpyxl
executing==2.2.0
# via stack-data
filetype==1.2.0 filetype==1.2.0
# via willow # via willow
hyperlink==21.0.0 hyperlink==21.0.0
@ -121,12 +127,24 @@ idna==3.10
# twisted # twisted
incremental==24.7.2 incremental==24.7.2
# via twisted # via twisted
ipython==9.2.0
# via -r requirements.in
ipython-pygments-lexers==1.1.1
# via ipython
jedi==0.19.2
# via ipython
kombu==5.5.3 kombu==5.5.3
# via celery # via celery
laces==0.1.2 laces==0.1.2
# via wagtail # via wagtail
matplotlib-inline==0.1.7
# via ipython
openpyxl==3.1.5 openpyxl==3.1.5
# via wagtail # via wagtail
parso==0.8.4
# via jedi
pexpect==4.9.0
# via ipython
pillow==11.2.1 pillow==11.2.1
# via # via
# pillow-heif # pillow-heif
@ -134,11 +152,17 @@ pillow==11.2.1
pillow-heif==0.21.0 pillow-heif==0.21.0
# via willow # via willow
prompt-toolkit==3.0.51 prompt-toolkit==3.0.51
# via click-repl # via
# click-repl
# ipython
psycopg[binary]==3.2.6 psycopg[binary]==3.2.6
# via -r requirements.in # via -r requirements.in
psycopg-binary==3.2.6 psycopg-binary==3.2.6
# via psycopg # via psycopg
ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.3
# via stack-data
pyasn1==0.6.1 pyasn1==0.6.1
# via # via
# pyasn1-modules # pyasn1-modules
@ -147,6 +171,10 @@ pyasn1-modules==0.4.2
# via service-identity # via service-identity
pycparser==2.22 pycparser==2.22
# via cffi # via cffi
pygments==2.19.1
# via
# ipython
# ipython-pygments-lexers
pyopenssl==25.0.0 pyopenssl==25.0.0
# via twisted # via twisted
python-dateutil==2.9.0.post0 python-dateutil==2.9.0.post0
@ -165,8 +193,14 @@ soupsieve==2.7
# via beautifulsoup4 # via beautifulsoup4
sqlparse==0.5.3 sqlparse==0.5.3
# via django # via django
stack-data==0.6.3
# via ipython
telepath==0.3.1 telepath==0.3.1
# via wagtail # via wagtail
traitlets==5.14.3
# via
# ipython
# matplotlib-inline
twisted[tls]==24.11.0 twisted[tls]==24.11.0
# via daphne # via daphne
txaio==23.1.1 txaio==23.1.1

Loading…
Cancel
Save