summaryrefslogtreecommitdiff
path: root/scripts/calendar_plugin2.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/calendar_plugin2.py')
-rw-r--r--scripts/calendar_plugin2.py124
1 files changed, 0 insertions, 124 deletions
diff --git a/scripts/calendar_plugin2.py b/scripts/calendar_plugin2.py
deleted file mode 100644
index 62a68aa..0000000
--- a/scripts/calendar_plugin2.py
+++ /dev/null
@@ -1,124 +0,0 @@
-import template
-import plugin
-import string
-import os
-
-import locale
-from datetime import datetime,timedelta,date
-import jinja2
-import json
-
-class TabularCalendarPlugin:
- def __init__(self):
- calpath = os.path.join(template.path, 'tabcalendar.json')
-
- with open(calpath, 'r') as calfile:
- events = json.load(calfile)
- for event in events:
- event['start'] = datetime.strptime(event['start'], '%Y-%m-%dT%H:%M:%S')
- event['end'] = datetime.strptime(event['end'], '%Y-%m-%dT%H:%M:%S')
- event['multiday'] = (event['end'] - event['start']) > timedelta(days=1)
- events = sorted(events, key=lambda x:x['start'])
-
- i = 0
- for event in events:
- event['id'] = i
- i += 1
-
- first = events[0]['start']
- last = events[-1]['end']
-
- calendar_start = first - timedelta(days=first.weekday())
- if calendar_start.month != first.month:
- calendar_start = date(first.year, first.month, 1)
- else:
- calendar_start = date(calendar_start.year,
- calendar_start.month,
- calendar_start.day)
- calendar_end = last + timedelta(days=6 - last.weekday())
- if calendar_end.month != last.month:
- calendar_end = date(last.year,last.month,last.day)
- while True:
- next_end = calendar_end + timedelta(days=1)
- if next_end.month != calendar_end.month:
- break
- calendar_end = next_end
- else:
- calendar_end = date(calendar_end.year,
- calendar_end.month,
- calendar_end.day)
-
- months = []
- cur_day = calendar_start
- active_month = None
- active_week = None
- today = date.today()
- while cur_day <= calendar_end:
- cur_month = cur_day.month
- cur_week = cur_day.isocalendar()[1]
-
- if cur_month != active_month:
- months.append({
- 'year': cur_day.year,
- 'month': cur_day.month,
- 'date': date(cur_day.year, cur_day.month, 1),
- 'weeks': [[]]
- })
- active_week = cur_week
- active_month = cur_month
- if cur_week != active_week:
- months[-1]['weeks'].append([])
- active_week = cur_week
-
- week_list = months[-1]['weeks'][-1]
- week_list.append({
- 'year': cur_day.year,
- 'month': cur_day.month,
- 'day': cur_day.day,
- 'today': cur_day == today,
- 'weekday': cur_day.weekday(),
- 'events': []
- })
- event_list = week_list[-1]['events']
- day_start = datetime(cur_day.year, cur_day.month, cur_day.day)
- day_end = day_start + timedelta(days=1)
-
- for event in events:
- if event['start'] >= day_end \
- or event['end'] <= day_start:
- continue
- event_list.append(event)
-
- cur_day += timedelta(days=1)
-
- self.months = months
- self.events = events
- template_loader = jinja2.FileSystemLoader(searchpath=os.path.join(template.path))
- self.template_env = jinja2.Environment(loader=template_loader)
- locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
-
- def _get_calendar_tabs(self):
- return self.template_env.get_template('tabcalendar.j2').render({
- 'months': self.months,
- 'events': self.events,
- 'class': 'expanded'
- }).encode('utf-8')
-
- def _get_calendar_events(self):
- return self.template_env.get_template('tabcalendar_list.j2').render({
- 'months': self.months,
- 'events': self.events,
- 'class': 'expanded'
- }).encode('utf-8')
-
- def process_content(self, page_content):
- return_value = {}
- for filename, content in page_content.iteritems():
- t = string.Template(content)
- return_value[filename] = t.safe_substitute(
- tabcalendar_tabs = self._get_calendar_tabs(),
- tabcalendar_events = self._get_calendar_events(),
- )
- return return_value
-
-plugin.plugin_manager.register(TabularCalendarPlugin())