Skip to content

Commit

Permalink
Sort ics events by time
Browse files Browse the repository at this point in the history
Fixes issue #65
  • Loading branch information
anufrievroman committed Nov 22, 2023
1 parent 78913c4 commit 5e652d3
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
10 changes: 9 additions & 1 deletion calcure/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,14 @@ def __init__(self, stdscr, y, x, event, screen):
super().__init__(stdscr, y, x)
self.event = event
self.screen = screen
self.info = f"{self.icon} {self.event.name}"
self.start_time = ""

# Show time for ICS events if it set:
if hasattr(self.event, 'hour'):
if self.event.hour:
self.start_time = f"{self.event.hour:0=2}:{self.event.minute:0=2} "

self.info = f"{self.icon} {self.start_time}{self.event.name}"

@property
def icon(self):
Expand Down Expand Up @@ -410,6 +417,7 @@ def __init__(self, stdscr, y, x, repeated_user_events, user_events, user_ics_eve
self.repeated_user_events = repeated_user_events.filter_events_that_day(screen)
self.user_events = user_events.filter_events_that_day(screen)
self.user_ics_events = user_ics_events.filter_events_that_day(screen)
self.user_ics_events.items = sorted(self.user_ics_events.items, key=lambda x: (x.hour is None, x.hour))
self.holidays = holidays.filter_events_that_day(screen)
self.birthdays = birthdays.filter_events_that_day(screen)
self.deadlines = user_tasks.filter_events_that_day(screen)
Expand Down
5 changes: 4 additions & 1 deletion calcure/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,17 @@ def __init__(self, year, month, day, name):
class UserEvent(Event):
"""Events crated by the user"""

def __init__(self, item_id, year, month, day, name, repetition, frequency, status, privacy, calendar_number=None):
def __init__(self, item_id, year, month, day, name, repetition, frequency, status, privacy,
calendar_number=None, hour=None, minute=None):
super().__init__(year, month, day, name)
self.item_id = item_id
self.repetition = repetition
self.frequency = frequency
self.status = status
self.privacy = privacy
self.calendar_number = calendar_number
self.hour = hour
self.minute = minute


class UserRepeatedEvent(Event):
Expand Down
9 changes: 6 additions & 3 deletions calcure/loaders.py
Original file line number Diff line number Diff line change
Expand Up @@ -424,15 +424,18 @@ def parse_event(self, event, index, calendar_number):
day = Calendar(0, self.use_persian_calendar).last_day(year, month)

minute = event.begin.minute if event.begin else 0
name = f"{hour:0=2}:{minute:0=2} {name}"
# name = f"{hour:0=2}:{minute:0=2} {name}"
else:
hour = None
minute = None

# Convert to persian date if needed:
if self.use_persian_calendar:
year, month, day = convert_to_persian_date(year, month, day)

# Add event:
new_event = UserEvent(event_id, year, month, day, name, repetition,
frequency, status, is_private, calendar_number)
new_event = UserEvent(event_id, year, month, day, name, repetition, frequency,
status, is_private, calendar_number, hour, minute)
self.user_ics_events.add_item(new_event)

def load(self):
Expand Down

0 comments on commit 5e652d3

Please sign in to comment.