khal icon indicating copy to clipboard operation
khal copied to clipboard

Missing fields in json formatter

Open sixela opened this issue 2 years ago • 0 comments

Describe the bug As of now some available fields can't be displayed when using --json flag, e.g "attendees"

To Reproduce

khal list --json attendees today today
[{}, {}] # List will vary depending on your calendars

Expected behavior

I should obtain a json-formatted list of list of attendees like:

khal list --json attendees today today
[{"attendees": ""}, {"attendees": "attendee1, attendee2"}]

OS, version, khal version and how you installed it:

  • The output of khal --version: khal, version 0.11.3.dev160+g214886d
  • Installation method [e.g. PyPI, git, OS repo]: pip install git+https://github.com/pimutils/khal
  • python version: 3.12
  • OS: Darwin Kernel Version 22.5.0
  • Your khal config file
[default]
default_calendar = <redacted>
highlight_event_days = True

[view]
event_view_always_visible = True
  • The versions of your other python packages
$ pip freeze
pip freeze
atomicwrites==1.4.1
click==8.1.7
click-log==0.4.0
configobj==5.0.8
icalendar==5.0.10
khal @ git+https://github.com/pimutils/khal@214886de48bf706f897592cd01a9de6250ba3df4
python-dateutil==2.8.2
pytz==2023.3.post1
pyxdg==0.28
six==1.16.0
tzlocal==5.2
urwid==2.2.3

Additional context The additionnal attributes are available but are ignored because of the CONTENT_ATTRIBUTES var at https://github.com/pimutils/khal/blob/master/khal/utils.py#L218

For my needs I manually patched like so:

diff --git a/khal/utils.py b/khal/utils.py
index 78f525b..41d40c9 100644
--- a/khal/utils.py
+++ b/khal/utils.py
@@ -223,7 +223,7 @@ CONTENT_ATTRIBUTES = ['start', 'start-long', 'start-date', 'start-date-long',
                       'start-style', 'end-style', 'to-style', 'start-end-time-style',
                       'end-necessary', 'end-necessary-long', 'repeat-symbol', 'repeat-pattern',
                       'title', 'organizer', 'description', 'location', 'all-day', 'categories',
-                      'uid', 'url', 'calendar', 'calendar-color', 'status', 'cancelled']
+                      'uid', 'url', 'calendar', 'calendar-color', 'status', 'cancelled', 'attendees']


 def json_formatter(fields)

sixela avatar Dec 13 '23 19:12 sixela