Custom themes, vidyo


I recently upgraded my old server from 1.1 to 2.0 and would like to know if it’s possible to re-use my custom themes, or build new ones if that’s not possible. I could not find documentation on this feature.

Also, I installed the vidyo plugin but cannot create a room, I get ‘This user does not have a suitable account to use Vidyo.’ when trying, but cannot find a way to set this up.



I’m afraid not. The old themes were in Mako, we now use Jinja. You can always re-use the CSS, of course.

First of all, I assume you have your own Vidyo tenant? Then, you need to provide the ID of the authenticator you are using in your indico.conf, under the option “Authenticators” (Vidyo Plugin Settings). The plugin will use it to retrieve the username of the current user. This is assuming that the usernames in the Authenticator and in Vidyo match.

Thanks for this quick reaction !

About themes, can you point to the documentation on adding and registering new ones ?

About indico, most of my users are CERN members so I was wondering if we could link in any way, but that’s probably naive.

There is no way of doing that “linking”, unfortunately. Usernames have to match the Vidyo identity and you’d have to have admin rights over our Vidyo API.

As for themes, you can check our custom CERN themes plugin, it’s pretty simple and should get you started. Basically, you’ll need to define your own plugin.

If you need to customize the application theme (and not just meeting themes) you can check these instructions.

Thanks, I’ll look at the plugin.


I developed a small plugin using yours as an example. I can use the css, but when I try to include templates for meetings (I copied templates/display/indico/meeting.html from the base module) I get errors even with no modifications at all. I get:

TypeError: astimezone() argument 1 must be datetime.tzinfo, not str

Because of the line

{{ render_event_time(event, timezone) }}

And if I remove this line, I get further errors… I just added the yaml configuration:

    <<: *standard
    stylesheet: mylab/mylab.scss
    template: :mylab/meeting.html
    title: MyLab Meeting



That template is not meant to be overridden - only the “body” of the meeting is. The default template for that is indico/modules/events/timetable/templates/display/indico/meeting.html.

BTW, maybe having a look at this helps you as well:
It also contains a theme that comes with custom templates.

Thanks, that’s the example I’m using.

However, in this, the themes come with lines such as:

template: :cern/administrative/event.html
tt_template: :cern/administrative/timetable.html

Which made me think that I could override both the timetable template (as you suggested) and the main one. I tried using the timetable one, and it indeed changes the timetable, but in my case that’s the header I want to change: do you know how I should proceed ?

It seems to work if I override both the template and tt_template, so I can work with that. It seems to contradict your answer, So I probably misunderstood something.


I just installed my themes plugin on a fresh 2.02 installation and the system does not ‘see’ my themes : would you by chance have an idea why ? I don’t know at all how this discovery works and don’t know where to look … It worked on my previous 2.0.0 installation but other things might have changed in the meantime (not in my plugin though).

Did you also load the plugin in your indico.conf?

Thanks, I’m now trying to, but I get

indico.plugins            Plugin XXXThemesPlugin does not exist

in my logs, While in my I have :

class XXXThemesPlugin(ThemesPluginBase):

So I’m lost

The class name doesn’t matter - check where your plugin is being registered. For example, in our case we have this:

    'indico.plugins': {'themes_cern = indico_custom_themes.plugins:CERNThemesPlugin',
                       'themes_lcagenda = indico_custom_themes.plugins:LCAgendaThemesPlugin'}

So the plugin names here are themes_cern and themes_lcagenda.

You can also run indico setup list_plugins on the command line ; that will show the names of all installed plugins.

Ah that’s it ! I was looking into the plugin file and completely forget about the setup.

Thanks a lot !