Skip to content

Commit

Permalink
validate new alarm settings
Browse files Browse the repository at this point in the history
  • Loading branch information
geier committed Oct 30, 2023
1 parent 845aa26 commit d9b4259
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 14 deletions.
5 changes: 3 additions & 2 deletions khal/controllers.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
from .khalendar.vdir import Item
from .terminal import merge_columns
from .utils import human_formatter, json_formatter
from .parse_datetime import timedelta2str

logger = logging.getLogger('khal')

Expand Down Expand Up @@ -412,9 +413,9 @@ def new_from_string(collection, calendar_name, conf, info, location=None,
)
if alarms is None:
if info['allday']:
alarms = conf['default']['default_dayevent_alarm']
alarms = timedelta2str(conf['default']['default_dayevent_alarm'])
else:
alarms = conf['default']['default_event_alarm']
alarms = timedelta2str(conf['default']['default_event_alarm'])
info.update({
'location': location,
'categories': categories,
Expand Down
8 changes: 4 additions & 4 deletions khal/settings/khal.spec
Original file line number Diff line number Diff line change
Expand Up @@ -216,11 +216,11 @@ default_event_duration = timedelta(default='1d')
# Define the default duration for an event ('khal new' only)
default_dayevent_duration = timedelta(default='1h')

# Define the default alarm for a day-long event, e.g. '12h' ('khal new' only)
default_event_alarm = string(default='')
# Define the default alarm for new events, e.g. '15m'
default_event_alarm = timedelta(default='')

# Define the default alarm for an event, e.g. '10m' ('khal new' only)
default_dayevent_alarm = string(default='')
# Define the default alarm for new all dayevents, e.g. '12h'
default_dayevent_alarm = timedelta(default='')

# Whether the mouse should be enabled in interactive mode ('khal interactive' and
# 'ikhal' only)
Expand Down
3 changes: 2 additions & 1 deletion khal/ui/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
from .editor import EventEditor, ExportDialog
from .widgets import CalendarWidget, CAttrMap, NColumns, NPile, button, linebox
from .widgets import ExtendedEdit as Edit
from ..parse_datetime import timedelta2str

logger = logging.getLogger('khal')

Expand Down Expand Up @@ -907,7 +908,7 @@ def new(self, date: dt.date, end: Optional[dt.date]=None) -> None:
'summary': '',
'timezone': self._conf['locale']['default_timezone'],
'allday': allday,
'alarms': self._conf['default']['default_event_alarm'],
'alarms': timedelta2str(self._conf['default']['default_event_alarm']),
})
self.edit(event)

Expand Down
7 changes: 4 additions & 3 deletions khal/ui/editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -474,9 +474,10 @@ def type_change(self, allday: bool) -> None:
if not hasattr(self, 'alarmseditor'):
return

from ..utils import alarmstr2trigger
default_event_alarm = list(alarmstr2trigger(self._conf['default']['default_event_alarm']))[0]
default_dayevent_alarm = list(alarmstr2trigger(self._conf['default']['default_dayevent_alarm']))[0]
# to make the alarms before the event, we need to set it them to
# negative values
default_event_alarm = -1 * self._conf['default']['default_event_alarm']
default_dayevent_alarm =-1 * self._conf['default']['default_dayevent_alarm']
alarms = self.alarmseditor.get_alarms()
if len(alarms) == 1:
timedelta = alarms[0][0]
Expand Down
8 changes: 4 additions & 4 deletions tests/settings_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ def test_simple_config(self):
'timedelta': dt.timedelta(days=2),
'default_event_duration': dt.timedelta(days=1),
'default_dayevent_duration': dt.timedelta(hours=1),
'default_event_alarm': '',
'default_dayevent_alarm': '',
'default_event_alarm': dt.timedelta(0),
'default_dayevent_alarm': dt.timedelta(0),
'show_all_days': False,
'enable_mouse': True,
}
Expand Down Expand Up @@ -107,8 +107,8 @@ def test_small(self):
'default_dayevent_duration': dt.timedelta(hours=1),
'show_all_days': False,
'enable_mouse': True,
'default_event_alarm': '',
'default_dayevent_alarm': '',
'default_event_alarm': dt.timedelta(0),
'default_dayevent_alarm': dt.timedelta(0),
}
}
for key in comp_config:
Expand Down

0 comments on commit d9b4259

Please sign in to comment.