yaml2ical was using a very old version that started to break with
newer Python, so it's time to upgrade. This requires a few adjustments
to quiet new warnings.
Change-Id: Ib081dcfeca7c40f877059793dab58d00a7b0d53e
The openstacksdks team meets on the
third thursday of each month. We could
use a a monthly third-week option.
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
Change-Id: I9eee4582506274a18e7146f6c241cf56fb585075
The iCalendar spec expects a meeting vEvent to include a datetime stamp
and a unique ID for each instance. This adds these values to the
generated output.
Minor cleanup also included since I was touching code around them and
noticed little nits.
Change-Id: I4753571850665a2f28a6799b84ead4c31a275cc7
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Add a new property to the recurrence that can be used to generate
grammatically correct versions of phrases like 'Monthly on the first
Thursday'.
Change-Id: I2ebfd60ebfbbc499ed08f6f63e91cbb87c8691b1
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Add an abstract base class for the recurrence rules so it is clear
which methods are required.
Change-Id: I7f2395bf3073b205a280d05f7f844f43a0e85ded
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
We're running at least 3.5 in CI, so start there.
Update tox to set the environments from newest to oldest to avoid
issues with the dbm format selected for the .testrepository database
generated by the tests, to allow it to work for all tox environments
on a local system.
Change-Id: I7cde15039f782bba69ed9e0e44b08e289148019e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Add a recurrence option for meetings that repeat monthly. Instantiate
the ones for the first weekdays of the month for now.
Change-Id: I0fa95653594dc5a28008630f57bee67b92537d29
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I87982923ab6ecda0673008070da6880536783b40
While doing so move the frequency description out of line into it's own
section.
Change-Id: If757d7192e41d29c0013c46fcda16e44e2f58aa1
Co-Authored-By: Graham Hayes <gr@ham.ie>
This allows for by weekly meetings to be run at alternate
times.
Change-Id: Ief437e53719c123399de8874469ef16540d3b3fd
Signed-off-by: Graham Hayes <gr@ham.ie>
For the irc-meetings we would like to list the possiblity of a meeting
but not actually formally schedule it. This change allows for an AdHoc
meeting which is essentially a noop in the ical generation
Change-Id: I843b5b3f2a6e5a74b85b13b86c8d16125a1ac7c7
Update requirements.txt and test-requirements.txt to correspond with
what is in openstack/requirements global-requirements.txt
Change-Id: Ib624d339bdb979e87f98bb02000e33bd9cce9601
Update the hacking test-requirement to match openstack/requirements
global-requirements.txt
Fix errors caught by new version of hacking.
Change-Id: I90e9e9ed106b13b155b0b88fa2800736a9203814
Fix an off by one error in the batch_messages function. And add some
unit tests for the batch_messages function.
Also handle if batch_size is less than or equal to zero. In that case
just return the input messages.
Change-Id: Id7be110379c212104fba70588b647dfd3a13e765
Closes-Bug: #1570446
Created and export, to jinja2, a batch_meetings fuction that will pivot
the sorted list of meetings into a number of colums. This can be used
in a jinja template like:
{% for column in batch_meetings(meetings, 4)|batch(4) %}
So the list:
[A, B, C, D, E, F , G, H]
Dsisplays as:
A C E G
B D F H
Rather than:
A B C D
E F G H
Change-Id: I9d7c6ad9c14a9d6ec3d402a67b73fafae575d369
argparse was external in python 2.6 but not anymore, remove it from
requirements.
This should help with pip 8.0 that gets confused in this situation.
Installation of the external argparse is not needed.
Change-Id: Ib7e74912b36c1b5ccb514e31fac35efeff57378d
Rather than silently removing the skipped meeting from the calendar as
is the default behavious of exdate add a one off calendar entry for
each skipped meeting.
The aim is to show that the slot is generally consumed just that the
meeting has been explictly cancelled/skipped.
Change-Id: Idd9eb1a04fe9c9661e87978c0128a292bb8e89a4
In the OpenStack community it's common to cancel meetings while the
summit happens.
Add the ability to add a list of dates to skip. These will then be
included in the iCal
Change-Id: I1dd5ca6f3e5d6d257489fdc14bbe108abc7436e6
start_date defines when a meeting series begins. start_date
is used in lieu of the current date when rebuilding the calendar.
This will ultimately let us move away from needing to have
biweekly-odd and biweekly-even.
I also added an example.yaml with a start_date
Change-Id: I0c5f6e5951b6c15b949f599182f48aa132b76abb
While yaml2ical is clearly driven by the needs of the OpenStack
community, there is nothing inherently "OpenStack" about the job it
does.
Also, the README doesn't need to describe what the tool wants to do,
since it has, in fact, accomplished its goal.
Change-Id: I7cf026858bc52eacd7650d9eb9d4b357deb5624f
Update the documentation to note which elements of the yaml
are required. Also added the agenda_url and project_url keys
to the main doc list.
Lastly, updated the meeting/example.yaml to show usage of the new
duration, agenda_url, and project_url keys
Change-Id: Ifaa9f029ae920b22aa60ab3d47d14982707285d9
We currently hardcode the meeting duration to be one hour. This change
allows the user to specify an optional meeting duration (in minutes)
for shorter or longer meetings.
Change-Id: Ib41d56abc0e866ca50e45469e7cd57d726b053df
Consider the following meetings (both at the same venue)
Meeting1: Monday at 2330 for 1 hour
Meeting2: Tuesday at 0000 for 1 hour
It's clear that these meetings conflict. The current conflicts() check
will return no conflict becuase we explictly check the start day.
Also there is a special case where day1 is Sunday so handle that case.
Fix this by converting the day into a date and including that in the conflicts
check.
Change-Id: I06f1f2ab644bf2f6aeb0e62258884a5ff85b6706
Add an 'outfile' member variable to the meeting class. This will store
the base name of the output filename that would be generated.
Change-Id: Id9354b3565c91fd1e143b3826da15ae38aa112aa
agenda_url is already used in the meeting file template, now it will
be attached to every calendar event.
The new key project_url is for the page describing the overall
project and it too, if present will be in the calendar event.
Closes: https://storyboard.openstack.org/#!/story/2000288
Change-Id: Ic9f823bf744b27f42359858e55557b36fcab8f0a
Signed-off-by: Brian (bex) Exelbierd <bex@pobox.com>
The README had fallen out of date with the latest code additions.
Change-Id: Ifd90703bf2853d69aeaace8160b338fc1c79086a
Signed-off-by: Brian (bex) Exelbierd <bex@pobox.com>
Previously the calendar was missing a name and description
which means that some ical clients retain the URL rather
than having a human readable view.
This change introduces two new command line options
-n|--name and -d|--description for suppling the relevant
fields.
This implements the X-WR-CALNAME and X-WR-CALDESC ical
extension properties.
Change-Id: I97d44a2c924699ef362b7c053a637ace89b94fe2
Signed-off-by: Dave Walker (Daviey) <email@daviey.com>
Besides looking for the required values, allow any extra values to be
saved and referenced from templates.
Change-Id: I7395a92f447aee943da54aa0439dd0c683da176a