What is the recommended way to create recurring events?
In my case I want to have a Meeting with a 3-entry timetable, where the second entry needs to have different material and title every time. Generating the material (URL) via a script is trivial. The title should be different for every event (again could be generated). Currently, I clone events and then it’s a lot of repetitive clicking, waiting, and copy’n’pasting. What’s the intended use pattern here?
What I’d like to have is a textual export of one meeting. Then I’d write a script to generate upcoming events (minor textual replacements). And then I’d want to import those back into Indico. Does that exist? Could a plugin do it?
I have to guess on which Indico instance you want to deploy your procedure. I suppose you have full (administrator) control of the instance and also access to the interactive CLI (indico_shell).
I think that is a minimum, because – as far as I know and unless devs tells me there have been changes in latest releases – the HTTP API only allows export of information from Indico, no change or writing.
I would create a series of events (assuming that they have regular dates) and change what is needed. Changing the existing title and adding a couple of links as “meeting material” doesn’t sound like a lot of “click and wait”. But it should be a 10-liner in indico-shell, if you need to go faster.
It depends a lot on the context and your permissions/access on your Indico instance, what solution is the best to recommend to you.
Thanks for your answer! I’m a user and manager in one subcategory on indico.gsi.de.
The main problem with cloning events and then manually modifying each clone is that it’s error prone and way too much effort to make adjustments to all upcoming events. I resorted to deleting upcoming clones, editing the next event, and doing the dance all over, when having to do modifications that affect all upcoming dates. And I regularly forget something in that process. Basically, I have to write a script that a human has to execute. And it’s really frustrating.
Indico-shell sounds like something I might use, but I guess I’d have to be an admin?
Correct. As far as I can see, with your current leven of permissions, you are bound to the HTTP interface. And the (more scriptable) HTTP API does not (yet?) allow write operations (as far as my limited knowledge reaches).
You may want to consider a solution with Selenium.
I strongly recommend against using UI automation tools for this. It will eventually break.
That instance is running v2.3.4. This version is over a year old, has a known XSS vuln (very minor though) and more importantly uses Python 2 which is end-of-life since the beginning of 2020. I strongly suggest asking your admins to update (@shesselbach, was it you managing the GSI instance?)
If the instance was using v3.0 or newer (v3.1 would be recommended!), you could simply create a personal token and use this to automated the endpoints used by the UI without having to deal with session cookies and logging in programmatically…
Yes, I manage the GSI installation and the update to 3.x is on my todo list. It may need still some time because I need to check/adapt some plugins.
FWIW while you should still update ASAP, we’ll release 3.2 in the next few weeks - so you may want to have a look at git
master as well to see whether your plugins work fine on that version as well. the most significant changes have been on the registration form so if you touched any of the frontend there some changes may be needed (but at least for plugins that’s unlikely)