def calendar_list(calendar_name, year, month, day): """ Display in a list form all the meetings of a given calendar. By default it displays all the meetings of the current year but this can be more restricted to a month or even a day. :arg calendar_name: the name of the calendar that one would like to consult. :arg year: the year of the date one would like to consult. :arg month: the month of the date one would like to consult. :arg day: the day of the date one would like to consult. """ inyear = year if not year: inyear = datetime.date.today().year inmonth = month if not month: inmonth = 1 inday = day if not day: inday = 1 start_date = datetime.date(inyear, inmonth, inday) if not month and not day: end_date = start_date + relativedelta(years=+1) elif not day: end_date = start_date + relativedelta(months=+1) else: end_date = start_date + relativedelta(days=+1) calendarobj = Calendar.by_id(SESSION, calendar_name) tzone = get_timezone() meetings = fedocallib.get_by_date( SESSION, calendarobj, start_date, end_date, tzone) month_name = datetime.date.today().strftime('%B') auth_form = forms.LoginForm() admin = is_admin() curmonth_cal = fedocallib.get_html_monthly_cal( year=year, month=month, day=day, calendar_name=calendar_name) return flask.render_template( 'meeting_list.html', calendar=calendarobj, month=month_name, meetings=meetings, tzone=tzone, year=inyear, auth_form=auth_form, curmonth_cal=curmonth_cal, admin=admin)
def calendar(calendar_name, year, month, day): """ Display the week of a specific date for a specified calendar. :arg calendar_name: the name of the calendar that one would like to consult. :arg year: the year of the date one would like to consult. :arg month: the month of the date one would like to consult. :arg day: the day of the date one would like to consult. """ calendarobj = Calendar.by_id(SESSION, calendar_name) week_start = fedocallib.get_start_week(year, month, day) weekdays = fedocallib.get_week_days(year, month, day) tzone = get_timezone() meetings = fedocallib.get_meetings( SESSION, calendarobj, year, month, day, tzone=tzone) next_week = fedocallib.get_next_week( week_start.year, week_start.month, week_start.day) prev_week = fedocallib.get_previous_week( week_start.year, week_start.month, week_start.day) auth_form = forms.LoginForm() admin = is_admin() month_name = week_start.strftime('%B') day_index = None today = datetime.date.today() if today > week_start and today < week_start + datetime.timedelta(days=7): day_index = fedocallib.get_week_day_index( today.year, today.month, today.day) curmonth_cal = fedocallib.get_html_monthly_cal( year=year, month=month, day=day, calendar_name=calendar_name) return flask.render_template( 'agenda.html', calendar=calendarobj, month=month_name, weekdays=weekdays, day_index=day_index, meetings=meetings, tzone=tzone, next_week=next_week, prev_week=prev_week, auth_form=auth_form, curmonth_cal=curmonth_cal, admin=admin)