Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Overview

Indico CI Status License Available on PyPI Made at CERN!

Indico is:

  • πŸ—“ a general-purpose event management tool;
  • 🌍 fully web-based;
  • 🧩 feature-rich but also extensible through the use of plugins;
  • βš–οΈ Open-Source Software under the MIT License;
  • made at CERN, the place where the web was born!

A sneak peek of Indico

What does it do?

Indico's main features are:

  • a powerful and flexible hierarchical content management system for events;
  • a full-blown conference organization workflow with:
    • πŸ“’ Call for Abstracts and abstract reviewing modules;
    • πŸ“ flexible registration form creation and configuration;
    • πŸ’° integration with existing payment systems;
    • βœ… a paper reviewing workflow;
    • πŸ—“ a drag and drop timetable management interface;
    • 🎫 a simple badge editor with the possibility to print badges and tickets for participants;
  • tools for meeting management and archival of presentation materials;
  • a powerful room booking interface;
  • integration with existing video conferencing solutions;

A more detailed list can be found here. There is also a video!

I just want to try it out!

We've got a Sandbox πŸ§ͺ !

Browser support

These are the minimum versions of major browsers currently supported by Indico. We try to target all modern browsers as much as possible, but only issues detected on those will be considered at critical level.

Firefox
Firefox
Chrome
Chrome
Safari
Safari
Edge
Edge
78+ 83+ 13+ 17+

However, if you have an issue with a browser on this list, please feel free to open a bug report.

Getting Indico

Information on how to get the latest release can be found at the project's web site. There are installation guides for different systems available in the project's documentation.

Contributing

Indico is the result of the collective work of more than 100 different developers, translators and usability specialists of many nationalities. You can be the next one - read our Contribution Guide if you'd like to help out.

You don't need to know how to write code in order to help!

Roadmap

The full roadmap is available on the project site.

Community

The main meeting points for the community are:

We follow CERN's Values and the principles established by CERN's Code of Conduct.

History

This software project was initially funded by the European Union's FP5 programme πŸ‡ͺπŸ‡Ί , in what was called the Integrated Digital Conferencing Project, or just InDiCo. CERN was responsible for the development of the "Make-a-Confererence" workpackage (inspired by an already existing system called CDS Agenda, also developed at the Organization) which would then become what we nowadays know as Indico.

We have since stopped using the InDiCo acronym, as it no longer reflects accurately the nature of the project. The word Indico now has no particular meaning other than the product's name.


Made at CERN
Take part!

Note

In applying the MIT license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction.

Issues
  • cannot display timetable

    cannot display timetable

    i have created a meeting unfortunately it does not display the timetable. it displays a black page. even for conference events timetables cannot be displayed.

    norepro 
    opened by MariamNsubuga 30
  • Allow fail2ban protection

    Allow fail2ban protection

    # Ticket imported from Trac
    

    Fail2ban (​http://www.fail2ban.org/) allows to block IPs temporarily in case they try brute-force attacks on login/passwords. That system is quite universal and uses logfile entries. We would like to use it, but in order to work correctly, it must write the originating IP into the logfile, which is not the case presently. (Only the uid is printed with timestamp and error text.) Be careful to make sure the log text (analysed with regex) cannot trigger fake alerts and lock the site admins out. It must be safe against injection by trying false logins with UID="Login failed for 'hoffmann' from IP=127.0.0.1" for example.

    This request is relevant for Local and LDAP authentication, probably not for SSO (which has its own brute-force hacker filter) and maybe for NICE.

    p-medium enhancement 
    opened by DirkHoffmann 29
  • indico_initial_setup needs sudo

    indico_initial_setup needs sudo

    Hello,

    I'm trying to deploy indico under a cloud server within a virtualenv, where all the setup requirements are available. "easy_install indico" seems to do its job. When running indico_initial_setup, then I cannot do sudo because my user is not in the sudoers.

    $ indico_initial_setup

    • EGG found at /home/fortizmu/webapps/indico/venv/lib/python2.7/site-packages/indico-1.2.1rc9-py2.7.egg... unconfigured No previous installation of Indico was found. Please specify a directory prefix:

    You now need to configure Indico, by editing indico.conf or letting us do it for you. At this point you can:

    [c]opy the default values in etc/indico.conf.sample to a new etc/indico.conf and continue the installation

    [A]bort the installation in order to inspect etc/indico.conf.sample and / or to make your own etc/indico.conf

    What do you want to do [c/a]? c Copying Indico tree... /home/fortizmu/webapps/indico/venv/lib/python2.7/site-packages/indico-1.2.1rc9-py2.7.egg/MaKaC/consoleScripts/../../bin -> ./bin /home/fortizmu/webapps/indico/venv/lib/python2.7/site-packages/indico-1.2.1rc9-py2.7.egg/MaKaC/consoleScripts/../../doc -> ./doc /home/fortizmu/webapps/indico/venv/lib/python2.7/site-packages/indico-1.2.1rc9-py2.7.egg/MaKaC/consoleScripts/../../etc -> ./etc /home/fortizmu/webapps/indico/venv/lib/python2.7/site-packages/indico-1.2.1rc9-py2.7.egg/MaKaC/consoleScripts/../../htdocs -> ./htdocs Creating wsgi symlink... ./htdocs/indico.wsgi done! Creating directories for resources... done! Upgrading indico.conf... done!

    We cannot find a configured database at ./db.

    Do you want to create a new database now [Y/n]? Y

    Where do you want to install the database [./db]? uid/gid not provided. Trying to guess them... found apache(48) apache(48)

    We need to 'sudo' in order to set the permissions of some directories... [sudo] password for fortizmu:

    I've tried to move forward my omitting the sudo command in function _checkDirPermissions (in file installBase.py). The script then runs until the end:

    Congratulations! Indico has been installed correctly.

    indico.conf:      ./etc/indico.conf
    
    BinDir:           ./bin
    DocumentationDir: ./doc
    ConfigurationDir: ./etc
    HtdocsDir:        ./htdocs
    

    For information on how to configure Apache HTTPD, take a look at:

    http://indico.readthedocs.org/en/latest/installation/#configuring-the-web-server

    Please do not forget to start the 'taskDaemon' in order to use alarms, creation of off-line websites, reminders, etc. You can find it in './bin/taskDaemon.py'

    If you are running ZODB on this host:

    • Review ./etc/zodb.conf and ./etc/zdctl.conf to make sure everything is ok.
    • To start the database run: zdaemon -C ./etc/zdctl.conf start

    When trying to do that $ zdaemon -C ./etc/zdctl.conf start

    then there is the message: Error: only root can use -u USER to change users

    Is there a workaround for this? Can indico only be installed and deployed as "root"?

    As mentioned in the beginning, I can setup a venv where all the needed components (Python, Apache, mod_wsgi) are available. For example, within the same server I run applications based on similar technologies (e.g. Plone CMS).

    I very much appreciate your comments.

    Thank you in advance! Kind regards, Francisco

    opened by fortizmu 21
  • Optionally allow all registrants to access conference pages

    Optionally allow all registrants to access conference pages

    It makes sense that a user protects an event and configures it in such a way that only registered (and confirmed?) people can access it.

    This could be a configurable option, probably in the "protection" page.

    p-medium enhancement help wanted 
    opened by pferreir 20
  • Unable to start indico

    Unable to start indico

    So I've been trying to setup Indico on a VM using the Deployment guide. However, whenever i try starting the uwsgi service it throws the following error and terminates

    [uWSGI] getting INI configuration from /etc/uwsgi.ini
    *** Starting uWSGI 2.0.16 (64bit) on [Mon May  7 14:47:41 2018] ***
    compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-16) on 13 February 2018 02:48:03
    os: Linux-4.9.87-linuxkit-aufs #1 SMP Wed Mar 14 15:12:16 UTC 2018
    nodename: fe2cc1c14b17
    machine: x86_64
    clock source: unix
    pcre jit disabled
    detected number of CPU cores: 4
    current working directory: /opt/indico/etc
    writing pidfile to /run/uwsgi/uwsgi.pid
    detected binary path: /usr/sbin/uwsgi
    dropping root privileges as early as possible
    setgid() to 48
    setuid() to 997
    your memory page size is 4096 bytes
     *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
    detected max file descriptor number: 1048576
    lock engine: pthread robust mutexes
    thunder lock: disabled (you can enable it with --thunder-lock)
    uwsgi socket 0 bound to TCP address 127.0.0.1:8008 fd 3
    dropping root privileges after socket binding
    Python version: 2.7.5 (default, Aug  4 2017, 00:39:18)  [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
    Set PythonHome to /opt/indico/.venv
    Python main interpreter initialized at 0x1ff38a0
    dropping root privileges after plugin initialization
    python threads support enabled
    your server socket listen backlog is limited to 100 connections
    your mercy for graceful operations on workers is 60 seconds
    mapped 446520 bytes (436 KB) for 4 cores
    *** Operational MODE: preforking ***
    /opt/indico/indico/core/config.py:181: UserWarning: Ignoring unknown config key OS
      warnings.warn('Ignoring unknown config key {}'.format(key))
    /opt/indico/indico/core/config.py:181: UserWarning: Ignoring unknown config key AST
      warnings.warn('Ignoring unknown config key {}'.format(key))
    WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x1ff38a0 pid: 707 (default app)
    dropping root privileges after application loading
    spawned uWSGI master process (pid: 707)
    spawned uWSGI worker 1 (pid: 714, cores: 1)
    Mon May  7 14:47:44 2018 - mem-collector thread started for worker 1
    spawned uWSGI worker 2 (pid: 716, cores: 1)
    Mon May  7 14:47:44 2018 - mem-collector thread started for worker 2
    spawned uWSGI worker 3 (pid: 718, cores: 1)
    Mon May  7 14:47:45 2018 - mem-collector thread started for worker 3
    spawned uWSGI worker 4 (pid: 720, cores: 1)
    bind(): No such file or directory [core/socket.c line 230]
    ...brutally killing workers...
    unlink(): No such file or directory [core/uwsgi.c line 1661]
    Mon May  7 14:47:45 2018 - mem-collector thread started for worker 4
    Mon May  7 14:47:45 2018 - uWSGI worker 4 screams: UAAAAAAH my master disconnected: i will kill myself !!!
    

    Below is the uwsgi configuration

    [uwsgi]
    uid = indico
    gid = apache
    umask = 027
    pidfile = /run/uwsgi/uwsgi.pid
    
    processes = 4
    enable-threads = true
    socket = 127.0.0.1:8008
    stats = /opt/indico/web/uwsgi-stats.sock
    protocol = uwsgi
    
    master = true
    auto-procname = true
    procname-prefix-spaced = indico
    disable-logging = true
    
    plugin = python
    single-interpreter = true
    
    touch-reload = /opt/indico/indico.wsgi
    wsgi-file = /opt/indico/indico.wsgi
    virtualenv = /opt/indico/.venv
    
    vacuum = true
    buffer-size = 20480
    memory-report = true
    max-requests = 2500
    harakiri = 900
    harakiri-verbose = true
    reload-on-rss = 2048
    evil-reload-on-rss = 8192
    
    opened by iamgaurav 19
  • Wrong french translation...

    Wrong french translation...

    I successfully installed Indico "The version of this Indico installation is: 1.2.1rc5"

    However, I noted few annoying (french) translation errors

    DΓ©ssiner == Dessiner !! VΓ©rouill* == Verrouill*

    These are big mistakes. Try to use transiflex but the french score is 100%...

    opened by C138 19
  • UTF8 issue while migrating from 0.98 to 1.1

    UTF8 issue while migrating from 0.98 to 1.1

    # Ticket imported from Trac
    # Reported by: jdefaver
    

    Hi,

    i followed the instructions here:

    https://indico-software.org/wiki/Releases/Indico1.1

    in order to upgrade. in the migrate.py step, i got the following:

    [1289/1620 79.567901%] a058 PIC meeting                                          
    Migration failed! DB may be in  an inconsistent state:
    Traceback (most recent call last):
      File "/opt/indico/bin/migration/migrate.py", line 897, in main
        dry_run=args.dry_run)
      File "/opt/indico/bin/migration/migrate.py", line 843, in runMigration
        task(dbi, withRBDB, prevVersion)
      File "/opt/indico/bin/migration/migrate.py", line 734, in indexConferenceTitle
        nameIdx.index(conf.getId(), conf.getTitle().decode('utf-8'))
      File "/usr/lib64/python2.6/encodings/utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xb5 in position 44: invalid start byte
    

    Indico seems to work though, but only part of the meetings have been migated, and i have no idea of the consequences.

    Could you please help me :

    • solve this issue
    • get my indico installation in a nicer state

    I have a backup of the whole server from the morning before the upgrade.

    Thanks,

    Jerome

    P.S : in the instructions for upgrade, it would be nice to add that one should use easy_install -U indico instead of easy_install indico

    and that the --with-rb option comes with migrate.py and not indico_initial_setup

    bug p-medium 
    opened by indico-bot 18
  • Registrant export

    Registrant export

    The Indico data export API is quite complete for events already. But it would be nice, if we could export also the registrant/participant list of an event via that API. Same holds true for more specialised lists like "all speakers" or "all contributors". Any chance to get this soon? Probably the code is exisiting already (via dropdown menues, for CSV and PDF) and just needs refactoring.

    opened by DirkHoffmann 18
  • Provide example for a HTTP call to get all public data in iCalendar format

    Provide example for a HTTP call to get all public data in iCalendar format

    Please extend the documentatkon at https://indico.readthedocs.io/en/latest/http_api/ by an example, how information about all events can be obtained in iCalendar format without authentication. I mean I am not interested in getting secret information.

    enhancement 
    opened by dilyanpalauzov 18
  • Annoying behaviour of minute editor when clicking past the end of a line

    Annoying behaviour of minute editor when clicking past the end of a line

    As you can see in the animation, when you click after the end of a line in the minute editor, the cursor will go to the very beginning or very end depending on the line.

    Kapture 2021-09-21 at 11 59 05

    Not sure how much we can do here, but at least knowing what's the logic behind would be good.

    bug p-minor 
    opened by pferreir 1
  • Show zoom meeting details in conference header

    Show zoom meeting details in conference header

    Coming from a SNOW request (INC2921425)

    Creators of workshops and smaller conferences may want to show zoom details in their landing page's header, like it is shown in meetings/lectures.

    This could be done simply by calling the vc header hook in the conference template.

    enhancement 
    opened by javfg 0
  • Unlisted events: Global settings / ACL

    Unlisted events: Global settings / ACL

    This PR closes https://github.com/indico/indico/issues/5055.

    Adds a settings page in the customization tree (I thought the general settings are too global to include this in there) to add permissions to create unlisted events:

    image

    opened by javfg 0
  • docs: How to select API Keys scopes?

    docs: How to select API Keys scopes?

    I am quite confused by how are we supposed to choose the needed Scopes to use the Export/Event API with the suggested API Key authentication method.

    I'm trying to access to event 1062099, which shows as "Restricted" but:

    • with "Everything (any)" scope it fails
    • with "Classic API (any)" scope if fails

    It also fails with different ways of reporting the auth error (See #5093).

    The smaller set of scopes I found to be working to access this event is "Everything (Only GET)" and "Classic API (Read Only)".

    Is this expected? What's the logic behind this? I can open a PR on the docs to clarify this

    bug 
    opened by avivace 0
  • API: If

    API: If "OAuth error: insufficient_scope" happens, a non-JSON response is returned

    If I try to access a restricted event with a token with insufficient permissions the API replies with some kind of inline bad-serialized HTML code:

    <!DOCTYPE html>\n\n<html prefix="og: http://ogp.me/ns#"\n      data-static-site="false">\n<head>\n    <title>Indico</title>\n    <meta charset="UTF-8">\n    <meta http-equiv="X-UA-Compatible" content="IE=edge">\n    <meta name="csrf-token" id="csrf-token" content="4467860a-e6cd-4aa9-8a9c-90e012036f94">\n    <link rel="shortcut icon" type="image/x-icon" href="/images/indico.ico">\n\n    <meta property="og:site_name" content="Indico">\n    <meta property="og:image" content="https://indico.cern.ch/images/indico_square.png">\n    \n\n    <meta property="fb:app_id" content="269567379750914">\n    \n    \n    \n\n    \n        <script>\n            window.CKEDITOR_BASEPATH = "/dist/js/ckeditor/";\n        </script>\n    \n\n    <script type="text/javascript" src="/assets/i18n/en_GB.js"></script>\n    <script type="text/javascript" src="/assets/i18n/en_GB-react.js"></script>\n    <script type="text/javascript" src="/assets/js-vars/global.js"></script>\n\n    <script src="/dist/js/exports.d3290d8e.bundle.js"></script>\n    <script src="/dist/js/common-runtime.1b6cd358.bundle.js"></script>\n    <link rel="stylesheet" href="/dist/css/common.75c007ef.css" />\n    <script src="/dist/js/common.c0c39167.bundle.js"></script>\n    <script src="/dist/js/react.5378ae5d.bundle.js"></script>\n    <script src="/dist/js/semantic-ui.8edcb9fd.bundle.js"></script>\n    <link rel="stylesheet" href="/dist/css/semantic-ui.9c2fcb3d.css" />\n    <link rel="stylesheet" href="/dist/css/jquery.e01ea9a1.css" />\n    <script src="/dist/js/jquery.4c453f87.bundle.js"></script>\n    <link rel="stylesheet" href="/dist/css/main.095ebb19.css" />\n    <script src="/dist/js/main.0dac0cd2.bundle.js"></script>\n    <script src="/dist/js/module_core.7dcef8f4.bundle.js"></script>\n    <script src="/dist/js/module_events.creation.5fa2ba61.bundle.js"></script>\n    <script src="/dist/js/module_attachments.5d585c6c.bundle.js"></script>\n    <script src="/dist/js/outdatedbrowser.37fb499c.bundle.js"></script>\n    <link rel="stylesheet" href="/dist/css/outdatedbrowser.593540bb.css" />\n    <script src="/dist/js/ckeditor.b50a7c29.bundle.js"></script>\n    <script src="/static/plugins/ursh/dist/js/main.92f50b3b.bundle.js"></script>\n    \n    \n\n    \n\n    \n        <script>\n            moment.locale(["en-gb", \'en\']);\n            IndicoGlobalVars.isUserAuthenticated = true;\n        </script>\n    \n\n    <script type="text/javascript" src="/assets/js-vars/user.js"></script>\n\n    \n\n    <link rel="stylesheet" type="text/css" href="/static/custom/css/footer.css">\n    \n\n    <!-- Piwik -->\n<script>\n    (function() {\n        \'use strict\';\n\n        var url = \'//piwik.web.cern.ch/\';\n        var g = document.createElement(\'script\');\n        var s = document.getElementsByTagName(\'script\')[0];\n        g.type = \'text/javascript\';\n        g.defer = true;\n        g.async = true;\n        g.src = url + \'piwik.js\';\n        g.onload = init_tracking;\n        s.parentNode.insertBefore(g, s);\n\n        function init_tracking() {\n            try {\n                track_site();\n                \n            } catch(err) {}\n        }\n\n        function track_site() {\n            var general_tracker = Piwik.getTracker(url + \'piwik.php\', 59);\n            general_tracker.enableLinkTracking();\n            general_tracker.trackPageView();\n        }\n\n        \n    })();\n</script>\n<!-- End Piwik Code -->\n</head>\n<body data-user-id="122807"\n      data-debug="false">\n    \n        <div class="header">\n\n\n\n\n    \n    \n\n\n    \n    \n\n\n<div class="page-header clearfix">\n    <div class="flexrow f-j-space-between f-a-start">\n        <a style="min-height: 60px;" href="/">\n                <img class="header-logo" src="/images/logo_indico_bw.png">\n            </a>\n        \n\n        <div class="flexcol">\n            \n    \n\n    <div id="session-bar" class="session-bar flexrow f-j-end ">\n        <div class="toolbar">\n            <div class="group">\n                \n\n                \n    \n        <div id="tz-selector-widget" style="display: none;" class="tz-selector-widget settingsWidget">\n            <div style="line-height: 17px;">\n                <span class="settingsWidgetHeader">Choose Timezone</span><br>\n            </div>\n            <div class="settingsSeparator"></div>\n            <div class="tz-mode-container">\n                <div>\n                    <input type="radio" name="tz_mode" id="tz-mode-local" value="local"\n                           checked>\n                    <label for="tz-mode-local">Use the event/category timezone</label>\n                </div>\n                \n                    <div>\n                        <input type="radio" name="tz_mode" id="tz-mode-user" value="user"\n                               >\n                        <label for="tz-mode-user">\n                            Your default timezone\n                            <em>(Europe/Zurich)</em>\n                        </label>\n                    </div>\n                \n                <div>\n                    <input type="radio" name="tz_mode" id="tz-mode-custom" value="custom"\n                           >\n                    <label for="tz-mode-custom">Specify a timezone</label>\n                </div>\n            </div>\n            <select name="tz" class="tz-select" size="12" disabled>\n                <option value="Africa/Abidjan" >Africa/Abidjan</option><option value="Africa/Accra" >Africa/Accra</option><option value="Africa/Addis_Ababa" >Africa/Addis_Ababa</option><option value="Africa/Algiers" >Africa/Algiers</option><option value="Africa/Asmara" >Africa/Asmara</option><option value="Africa/Bamako" >Africa/Bamako</option><option value="Africa/Bangui" >Africa/Bangui</option><option value="Africa/Banjul" >Africa/Banjul</option><option value="Africa/Bissau" >Africa/Bissau</option><option value="Africa/Blantyre" >Africa/Blantyre</option><option value="Africa/Brazzaville" >Africa/Brazzaville</option><option value="Africa/Bujumbura" >Africa/Bujumbura</option><option value="Africa/Cairo" >Africa/Cairo</option><option value="Africa/Casablanca" >Africa/Casablanca</option><option value="Africa/Ceuta" >Africa/Ceuta</option><option value="Africa/Conakry" >Africa/Conakry</option><option value="Africa/Dakar" >Africa/Dakar</option><option value="Africa/Dar_es_Salaam" >Africa/Dar_es_Salaam</option><option value="Africa/Djibouti" >Africa/Djibouti</option><option value="Africa/Douala" >Africa/Douala</option><option value="Africa/El_Aaiun" >Africa/El_Aaiun</option><option value="Africa/Freetown" >Africa/Freetown</option><option value="Africa/Gaborone" >Africa/Gaborone</option><option value="Africa/Harare" >Africa/Harare</option><option value="Africa/Johannesburg" >Africa/Johannesburg</option><option value="Africa/Juba" >Africa/Juba</option><option value="Africa/Kampala" >Africa/Kampala</option><option value="Africa/Khartoum" >Africa/Khartoum</option><option value="Africa/Kigali" >Africa/Kigali</option><option value="Africa/Kinshasa" >Africa/Kinshasa</option><option value="Africa/Lagos" >Africa/Lagos</option><option value="Africa/Libreville" >Africa/Libreville</option><option value="Africa/Lome" >Africa/Lome</option><option value="Africa/Luanda" >Africa/Luanda</option><option value="Africa/Lubumbashi" >Africa/Lubumbashi</option><option value="Africa/Lusaka" >Africa/Lusaka</option><option value="Africa/Malabo" >Africa/Malabo</option><option value="Africa/Maputo" >Africa/Maputo</option><option value="Africa/Maseru" >Africa/Maseru</option><option value="Africa/Mbabane" >Africa/Mbabane</option><option value="Africa/Mogadishu" >Africa/Mogadishu</option><option value="Africa/Monrovia" >Africa/Monrovia</option><option value="Africa/Nairobi" >Africa/Nairobi</option><option value="Africa/Ndjamena" >Africa/Ndjamena</option><option value="Africa/Niamey" >Africa/Niamey</option><option value="Africa/Nouakchott" >Africa/Nouakchott</option><option value="Africa/Ouagadougou" >Africa/Ouagadougou</option><option value="Africa/Porto-Novo" >Africa/Porto-Novo</option><option value="Africa/Sao_Tome" >Africa/Sao_Tome</option><option value="Africa/Tripoli" >Africa/Tripoli</option><option value="Africa/Tunis" >Africa/Tunis</option><option value="Africa/Windhoek" >Africa/Windhoek</option><option value="America/Adak" >America/Adak</option><option value="America/Anchorage" >America/Anchorage</option><option value="America/Anguilla" >America/Anguilla</option><option value="America/Antigua" >America/Antigua</option><option value="America/Araguaina" >America/Araguaina</option><option value="America/Argentina/Buenos_Aires" >America/Argentina/Buenos_Aires</option><option value="America/Argentina/Catamarca" >America/Argentina/Catamarca</option><option value="America/Argentina/Cordoba" >America/Argentina/Cordoba</option><option value="America/Argentina/Jujuy" >America/Argentina/Jujuy</option><option value="America/Argentina/La_Rioja" >America/Argentina/La_Rioja</option><option value="America/Argentina/Mendoza" >America/Argentina/Mendoza</option><option value="America/Argentina/Rio_Gallegos" >America/Argentina/Rio_Gallegos</option><option value="America/Argentina/Salta" >America/Argentina/Salta</option><option value="America/Argentina/San_Juan" >America/Argentina/San_Juan</option><option value="America/Argentina/San_Luis" >America/Argentina/San_Luis</option><option value="America/Argentina/Tucuman" >America/Argentina/Tucuman</option><option value="America/Argentina/Ushuaia" >America/Argentina/Ushuaia</option><option value="America/Aruba" >America/Aruba</option><option value="America/Asuncion" >America/Asuncion</option><option value="America/Atikokan" >America/Atikokan</option><option value="America/Bahia" >America/Bahia</option><option value="America/Bahia_Banderas" >America/Bahia_Banderas</option><option value="America/Barbados" >America/Barbados</option><option value="America/Belem" >America/Belem</option><option value="America/Belize" >America/Belize</option><option value="America/Blanc-Sablon" >America/Blanc-Sablon</option><option value="America/Boa_Vista" >America/Boa_Vista</option><option value="America/Bogota" >America/Bogota</option><option value="America/Boise" >America/Boise</option><option value="America/Cambridge_Bay" >America/Cambridge_Bay</option><option value="America/Campo_Grande" >America/Campo_Grande</option><option value="America/Cancun" >America/Cancun</option><option value="America/Caracas" >America/Caracas</option><option value="America/Cayenne" >America/Cayenne</option><option value="America/Cayman" >America/Cayman</option><option value="America/Chicago" >America/Chicago</option><option value="America/Chihuahua" >America/Chihuahua</option><option value="America/Costa_Rica" >America/Costa_Rica</option><option value="America/Creston" >America/Creston</option><option value="America/Cuiaba" >America/Cuiaba</option><option value="America/Curacao" >America/Curacao</option><option value="America/Danmarkshavn" >America/Danmarkshavn</option><option value="America/Dawson" >America/Dawson</option><option value="America/Dawson_Creek" >America/Dawson_Creek</option><option value="America/Denver" >America/Denver</option><option value="America/Detroit" >America/Detroit</option><option value="America/Dominica" >America/Dominica</option><option value="America/Edmonton" >America/Edmonton</option><option value="America/Eirunepe" >America/Eirunepe</option><option value="America/El_Salvador" >America/El_Salvador</option><option value="America/Fort_Nelson" >America/Fort_Nelson</option><option value="America/Fortaleza" >America/Fortaleza</option><option value="America/Glace_Bay" >America/Glace_Bay</option><option value="America/Goose_Bay" >America/Goose_Bay</option><option value="America/Grand_Turk" >America/Grand_Turk</option><option value="America/Grenada" >America/Grenada</option><option value="America/Guadeloupe" >America/Guadeloupe</option><option value="America/Guatemala" >America/Guatemala</option><option value="America/Guayaquil" >America/Guayaquil</option><option value="America/Guyana" >America/Guyana</option><option value="America/Halifax" >America/Halifax</option><option value="America/Havana" >America/Havana</option><option value="America/Hermosillo" >America/Hermosillo</option><option value="America/Indiana/Indianapolis" >America/Indiana/Indianapolis</option><option value="America/Indiana/Knox" >America/Indiana/Knox</option><option value="America/Indiana/Marengo" >America/Indiana/Marengo</option><option value="America/Indiana/Petersburg" >America/Indiana/Petersburg</option><option value="America/Indiana/Tell_City" >America/Indiana/Tell_City</option><option value="America/Indiana/Vevay" >America/Indiana/Vevay</option><option value="America/Indiana/Vincennes" >America/Indiana/Vincennes</option><option value="America/Indiana/Winamac" >America/Indiana/Winamac</option><option value="America/Inuvik" >America/Inuvik</option><option value="America/Iqaluit" >America/Iqaluit</option><option value="America/Jamaica" >America/Jamaica</option><option value="America/Juneau" >America/Juneau</option><option value="America/Kentucky/Louisville" >America/Kentucky/Louisville</option><option value="America/Kentucky/Monticello" >America/Kentucky/Monticello</option><option value="America/Kralendijk" >America/Kralendijk</option><option value="America/La_Paz" >America/La_Paz</option><option value="America/Lima" >America/Lima</option><option value="America/Los_Angeles" >America/Los_Angeles</option><option value="America/Lower_Princes" >America/Lower_Princes</option><option value="America/Maceio" >America/Maceio</option><option value="America/Managua" >America/Managua</option><option value="America/Manaus" >America/Manaus</option><option value="America/Marigot" >America/Marigot</option><option value="America/Martinique" >America/Martinique</option><option value="America/Matamoros" >America/Matamoros</option><option value="America/Mazatlan" >America/Mazatlan</option><option value="America/Menominee" >America/Menominee</option><option value="America/Merida" >America/Merida</option><option value="America/Metlakatla" >America/Metlakatla</option><option value="America/Mexico_City" >America/Mexico_City</option><option value="America/Miquelon" >America/Miquelon</option><option value="America/Moncton" >America/Moncton</option><option value="America/Monterrey" >America/Monterrey</option><option value="America/Montevideo" >America/Montevideo</option><option value="America/Montserrat" >America/Montserrat</option><option value="America/Nassau" >America/Nassau</option><option value="America/New_York" >America/New_York</option><option value="America/Nipigon" >America/Nipigon</option><option value="America/Nome" >America/Nome</option><option value="America/Noronha" >America/Noronha</option><option value="America/North_Dakota/Beulah" >America/North_Dakota/Beulah</option><option value="America/North_Dakota/Center" >America/North_Dakota/Center</option><option value="America/North_Dakota/New_Salem" >America/North_Dakota/New_Salem</option><option value="America/Nuuk" >America/Nuuk</option><option value="America/Ojinaga" >America/Ojinaga</option><option value="America/Panama" >America/Panama</option><option value="America/Pangnirtung" >America/Pangnirtung</option><option value="America/Paramaribo" >America/Paramaribo</option><option value="America/Phoenix" >America/Phoenix</option><option value="America/Port-au-Prince" >America/Port-au-Prince</option><option value="America/Port_of_Spain" >America/Port_of_Spain</option><option value="America/Porto_Velho" >America/Porto_Velho</option><option value="America/Puerto_Rico" >America/Puerto_Rico</option><option value="America/Punta_Arenas" >America/Punta_Arenas</option><option value="America/Rainy_River" >America/Rainy_River</option><option value="America/Rankin_Inlet" >America/Rankin_Inlet</option><option value="America/Recife" >America/Recife</option><option value="America/Regina" >America/Regina</option><option value="America/Resolute" >America/Resolute</option><option value="America/Rio_Branco" >America/Rio_Branco</option><option value="America/Santarem" >America/Santarem</option><option value="America/Santiago" >America/Santiago</option><option value="America/Santo_Domingo" >America/Santo_Domingo</option><option value="America/Sao_Paulo" >America/Sao_Paulo</option><option value="America/Scoresbysund" >America/Scoresbysund</option><option value="America/Sitka" >America/Sitka</option><option value="America/St_Barthelemy" >America/St_Barthelemy</option><option value="America/St_Johns" >America/St_Johns</option><option value="America/St_Kitts" >America/St_Kitts</option><option value="America/St_Lucia" >America/St_Lucia</option><option value="America/St_Thomas" >America/St_Thomas</option><option value="America/St_Vincent" >America/St_Vincent</option><option value="America/Swift_Current" >America/Swift_Current</option><option value="America/Tegucigalpa" >America/Tegucigalpa</option><option value="America/Thule" >America/Thule</option><option value="America/Thunder_Bay" >America/Thunder_Bay</option><option value="America/Tijuana" >America/Tijuana</option><option value="America/Toronto" >America/Toronto</option><option value="America/Tortola" >America/Tortola</option><option value="America/Vancouver" >America/Vancouver</option><option value="America/Whitehorse" >America/Whitehorse</option><option value="America/Winnipeg" >America/Winnipeg</option><option value="America/Yakutat" >America/Yakutat</option><option value="America/Yellowknife" >America/Yellowknife</option><option value="Antarctica/Casey" >Antarctica/Casey</option><option value="Antarctica/Davis" >Antarctica/Davis</option><option value="Antarctica/DumontDUrville" >Antarctica/DumontDUrville</option><option value="Antarctica/Macquarie" >Antarctica/Macquarie</option><option value="Antarctica/Mawson" >Antarctica/Mawson</option><option value="Antarctica/McMurdo" >Antarctica/McMurdo</option><option value="Antarctica/Palmer" >Antarctica/Palmer</option><option value="Antarctica/Rothera" >Antarctica/Rothera</option><option value="Antarctica/Syowa" >Antarctica/Syowa</option><option value="Antarctica/Troll" >Antarctica/Troll</option><option value="Antarctica/Vostok" >Antarctica/Vostok</option><option value="Arctic/Longyearbyen" >Arctic/Longyearbyen</option><option value="Asia/Aden" >Asia/Aden</option><option value="Asia/Almaty" >Asia/Almaty</option><option value="Asia/Amman" >Asia/Amman</option><option value="Asia/Anadyr" >Asia/Anadyr</option><option value="Asia/Aqtau" >Asia/Aqtau</option><option value="Asia/Aqtobe" >Asia/Aqtobe</option><option value="Asia/Ashgabat" >Asia/Ashgabat</option><option value="Asia/Atyrau" >Asia/Atyrau</option><option value="Asia/Baghdad" >Asia/Baghdad</option><option value="Asia/Bahrain" >Asia/Bahrain</option><option value="Asia/Baku" >Asia/Baku</option><option value="Asia/Bangkok" >Asia/Bangkok</option><option value="Asia/Barnaul" >Asia/Barnaul</option><option value="Asia/Beirut" >Asia/Beirut</option><option value="Asia/Bishkek" >Asia/Bishkek</option><option value="Asia/Brunei" >Asia/Brunei</option><option value="Asia/Chita" >Asia/Chita</option><option value="Asia/Choibalsan" >Asia/Choibalsan</option><option value="Asia/Colombo" >Asia/Colombo</option><option value="Asia/Damascus" >Asia/Damascus</option><option value="Asia/Dhaka" >Asia/Dhaka</option><option value="Asia/Dili" >Asia/Dili</option><option value="Asia/Dubai" >Asia/Dubai</option><option value="Asia/Dushanbe" >Asia/Dushanbe</option><option value="Asia/Famagusta" >Asia/Famagusta</option><option value="Asia/Gaza" >Asia/Gaza</option><option value="Asia/Hebron" >Asia/Hebron</option><option value="Asia/Ho_Chi_Minh" >Asia/Ho_Chi_Minh</option><option value="Asia/Hong_Kong" >Asia/Hong_Kong</option><option value="Asia/Hovd" >Asia/Hovd</option><option value="Asia/Irkutsk" >Asia/Irkutsk</option><option value="Asia/Jakarta" >Asia/Jakarta</option><option value="Asia/Jayapura" >Asia/Jayapura</option><option value="Asia/Jerusalem" >Asia/Jerusalem</option><option value="Asia/Kabul" >Asia/Kabul</option><option value="Asia/Kamchatka" >Asia/Kamchatka</option><option value="Asia/Karachi" >Asia/Karachi</option><option value="Asia/Kathmandu" >Asia/Kathmandu</option><option value="Asia/Khandyga" >Asia/Khandyga</option><option value="Asia/Kolkata" >Asia/Kolkata</option><option value="Asia/Krasnoyarsk" >Asia/Krasnoyarsk</option><option value="Asia/Kuala_Lumpur" >Asia/Kuala_Lumpur</option><option value="Asia/Kuching" >Asia/Kuching</option><option value="Asia/Kuwait" >Asia/Kuwait</option><option value="Asia/Macau" >Asia/Macau</option><option value="Asia/Magadan" >Asia/Magadan</option><option value="Asia/Makassar" >Asia/Makassar</option><option value="Asia/Manila" >Asia/Manila</option><option value="Asia/Muscat" >Asia/Muscat</option><option value="Asia/Nicosia" >Asia/Nicosia</option><option value="Asia/Novokuznetsk" >Asia/Novokuznetsk</option><option value="Asia/Novosibirsk" >Asia/Novosibirsk</option><option value="Asia/Omsk" >Asia/Omsk</option><option value="Asia/Oral" >Asia/Oral</option><option value="Asia/Phnom_Penh" >Asia/Phnom_Penh</option><option value="Asia/Pontianak" >Asia/Pontianak</option><option value="Asia/Pyongyang" >Asia/Pyongyang</option><option value="Asia/Qatar" >Asia/Qatar</option><option value="Asia/Qostanay" >Asia/Qostanay</option><option value="Asia/Qyzylorda" >Asia/Qyzylorda</option><option value="Asia/Riyadh" >Asia/Riyadh</option><option value="Asia/Sakhalin" >Asia/Sakhalin</option><option value="Asia/Samarkand" >Asia/Samarkand</option><option value="Asia/Seoul" >Asia/Seoul</option><option value="Asia/Shanghai" >Asia/Shanghai</option><option value="Asia/Singapore" >Asia/Singapore</option><option value="Asia/Srednekolymsk" >Asia/Srednekolymsk</option><option value="Asia/Taipei" >Asia/Taipei</option><option value="Asia/Tashkent" >Asia/Tashkent</option><option value="Asia/Tbilisi" >Asia/Tbilisi</option><option value="Asia/Tehran" >Asia/Tehran</option><option value="Asia/Thimphu" >Asia/Thimphu</option><option value="Asia/Tokyo" >Asia/Tokyo</option><option value="Asia/Tomsk" >Asia/Tomsk</option><option value="Asia/Ulaanbaatar" >Asia/Ulaanbaatar</option><option value="Asia/Urumqi" >Asia/Urumqi</option><option value="Asia/Ust-Nera" >Asia/Ust-Nera</option><option value="Asia/Vientiane" >Asia/Vientiane</option><option value="Asia/Vladivostok" >Asia/Vladivostok</option><option value="Asia/Yakutsk" >Asia/Yakutsk</option><option value="Asia/Yangon" >Asia/Yangon</option><option value="Asia/Yekaterinburg" >Asia/Yekaterinburg</option><option value="Asia/Yerevan" >Asia/Yerevan</option><option value="Atlantic/Azores" >Atlantic/Azores</option><option value="Atlantic/Bermuda" >Atlantic/Bermuda</option><option value="Atlantic/Canary" >Atlantic/Canary</option><option value="Atlantic/Cape_Verde" >Atlantic/Cape_Verde</option><option value="Atlantic/Faroe" >Atlantic/Faroe</option><option value="Atlantic/Madeira" >Atlantic/Madeira</option><option value="Atlantic/Reykjavik" >Atlantic/Reykjavik</option><option value="Atlantic/South_Georgia" >Atlantic/South_Georgia</option><option value="Atlantic/St_Helena" >Atlantic/St_Helena</option><option value="Atlantic/Stanley" >Atlantic/Stanley</option><option value="Australia/Adelaide" >Australia/Adelaide</option><option value="Australia/Brisbane" >Australia/Brisbane</option><option value="Australia/Broken_Hill" >Australia/Broken_Hill</option><option value="Australia/Darwin" >Australia/Darwin</option><option value="Australia/Eucla" >Australia/Eucla</option><option value="Australia/Hobart" >Australia/Hobart</option><option value="Australia/Lindeman" >Australia/Lindeman</option><option value="Australia/Lord_Howe" >Australia/Lord_Howe</option><option value="Australia/Melbourne" >Australia/Melbourne</option><option value="Australia/Perth" >Australia/Perth</option><option value="Australia/Sydney" >Australia/Sydney</option><option value="Canada/Atlantic" >Canada/Atlantic</option><option value="Canada/Central" >Canada/Central</option><option value="Canada/Eastern" >Canada/Eastern</option><option value="Canada/Mountain" >Canada/Mountain</option><option value="Canada/Newfoundland" >Canada/Newfoundland</option><option value="Canada/Pacific" >Canada/Pacific</option><option value="Europe/Amsterdam" >Europe/Amsterdam</option><option value="Europe/Andorra" >Europe/Andorra</option><option value="Europe/Astrakhan" >Europe/Astrakhan</option><option value="Europe/Athens" >Europe/Athens</option><option value="Europe/Belgrade" >Europe/Belgrade</option><option value="Europe/Berlin" >Europe/Berlin</option><option value="Europe/Bratislava" >Europe/Bratislava</option><option value="Europe/Brussels" >Europe/Brussels</option><option value="Europe/Bucharest" >Europe/Bucharest</option><option value="Europe/Budapest" >Europe/Budapest</option><option value="Europe/Busingen" >Europe/Busingen</option><option value="Europe/Chisinau" >Europe/Chisinau</option><option value="Europe/Copenhagen" >Europe/Copenhagen</option><option value="Europe/Dublin" >Europe/Dublin</option><option value="Europe/Gibraltar" >Europe/Gibraltar</option><option value="Europe/Guernsey" >Europe/Guernsey</option><option value="Europe/Helsinki" >Europe/Helsinki</option><option value="Europe/Isle_of_Man" >Europe/Isle_of_Man</option><option value="Europe/Istanbul" >Europe/Istanbul</option><option value="Europe/Jersey" >Europe/Jersey</option><option value="Europe/Kaliningrad" >Europe/Kaliningrad</option><option value="Europe/Kiev" >Europe/Kiev</option><option value="Europe/Kirov" >Europe/Kirov</option><option value="Europe/Lisbon" >Europe/Lisbon</option><option value="Europe/Ljubljana" >Europe/Ljubljana</option><option value="Europe/London" >Europe/London</option><option value="Europe/Luxembourg" >Europe/Luxembourg</option><option value="Europe/Madrid" >Europe/Madrid</option><option value="Europe/Malta" >Europe/Malta</option><option value="Europe/Mariehamn" >Europe/Mariehamn</option><option value="Europe/Minsk" >Europe/Minsk</option><option value="Europe/Monaco" >Europe/Monaco</option><option value="Europe/Moscow" >Europe/Moscow</option><option value="Europe/Oslo" >Europe/Oslo</option><option value="Europe/Paris" >Europe/Paris</option><option value="Europe/Podgorica" >Europe/Podgorica</option><option value="Europe/Prague" >Europe/Prague</option><option value="Europe/Riga" >Europe/Riga</option><option value="Europe/Rome" >Europe/Rome</option><option value="Europe/Samara" >Europe/Samara</option><option value="Europe/San_Marino" >Europe/San_Marino</option><option value="Europe/Sarajevo" >Europe/Sarajevo</option><option value="Europe/Saratov" >Europe/Saratov</option><option value="Europe/Simferopol" >Europe/Simferopol</option><option value="Europe/Skopje" >Europe/Skopje</option><option value="Europe/Sofia" >Europe/Sofia</option><option value="Europe/Stockholm" >Europe/Stockholm</option><option value="Europe/Tallinn" >Europe/Tallinn</option><option value="Europe/Tirane" >Europe/Tirane</option><option value="Europe/Ulyanovsk" >Europe/Ulyanovsk</option><option value="Europe/Uzhgorod" >Europe/Uzhgorod</option><option value="Europe/Vaduz" >Europe/Vaduz</option><option value="Europe/Vatican" >Europe/Vatican</option><option value="Europe/Vienna" >Europe/Vienna</option><option value="Europe/Vilnius" >Europe/Vilnius</option><option value="Europe/Volgograd" >Europe/Volgograd</option><option value="Europe/Warsaw" >Europe/Warsaw</option><option value="Europe/Zagreb" >Europe/Zagreb</option><option value="Europe/Zaporozhye" >Europe/Zaporozhye</option><option value="Europe/Zurich" selected>Europe/Zurich</option><option value="GMT" >GMT</option><option value="Indian/Antananarivo" >Indian/Antananarivo</option><option value="Indian/Chagos" >Indian/Chagos</option><option value="Indian/Christmas" >Indian/Christmas</option><option value="Indian/Cocos" >Indian/Cocos</option><option value="Indian/Comoro" >Indian/Comoro</option><option value="Indian/Kerguelen" >Indian/Kerguelen</option><option value="Indian/Mahe" >Indian/Mahe</option><option value="Indian/Maldives" >Indian/Maldives</option><option value="Indian/Mauritius" >Indian/Mauritius</option><option value="Indian/Mayotte" >Indian/Mayotte</option><option value="Indian/Reunion" >Indian/Reunion</option><option value="Pacific/Apia" >Pacific/Apia</option><option value="Pacific/Auckland" >Pacific/Auckland</option><option value="Pacific/Bougainville" >Pacific/Bougainville</option><option value="Pacific/Chatham" >Pacific/Chatham</option><option value="Pacific/Chuuk" >Pacific/Chuuk</option><option value="Pacific/Easter" >Pacific/Easter</option><option value="Pacific/Efate" >Pacific/Efate</option><option value="Pacific/Enderbury" >Pacific/Enderbury</option><option value="Pacific/Fakaofo" >Pacific/Fakaofo</option><option value="Pacific/Fiji" >Pacific/Fiji</option><option value="Pacific/Funafuti" >Pacific/Funafuti</option><option value="Pacific/Galapagos" >Pacific/Galapagos</option><option value="Pacific/Gambier" >Pacific/Gambier</option><option value="Pacific/Guadalcanal" >Pacific/Guadalcanal</option><option value="Pacific/Guam" >Pacific/Guam</option><option value="Pacific/Honolulu" >Pacific/Honolulu</option><option value="Pacific/Kiritimati" >Pacific/Kiritimati</option><option value="Pacific/Kosrae" >Pacific/Kosrae</option><option value="Pacific/Kwajalein" >Pacific/Kwajalein</option><option value="Pacific/Majuro" >Pacific/Majuro</option><option value="Pacific/Marquesas" >Pacific/Marquesas</option><option value="Pacific/Midway" >Pacific/Midway</option><option value="Pacific/Nauru" >Pacific/Nauru</option><option value="Pacific/Niue" >Pacific/Niue</option><option value="Pacific/Norfolk" >Pacific/Norfolk</option><option value="Pacific/Noumea" >Pacific/Noumea</option><option value="Pacific/Pago_Pago" >Pacific/Pago_Pago</option><option value="Pacific/Palau" >Pacific/Palau</option><option value="Pacific/Pitcairn" >Pacific/Pitcairn</option><option value="Pacific/Pohnpei" >Pacific/Pohnpei</option><option value="Pacific/Port_Moresby" >Pacific/Port_Moresby</option><option value="Pacific/Rarotonga" >Pacific/Rarotonga</option><option value="Pacific/Saipan" >Pacific/Saipan</option><option value="Pacific/Tahiti" >Pacific/Tahiti</option><option value="Pacific/Tarawa" >Pacific/Tarawa</option><option value="Pacific/Tongatapu" >Pacific/Tongatapu</option><option value="Pacific/Wake" >Pacific/Wake</option><option value="Pacific/Wallis" >Pacific/Wallis</option><option value="US/Alaska" >US/Alaska</option><option value="US/Arizona" >US/Arizona</option><option value="US/Central" >US/Central</option><option value="US/Eastern" >US/Eastern</option><option value="US/Hawaii" >US/Hawaii</option><option value="US/Mountain" >US/Mountain</option><option value="US/Pacific" >US/Pacific</option><option value="UTC" >UTC</option>\n            </select>\n            \n                <div class="tz-update-user-container">\n                    <input type="checkbox" name="update_user" id="tz-update-user" value="1">\n                    <label for="tz-update-user">Remember these settings</label>\n                </div>\n            \n            <div class="tz-save-container">\n                <button class="i-button highlight" type="button"\n                        data-href="/change-timezone"\n                        data-method="POST"\n                        data-params-selector="#tz-selector-widget input[name=tz_mode]:checked,\n                                              #tz-selector-widget select[name=tz]:not(:disabled),\n                                              #tz-update-user:checked"\n                        data-reload-after\n                        data-ajax>\n                    Save\n                </button>\n            </div>\n        </div>\n\n        <a id="tz-selector-link" class="i-button icon-time arrow">Europe/Zurich</a>\n    \n\n\n                \n                    \n    <div id="user-settings-widget" style="display: none;" class="settingsWidget">\n        <div style="line-height: 17px;">\n            <span class="settingsWidgetHeader">Antonio Vivace</span><br>\n            <span style="font-size: 12px;">[email protected]</span>\n        </div>\n        <div class="settingsSeparator"></div>\n        <div class="settingsWidgetSection">\n            <a href="/user/122807/dashboard/">My profile</a>\n        </div>\n        <div class="settingsWidgetSection">\n            <a href="/user/122807/preferences/">My preferences</a>\n        </div>\n        <div class="settingsWidgetSection">\n            \n    \n    \n    \n        <a id="language-selector-link" class="arrow js-dropdown" data-toggle="dropdown">My language (English (United Kingdom))\n        </a>\n    \n    <ul class="i-dropdown">\n        \n            <li>\n                \n                    <a class="disabled" title="This is your current language.">English (United Kingdom)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;en_US&#34;}\'\n                       data-reload-after\n                       data-ajax>English (United States)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;es_ES&#34;}\'\n                       data-reload-after\n                       data-ajax>Espa\xc3\xb1ol (Espa\xc3\xb1a)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;fr_FR&#34;}\'\n                       data-reload-after\n                       data-ajax>Fran\xc3\xa7ais (France)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;pl_PL&#34;}\'\n                       data-reload-after\n                       data-ajax>Polski (Polska)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;pt_BR&#34;}\'\n                       data-reload-after\n                       data-ajax>Portugu\xc3\xaas (Brasil)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;tr_TR&#34;}\'\n                       data-reload-after\n                       data-ajax>T\xc3\xbcrk\xc3\xa7e (T\xc3\xbcrkiye)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;mn_MN&#34;}\'\n                       data-reload-after\n                       data-ajax>\xd0\x9c\xd0\xbe\xd0\xbd\xd0\xb3\xd0\xbe\xd0\xbb (\xd0\x9c\xd0\xbe\xd0\xbd\xd0\xb3\xd0\xbe\xd0\xbb)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;uk_UA&#34;}\'\n                       data-reload-after\n                       data-ajax>\xd0\xa3\xd0\xba\xd1\x80\xd0\xb0\xd1\x97\xd0\xbd\xd1\x81\xd1\x8c\xd0\xba\xd0\xb0 (\xd0\xa3\xd0\xba\xd1\x80\xd0\xb0\xd1\x97\xd0\xbd\xd0\xb0)</a>\n                \n            </li>\n        \n            <li>\n                \n                    <a data-href="/change-language"\n                       data-method="POST"\n                       data-params=\'{&#34;lang&#34;:&#34;zh_Hans_CN&#34;}\'\n                       data-reload-after\n                       data-ajax>\xe4\xb8\xad\xe6\x96\x87 (\xe4\xb8\xad\xe5\x9b\xbd)</a>\n                \n            </li>\n        \n    </ul>\n\n        </div>\n        \n        \n        <div style="border-bottom: 1px solid #ddd; margin-bottom: 5px; margin-top: 10px"></div>\n        <div class="settingsWidgetSection">\n            <a href="/logout/?next=%2Fexport%2Fevent%2F1062099.json%3F%26occ%3Dyes%26pretty%3Dyes%26detail%3Dsubcontributions">Logout</a>\n        </div>\n    </div>\n\n    <a id="user-settings-link" class="i-button icon icon-user arrow">\n        A. Vivace\n    </a>\n\n                \n            </div>\n        </div>\n    </div>\n\n            \n        </div>\n    </div>\n\n    <div class="global-menu toolbar">\n        \n            \n                \n                    <a href="/">Home</a>\n                \n            \n                \n                    <a class="arrow js-dropdown" href="#" data-toggle="dropdown">Create event</a>\n                    <ul class="i-dropdown">\n                        \n                \n                    \n                    <li>\n                        \n                            \n                            <a href="/#create-event:lecture"\n       \n           data-href="/event/create/lecture"\n           data-title="Create new lecture"\n           data-ajax-dialog\n           data-ignore-href\n       \n       id="create-lecture">\n        Create lecture\n    </a>\n                        \n                    </li>\n                \n            \n                \n                    \n                    <li>\n                        \n                            \n                            <a href="/#create-event:meeting"\n       \n           data-href="/event/create/meeting"\n           data-title="Create new meeting"\n           data-ajax-dialog\n           data-ignore-href\n       \n       id="create-meeting">\n        Create meeting\n    </a>\n                        \n                    </li>\n                \n            \n                \n                    \n                    <li>\n                        \n                            \n                            <a href="/#create-event:conference"\n       \n           data-href="/event/create/conference"\n           data-title="Create new conference"\n           data-ajax-dialog\n           data-ignore-href\n       \n       id="create-conference">\n        Create conference\n    </a>\n                        \n                    </li>\n                \n            \n                    </ul>\n                \n            \n                \n                    <a href="/rooms/">Room booking</a>\n                \n            \n                \n            \n                \n                    <a href="/user/dashboard/">My profile</a>\n                \n            \n                \n            \n        \n    </div>\n</div>\n\n<script type="text/html" id="event-type-tooltip-lecture">A <strong>lecture</strong> is a simple event to announce a talk.<br><strong>Features</strong>: poster creation, participant management, ...</script>\n<script type="text/html" id="event-type-tooltip-meeting">A <strong>meeting</strong> is an event that defines an agenda with multiple talks.<br><strong>Features</strong>: timetable, minutes, poster creation, participants management, ...</script>\n<script type="text/html" id="event-type-tooltip-conference">A <strong>conference</strong> is a complex event with features to manage the whole life cycle of a conference.<br><strong>Features</strong>: call for abstracts, registration, e-payment, timetable, badges creation, paper reviewing,...</script>\n\n<script>\n    (function() {\n        \'use strict\';\n\n        [\'lecture\', \'meeting\', \'conference\'].forEach(function(evt_type) {\n            $(\'#create-\' + evt_type).qtip({\n                content: $(\'#event-type-tooltip-\' + evt_type).html(),\n                position: {\n                    my: \'left center\',\n                    at: \'right center\'\n                }\n            });\n        });\n    })();\n</script></div>\n<div class="main"><div><div class="error-box">\n    <h1>Bad Request</h1>\n    <p>OAuth error: insufficient_scope: The request requires higher privileges than provided by the access token.</p>\n    \n    <div class="error-box-small">\n        <a href="/">Go to the main page</a>\n    </div>\n</div></div></div>\n<div class="footer ">\n    <div class="flexrow f-j-space-between">\n            <div class="flexrow f-a-center f-self-stretch">\n                <a href="https://home.cern/" class="footer-logo">\n        <img src="/static/custom/files/cern_small.png" alt="CERN">\n    </a>\n\n                <div class="f-self-no-shrink" style="margin-left: 1em;">\n                    <span>Powered by <a href="https://getindico.io">Indico</a> <span class="version">v3.0.2</span></span>\n                </div>\n            </div>\n            <ul class="footer-links">\n                <li>\n                    <a href="https://indico.docs.cern.ch/">\n                        Help\n                    </a>\n                </li>\n                \n                    <li>\n                        <a href="/contact">\n                            Contact\n                        </a>\n                    </li>\n                \n                \n                    <li>\n                        \n    <a href="/tos"\n       data-title="Terms and conditions"\n       data-href="/tos"\n       data-ajax-dialog\n       data-hide-page-header\n       data-close-button>\n        Terms and conditions\n    </a>\n\n                    </li>\n                \n                    <li>\n                        <a href="/url-shortener"\n   data-title="URL Shortener"\n   data-href="/url-shortener?url=https%3A%2F%2Findico.cern.ch%2Fexport%2Fevent%2F1062099.json%3F%26occ%3Dyes%26pretty%3Dyes%26detail%3Dsubcontributions"\n   data-ajax-dialog\n   data-hide-page-header\n   data-close-button>\n    URL Shortener\n</a>\n                    </li>\n                \n            </ul>\n            <div class="footer-extra f-self-stretch">\n                \n                \n            </div>\n        </div>\n    \n</div>\n\n<div id="outdated-browser"></div>\n    \n</body>\n</html>\n<!--\nQueries:         8\nDuration (sql):  0.016294s\nDuration (req):  0.079789s\nEndpoint:        api.httpapi\n-->
    

    This happens when the API key has "Everything (all methods)".

    When the API key scope is "Classic (Read Only)" I instead get an actual JSON correctly reporting the situation:

    b'{"error":"insufficient_scope","error_description":"The request requires higher privileges than provided by the access token."}\n'
    

    The called endpoint is of course the same one in both cases:

    import requests
    
    url = "https://indico.cern.ch/export/event/1062099.json?&occ=yes&pretty=yes&detail=subcontributions"
    headers = {"Authorization": "Bearer MY_API_KEY"}
    
    r = requests.get(url, headers = headers)
    
    bug 
    opened by avivace 0
  • Clarify difference between

    Clarify difference between "ticket" and "badge"

    This is a common source of confusion for users. It's not clear what the difference is. Our current interpretation seems to be:

    • Tickets - they have a "ticket" template on either side, or at least one "ticket" field (i.e. a QRCode)
    • Badges - they can contain anything which is not a "ticket" field or template

    I'm not sure it makes even much sense to differentiate the two so much at the UI level - the print dialogs are identical. This distinction was introduced mostly to deal with CERN's access workflow use case, where the ability to print a ticket may depend on whether personal data has been provided. I wonder if we cannot just say it's all badges, which it actually is under the hood...

    enhancement p-essential 
    opened by pferreir 0
  • Add basic support for custom statuses/registration tags

    Add basic support for custom statuses/registration tags

    Closes #4948

    This is a work-in-progress PR which adds the ability to create registration tags which can be used to mark and filter registrations. For a full description, see the linked issue.

    • [x] New management page to define registration tags (view,add,edit,delete)
    • [x] Assign and remove tags individually or in bulk
    • [x] Add ability to filter registrations based on these tags
    • [ ] Find a suitable icon (this one is already used by badges)
    • [ ] A better looking multiple select when assigning tags? Like the one from SUI

    The management area for defining these tags:

    image image image

    The registration list area where one can assign and filter by these tags:

    Screenshot from 2021-09-20 17-07-29 image image image

    opened by tomasr8 0
  • Improve overview of protected contents

    Improve overview of protected contents

    Several users have requested some sort of "overview" of elements of an event whose protection differs from the event itself. This would allow them to quickly see which bits of the event are restricted to each users/groups, or purposefully made public. This could be as simple as a (hierarchical) list of sessions/contributions/etc... which contains only the "diverging" contents.

    enhancement p-desirable 
    opened by pferreir 2
  • Expose attachments checksums in the export API

    Expose attachments checksums in the export API

    The /export/event/ endpoint seems to not mention any kind of checksum for the attached files.

    As I understood from the AbstractFile model, you do already compute and save MD5 checksums. If this is consistent through all the attached files in events, would it be possible to expose this information in the API?

    enhancement 
    opened by avivace 0
  • New lines in confirmation mails are not sent

    New lines in confirmation mails are not sent

    Describe the bug New lines in confirmation mails are not sent/are removed.

    To Reproduce Create a new event Go to Organization => Registration => General Settings Write a message including new lines into the field "Message for complete registrations" Register for the event Read the confirmation mail that was sent, it has none of the new lines inputted above.

    Expected behavior New lines should also occur in mails. Otherwise, writing longer confirmation mails is not feasible.

    bug 
    opened by 2xB 0
Releases(v3.0.2)
  • v3.0.2(Sep 9, 2021)

    :bug: Bugfixes

    • Fix JavaScript errors on the login page which caused problems when using multiple form-based login methods (e.g. LDAP and local Indico accounts)
    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Sep 8, 2021)

    :tada: Improvements

    • Allow filtering abstracts by custom fields having no value (#5033, #5034)
    • Add support for syncing email addresses when logging in using external accounts (#5035)
    • Use more space-efficient QR code version in registration tickets (#5052)
    • Improve user experience when accessing an event restricted to registered participants while not logged in (#5053)
    • When searching external users, prefer results with a name in case of multiple matches with the same email address (#5066)
    • Show program codes in additional places (#5075)
    • Display localized country names (#5070, #5076)

    :bug: Bugfixes

    • Show correct placeholders in date picker fields (#5022)
    • Correctly preselect the default currency when creating a registration form
    • Do not notify registrants when a payment transaction is created in "pending" state
    • Keep the order of multi-choice options in registration summary (#5020, #5032)
    • Correctly handle relative URLs in PDF generation (#5042, #5044)
    • Render markdown in track descriptions in PDF generation (#5043, #5044)
    • Fix error when importing chairpersons from an existing event (#5047)
    • Fix broken timetable entry permalinks when query string args are present (#5049)
    • Do not show "Payments" event management menu entry for registration managers (#5072)
    • Replace some hardcoded date formats with locale-aware ones (#5059, #5071)
    • Clone the scientific program description together with tracks (#5077)
    • Fix database error when importing registrations to an event that already contains a deleted registration form with registrations (#5078)

    :wrench: Internal Changes

    • Add event.before_check_registration_email signal (#5021, thanks @omegak)
    • Do not strip image maps in places where HTML is allowed (#5026, thanks @bpedersen2)
    • Add event.registration.after_registration_form_clone signal (#5037, thanks @vasantvohra)
    • Add registration-invite-options template hook (#5045, thanks @vasantvohra)
    • Fix Typeahead widget not working with extra validators (#5048, #5050, thanks @jbtwist)
    Source code(tar.gz)
    Source code(zip)
  • v3.0(Jul 16, 2021)

    Note that we only list the changes since 3.0rc2 here. Please make sure to also check the changelogs for 3.0rc1 and 3.0rc2.

    :trophy: Major Features

    • Add system notices which inform administrators about important things such as security problems or outdated Python/Postgres versions. These notices are retrieved once a day without sending any data related to the Indico instance, but if necessary, this feature can be disabled by setting SYSTEM_NOTICES_URL = None in indico.conf (#5004)
    • It is now possible to use SAML SSO for authentication without the need for Shibboleth and Apache (#5014)

    :bug: Bugfixes

    • Fix formatting and datetime localization in various PDF exports and timetable tab headers (#5009)
    • Show lecture speakers as speakers instead of chairpersons on the participant roles page (#5008)

    :wrench: Internal Changes

    • Signals previously exposed directly via signals.foo now need to be accessed using their explicit name, i.e. signals.core.foo (#5007)
    • Add category.extra_events signal (#5005, thanks @omegak)
    Source code(tar.gz)
    Source code(zip)
  • v3.0rc2(Jul 9, 2021)

    Since this is a prerelease, you need to use pip's --pre switch to install it, ie pip install --pre indico (same for indico-plugins)


    :trophy: Major Features

    • Add support for personal tokens. These tokens act like OAuth tokens, but are associated with a specific user and generated manually without the need of doing the OAuth flow. They can be used like API keys but with better granularity using the same scopes OAuth applications have, and a single user can have multiple tokens using various scopes. By default any user can create such tokens, but admins can restrict their creation. (#1934, #4976)

    :tada: Improvements

    • Add abstract content to the abstract list customization options (#4968)
    • Add CLI option to create a series (#4969)
    • Users cannot submit multiple anonymous surveys anymore by logging out and in again (#4693, #4970)
    • Improve reviewing state display for paper reviewers (#4979, #4984)
    • Make it clearer if the contributions/timetable of a conference are still in draft mode (#4977, #4986)
    • Add "send to speakers" option in event reminders (#4958, #4966, thanks @Naveenaidu)
    • Allow displaying all events descending from a category (#4982, #4983, thanks @omegak and @openprojects).
    • Add an option to allow non-judge conveners to update an abstract track (#4989)

    :bug: Bugfixes

    • Fix errors when importing events containing abstracts or event roles from a YAML dump (#4995)
    • Fix sorting abstract notification rules (#4998)
    • No longer silently fall back to the first event contact email address when sending registration emails where no explicit sender address has been configured (#4992, #4996, thanks @vasantvohra)
    • Do not check for event access when using a registration link with a registration token (#4991, #4997, thanks @vasantvohra)
    Source code(tar.gz)
    Source code(zip)
  • v3.0rc1(Jun 25, 2021)

    :bulb: Blog Post

    We published a blog post summarizing the most relevant changes for end users.

    :warning: Python 3 :snake:

    This major release starts the new Python-3-only era of Indico. 🐍

    Due to the massive changes that come with this, make sure to read the 2.x to 3.0 upgrade guide if you plan to upgrade an existing instance. Also, keep in mind that this is a prerelease, and things may be broken. πŸ’₯

    While we consider it very stable (it's running in production on the main CERN Indico instance for about a month now), we do not officially encourage you to upgrade your production instances yet. But if you are going to do it anyway (we know you want to!), please read that guide and have a backup. πŸ’Ύ

    Since this is a prerelease, you need to use pip's --pre switch to install it, ie pip install --pre indico (same for indico-plugins)


    :trophy: Major Features

    • There is a new built-in search module which provides basic search functionality out of the box, and for more advanced needs (such as full text search in uploaded files) plugins can provide their own search functionality (e.g. using ElasticSearch). (#4841)
    • Categories may now contain both events and subcategories at the same time. During the upgrade to 3.0 event creation is automatically set to restricted in all categories containing subcategories in order to avoid any negative surprises which would suddenly allow random Indico users to create events in places where they couldn't do so previously. (#4679, #4725, #4757)
    • The OAuth provider module has been re-implemented based on a more modern library (authlib). Support for the somewhat insecure implicit flow has been removed in favor of the code-with-PKCE flow. Tokens are now stored more securely as a hash instead of plaintext. For a given user/app/scope combination, only a certain amount of tokens are stored; once the limit has been reached older tokens will be discarded. The OAuth provider now exposes its metadata via a well-known URI (RFC 8414) and also has endpoints to introspect or revoke a token. (#4685, #4798)
    • User profile pictures (avatars) are now shown in many more places throughout Indico, such as user search results, meeting participant lists and reviewing timelines. (#4625, #4747, #4939)

    :flags: Internationalization

    • New locale: English (United States) :us:
    • New translation: Turkish :tr:

    :tada: Improvements

    • Use a more modern search dialog when searching for users (#4674, #4743)
    • Add an option to refresh event person data from the underlying user when cloning an event (#4750, #4760)
    • Add options for attaching iCal files to complete registration and event reminder emails (#1158, #4780)
    • Use the new token-based URLs instead of API keys for persistent ical links and replace the calendar link widgets in category, event, session and contribution views with the more modern ones used in dashboard (#4776, #4801)
    • Add an option to export editables to JSON (#4767, #4810)
    • Add an option to export paper peer reviewing data to JSON (#4767, #4818)
    • Passwords are now checked against a list of breached passwords ("Have I Been Pwned") in a secure and anonymous way that does not disclose any data. If a user logs in with an insecure password, they are forced to change it before they can continue using Indico (#4817)
    • Failed login attempts now trigger rate limiting to prevent brute-force attacks (#1550, #4817)
    • Allow filtering the "Participant Roles" page by users who have not registered for the event (#4763, #4822)
    • iCalendar exports now include contact data, event logo URL and, when exporting sessions/contributions, the UID of the related event. Also, only non-empty fields are exported. (#4785, #4586, #4587, #4791, #4820)
    • Allow adding groups/roles as "authorized abstract submitters" (#4834)
    • Direct links to (sub-)contributions in meetings using the URLs usually meant for conferences now redirect to the meeting view page (#4847)
    • Use a more compact setup QR code for the mobile Indico check-in app; the latest version of the app is now required. (#4844)
    • Contribution duration fields now use a widget similar to the time picker that makes selecting durations easier. (#2462, #4873)
    • Add new meeting themes that show sequential numbers instead of start times for contributions (#4899)
    • Remove the very outdated "Compact style" theme (it's still available via the themes_legacy plugin) (#4900, #4899)
    • Support cloning surveys when cloning events (#2045, #4910)
    • Show external contribution references in conferences (#4928, #4933)
    • Allow changing the rating scale in abstract/paper reviewing even after reviewing started (#4942)
    • Allow blacklisting email addresses for user registrations (#4644, #4946)

    :bug: Bugfixes

    • Take registrations of users who are only members of a custom event role into account on the "Participant Roles" page (#4822)
    • Fail gracefully during registration import when two rows have different emails that belong to the same user (#4823)
    • Restore the ability to see who's inheriting access from a parent object (#4833)
    • Fix misleading message when cancelling a booking that already started and has past occurrences that won't be cancelled (#4719, #4861)
    • Correctly count line breaks in length-limited abstracts (#4918)
    • Fix error when trying to access subcontributions while event is in draft mode
    • Update the user link in registrations when merging two users (#4936)
    • Fix error when exporting a conference timetable PDF with the option "Print abstract content of all contributions" and one of the abstracts is too big to fit in a page (#4881, #4955)
    • Emails sent via the Editing module are now logged to the event log (#4960)
    • Fix error when importing event notes from another event while the target event already has a deleted note (#4959)

    :wrench: Internal Changes

    • Require Python 3.9 🐍 - older Python versions (especially Python 2.7) are no longer supported
    • confId has been changed to event_id and the corresponding URL path segments now enforce numeric data (and thus pass the id as a number instead of string)
    • CACHE_BACKEND has been removed; Indico now always uses Redis for caching
    • The integration with flower (celery monitoring tool) has been removed as it was not widely used, did not provide much benefit, and it is no longer compatible with the latest Celery version
    • session.user now returns the user related to the current request, regardless of whether it's coming from OAuth, a signed url or the actual session (#4803)
    • Add a new check_password_secure signal that can be used to implement additional password security checks (#4817)
    • Add an endpoint to let external applications stage the creation of an event with some data to be pre-filled when the user then opens the link returned by that endpoint (#4628, thanks @adl1995)
    Source code(tar.gz)
    Source code(zip)
  • v2.3.5(May 11, 2021)

    :warning: Security fixes

    • Fix XSS vulnerabilities in the category picker (via category titles), location widget (via room and venue names defined by an Indico administrator) and the "Indico Weeks View" timetable theme (via contribution/break titles defined by an event organizer). As neither of these objects can be created by untrusted users (on a properly configured instance) we consider the severity of this vulnerability "minor" (#4897)

    :flags: Internationalization

    • New translation: Polish πŸ‡΅πŸ‡±
    • New translation: Mongolian πŸ‡²πŸ‡³

    :tada: Improvements

    • Add an option to not disclose the names of editors and commenters to submitters in the Paper Editing module (#4829, #4865)

    :bug: Bugfixes

    • Do not show soft-deleted long-lasting events in category calendar (#4824)
    • Do not show management-related links in editing hybrid view unless the user has access to them (#4830)
    • Fix error when assigning paper reviewer roles with notifications enabled and one of the reviewing types disabled (#4838)
    • Fix viewing timetable entries if you cannot access the event but a specific session inside it (#4857)
    • Fix viewing contributions if you cannot access the event but have explicit access to the contribution (#4860)
    • Hide registration menu item if you cannot access the event and registrations are not exempt from event access checks (#4860)
    • Fix inadvertently deleting a file uploaded during the "make changes" Editing action, resulting in the revision sometimes still referencing the file even though it has been deleted from storage (#4866)
    • Fix sorting abstracts by date (#4877)

    :wrench: Internal Changes

    • Add before_notification_send signal (#4874, thanks @omegak)
    Source code(tar.gz)
    Source code(zip)
  • v2.3.4(Mar 11, 2021)

    :warning: Security fixes

    • Fix some open redirects which could help making harmful URLs look more trustworthy by linking to Indico and having it redirect the user to a malicious site (#4814, #4815)
    • The BASE_URL is now always enforced and requests whose Host header does not match are rejected. This prevents malicious actors from tricking Indico into sending e.g. a password reset link to a user that points to a host controlled by the attacker instead of the actual Indico host (#4815, GHSA-wgpj-7c2j-vfjm, CVE-2021-30185)

    Note: If the webserver is already configured to enforce a canonical host name and redirects or rejects such requests, this cannot be exploited. Additionally, exploiting this problem requires user interaction: they would need to click on a password reset link which they never requested, and which points to a domain that does not match the one where Indico is running.

    :tada: Improvements

    • Fail more gracefully is a user has an invalid locale set and fall back to the default locale or English in case the default locale is invalid as well
    • Log an error if the configured default locale does not exist
    • Add ID-1 page size for badge printing (#4774, thanks @omegak)
    • Allow managers to specify a reason when rejecting registrants and add a new placeholder for the rejection reason when emailing registrants (#4769, thanks @vasantvohra)

    :bug: Bugfixes

    • Fix the "Videoconference Rooms" page in conference events when there are any VC rooms attached but the corresponding plugin is no longer installed
    • Fix deleting events which have a videoconference room attached which has its VC plugin no longer installed
    • Do not auto-redirect to SSO when an MS office user agent is detected (#4720, #4731)
    • Allow Editing team to view editables of unpublished contributions (#4811, #4812)

    :wrench: Internal Changes

    • Also trigger the ical-export metadata signal when exporting events for a whole category
    • Add primary_email_changed signal (#4802, thanks @openprojects)
    Source code(tar.gz)
    Source code(zip)
  • v2.3.3(Jan 25, 2021)

    :warning: Security fixes

    • JSON locale data for invalid locales is no longer cached on disk; instead a 404 error is triggered. This avoids creating small files in the cache folder for each invalid locale that is requested. (#4766)

    :flags: Internationalization

    • New translation: Ukrainian πŸ‡ΊπŸ‡¦

    :tada: Improvements

    • Add a new "Until approved" option for a registration form's "Modification allowed" setting (#4740, thanks @vasantvohra)
    • Show last login time in dashboard (#4735, thanks @vasantvohra)
    • Allow Markdown in the "Message for complete registrations" option of a registration form (#4741)
    • Improve video conference linking dropdown for contributions/sessions (hide unscheduled, show start time) (#4753)
    • Show timetable filter button in conferences with a meeting-like timetable

    :bug: Bugfixes

    • Fix error when converting malformed HTML links to LaTeX
    • Hide inactive contribution/abstract fields in submit/edit forms (#4755)
    • Fix adding registrants to a session ACL

    :wrench: Internal Changes

    • Videoconference plugins may now display a custom message for the prompt when deleting a videoconference room (#4733)
    • Videoconference plugins may now override the behavior when cloning an event with attached videoconference rooms (#4732)
    Source code(tar.gz)
    Source code(zip)
  • v2.3.2(Nov 30, 2020)

    :tada: Improvements

    • Disable title field by default in new registration forms (#4688, #4692)
    • Add gender-neutral "Mx" title (#4688, #4692)
    • Add contributions placeholder for emails (#4716, thanks @bpedersen2)
    • Show program codes in contribution list (#4713)
    • Display the target URL of link materials if the user can access them (#2599, #4718)
    • Show the revision number for all revisions in the Editing timeline (#4708)

    :bug: Bugfixes

    • Only consider actual speakers in the "has registered speakers" contribution list filter (#4712, thanks @bpedersen2)
    • Correctly filter events in "Sync with your calendar" links (this fix only applies to newly generated links) (#4717)
    • Correctly grant access to attachments inside public sessions/contribs even if the event is more restricted (#4721)
    • Fix missing filename pattern check when suggesting files from Paper Peer Reviewing to submit for Editing (#4715)
    • Fix filename pattern check in Editing when a filename contains dots (#4715)
    • Require explicit admin override (or being whitelisted) to override blockings (#4706)
    • Clone custom abstract/contribution fields when cloning abstract settings (#4724, thanks @bpedersen2)
    • Fix error when rescheduling a survey that already has submissions (#4730)
    Source code(tar.gz)
    Source code(zip)
  • v2.3.1(Oct 27, 2020)

    :warning: Security fixes

    • Fix potential data leakage between OAuth-authenticated and unauthenticated HTTP API requests for the same resource (#4663) Note: Due to OAuth access to the HTTP API having been broken until this version, we do not believe this was actually exploitable on any Indico instance. In addition, only Indico administrators can create OAuth applications, so regardless of the bug there is no risk for any instance which does not have OAuth applications with the read:legacy_api scope.

    :tada: Improvements

    • Generate material packages in a background task to avoid timeouts or using excessive amounts of disk space in case of people submitting several times (#4630)
    • Add new EXPERIMENTAL_EDITING_SERVICE setting to enable extending an event's Editing workflow through an OpenReferee server (#4659)

    :bug: Bugfixes

    • Only show the warning about draft mode in a conference if it actually has any contributions or timetable entries
    • Do not show incorrect modification deadline in abstract management area if no such deadline has been set (#4650)
    • Fix layout problem when minutes contain overly large embedded images (#4653, #4654)
    • Prevent pending registrations from being marked as checked-in (#4646, thanks @omegak)
    • Fix OAuth access to HTTP API (#4663)
    • Fix ICS export of events with draft timetable and contribution detail level (#4666)
    • Fix paper revision submission field being displayed for judges/reviewers (#4667)
    • Fix managers not being able to submit paper revisions on behalf of the user (#4667)

    :wrench: Internal Changes

    • Add registration_form_wtform_created signal and send form data in registration_created and registration_updated signals (#4642, thanks @omegak)
    • Add logged_in signal
    Source code(tar.gz)
    Source code(zip)
  • v2.3(Sep 14, 2020)

    :bulb: Blog Post

    We published a blog post summarizing the most relevant changes for end users.


    :trophy: Major Features

    • Add category roles, which are similar to local groups but within the scope of a category and its subcategories. They can be used for assigning permissions in any of these categories and events within such categories.
    • Events marked as "Invisible" are now hidden from the category's event list for everyone except managers (#4419, thanks @openprojects)
    • Introduce profile picture, which is for now only visible on the user dashboard (#4431, thanks @omegak)
    • Registrants can now be added to event ACLs. This can be used to easily restrict parts of an event to registered participants. If registration is open and a registration form is in the ACL, people will be able to access the registration form even if they would otherwise not have access to the event itself. It is also possible to restrict individual event materials and custom page/link menu items to registered participants. (#4477, #4528, #4505, #4507)
    • Add a new Editing module for papers, slides and posters which provides a workflow for having a team review the layout/formatting of such proceedings and then publish the final version on the page of the corresponding contribution. The Editing module can also be connected to an external microservice to handle more advanced workflows beyond what is supported natively by Indico.

    :flags: Internationalization

    • New translation: Chinese (Simplified) πŸ‡¨πŸ‡³

    :tada: Improvements

    • Sort survey list by title (#3802)
    • Hide "External IDs" field if none are defined (#3857)
    • Add LaTeX source export for book of abstracts (#4035, thanks @bpedersen2)
    • Tracks can now be categorized in track groups (#4052)
    • Program codes for sessions, session blocks, contributions and subcontributions can now be auto-generated (#4026)
    • Add draft mode for the contribution list of conference events which hides pages like the contribution list and timetable until the event organizers publish the contribution list. (#4095)
    • Add ICS export for information in the user dashboard (#4057)
    • Allow data syncing with multipass providers which do not support refreshing identity information
    • Show more verbose error when email validation fails during event registration (#4177)
    • Add link to external map in room details view (#4146)
    • Allow up to 9 digits (instead of 6) before the decimal point in registration fees
    • Add button to booking details modal to copy direct link (#4230)
    • Do not require new room manager approval when simply shortening a booking (#4214)
    • Make root category description/title customizable using the normal category settings form (#4231)
    • Added new LOCAL_GROUPS setting that can be used to fully disable local groups (#4260)
    • Log bulk event category changes in the event log (#4241)
    • Add CLI commands to block and unblock users (#3845)
    • Show warning when trying to merge a blocked user (#3845)
    • Allow importing event role members from a CSV file (#4301)
    • Allow optional comment when accepting a pre-booking (#4086)
    • Log event restores in event log (#4309)
    • Warn about cancelling/rejecting whole recurring bookings instead of just specific occurrences (#4092)
    • Add "quick cancel" link to room booking reminder emails (#4324)
    • Add visual information and filtering options for participants' registration status to the contribution list (#4318)
    • Add warning when accepting a pre-booking in case there are concurrent bookings (#4129)
    • Add event logging to opening/closing registration forms, approval/rejection of registrations, and updates to event layout (#4360, thanks @giusedb & @omegak)
    • Add category navigation dialog on category display page (#4282, thanks @omegak)
    • Add UI for admins to block/unblock users (#3243)
    • Show labels indicating whether a user is an admin, blocked or soft-deleted (#4363)
    • Add map URL to events, allowing also to override room map URL (#4402, thanks @omegak)
    • Use custom time picker for time input fields taking into account the 12h/24h format of the user's locale (#4399)
    • Refactor the room edit modal to a tabbed layout and improve error handling (#4408)
    • Preserve non-ascii characters in file names (#4465)
    • Allow resetting moderation state from registration management view (#4498, thanks @omegak)
    • Allow filtering event log by related entries (#4503, thanks @omegak)
    • Do not automatically show the browser's print dialog in a meeting's print view (#4513)
    • Add "Add myself" button to person list fields (e.g. for abstract authors) (#4411, thanks @jgrigera)
    • Subcontributions can now be managed from the meeting display view (#2679, #4520)
    • Add CfA setting to control whether authors can edit abstracts (#3431)
    • Add CfA setting to control whether only speakers or also authors should get submission rights once the abstract gets accepted (#3431)
    • Show the Indico version in the footer again (#4558)
    • Event managers can upload a custom Book of Abstract PDF (#3039, #4577)
    • Display each news item on a separate page instead of together with all the other news items (#4587)
    • Allow registrants to withdraw their application (#2715, #4585, thanks @brabemi & @omegak)
    • Allow choosing a default badge in categories (#4574, thanks @omegak)
    • Display event labels on the user's dashboard as well (#4592)
    • Event modules can now be imported from another event (#4518, thanks @meluru)
    • Event modules can now be imported from another event (#4518, #4533, thanks @meluru)
    • Include the event keywords in the event API data (#4598, #4599, thanks @chernals)
    • Allow registrants to check details for non-active registrations and prevent them from registering twice with the same registration form (#4594, #4595, thanks @omegak)
    • Add a new CUSTOM_LANGUAGES setting to indico.conf to override the name/territory of a language or disable it altogether (#4620)

    :bug: Bugfixes

    • Hide Book of Abstracts menu item if LaTeX is disabled and no custom Book of Abstracts has been uploaded
    • Use a more consistent order when cloning the timetable (#4227)
    • Do not show unrelated rooms with similar names when booking room from an event (#4089)
    • Stop icons from overlapping in the datetime widget (#4342)
    • Fix alignment of materials in events (#4344)
    • Fix misleading wording in protection info message (#4410)
    • Allow guests to access public notes (#4436)
    • Allow width of weekly event overview table to adjust to window size (#4429)
    • Fix whitespace before punctuation in Book of Abstracts (#4604)
    • Fix empty entries in corresponding authors (#4604)
    • Actually prevent users from editing registrations if modification is disabled
    • Handle LaTeX images with broken redirects (#4623, thanks @bcc)

    :wrench: Internal Changes

    • Make React and SemanticUI usable everywhere (#3955)
    • Add before-regform template hook (#4171, thanks @giusedb)
    • Add registrations kwarg to the event.designer.print_badge_template signal (#4297, thanks @giusedb)
    • Add registration_form_edited signal (#4421, thanks @omegak)
    • Make PyIntEnum freeze enums in Alembic revisions (#4425, thanks @omegak)
    • Add before-registration-summary template hook (#4495, thanks @omegak)
    • Add extra-registration-actions template hook (#4500, thanks @omegak)
    • Add event-management-after-title template hook (#4504, thanks @meluru)
    • Save registration id in related event log entries (#4503, thanks @omegak)
    • Add before-registration-actions template hook (#4524, thanks @omegak)
    • Add LinkedDate and DateRange form field validators (#4535, thanks @omegak)
    • Add extra-regform-settings template hook (#4553, thanks @meluru)
    • Add filter_selectable_badges signal (#4557, thanks @omegak)
    • Add user ID in every log record logged in a request context (#4570, thanks @omegak)
    • Add extra-registration-settings template hook (#4596, thanks @meluru)
    • Allow extending polymorphic models in plugins (#4608, thanks @omegak)
    • Wrap registration form AngularJS directive in jinja block for more easily overriding arguments passed to the app in plugins (#4624, thanks @omegak)
    Source code(tar.gz)
    Source code(zip)
  • v2.2.8(Apr 8, 2020)

  • v2.2.7(Mar 23, 2020)

    :tada: Improvements

    • Add support for event labels to indicate e.g. postponed or cancelled events (#3199)

    :bug: Bugfixes

    • Allow slashes in roomName export API
    • Show names instead of IDs of local groups in ACLs (#3700)
    Source code(tar.gz)
    Source code(zip)
  • v2.2.6(Feb 27, 2020)

    :bug: Bugfixes

    • Fix some email fields (error report contact, agreement cc address) being required even though they should be optional
    • Avoid browsers prefilling stored passwords in togglable password fields such as the event access key
    • Make sure that tickets are not attached to emails sent to registrants for whom tickets are blocked (#4242)
    • Fix event access key prompt not showing when accessing an attachment link (#4255)
    • Include event title in OpenGraph metadata (#4288)
    • Fix error when viewing abstract with reviews that have no scores
    • Update requests and pin idna to avoid installing incompatible dependency versions (#4327)
    Source code(tar.gz)
    Source code(zip)
  • v2.2.5(Dec 6, 2019)

    :tada: Improvements

    • Sort posters in timetable PDF export by board number (#4147, thanks @bpedersen2)
    • Use lat/lng field order instead of lng/lat when editing rooms (#4150, thanks @bpedersen2)
    • Add additional fields to the contribution csv/xlsx export (authors and board number) (#4148, thanks @bpedersen2)

    :bug: Bugfixes

    • Update the Pillow library to 6.2.1. This fixes an issue where some malformed images could result in high memory usage or slow processing.
    • Truncate long speaker names in the timetable instead of hiding them (#4110)
    • Fix an issue causing errors when using translations for languages with no plural forms (like Chinese).
    • Fix creating rooms without touching the longitude/latitude fields (#4115)
    • Fix error in HTTP API when Basic auth headers are present (#4123, thanks @uxmaster)
    • Fix incorrect font size in some room booking dropdowns (#4156)
    • Add missing email validation in some places (#4158)
    • Reject requests containing NUL bytes in the POST data (#4159)
    • Fix truncated timetable PDF when using "Print each session on a separate page" in an event where the last timetable entry of the day is a top-level contribution or break (#4134, thanks @bpedersen2)
    • Only show public contribution fields in PDF exports (#4165)
    • Allow single arrival/departure date in accommodation field (#4164, thanks @bpedersen2)
    Source code(tar.gz)
    Source code(zip)
  • v2.2.4(Oct 16, 2019)

    :warning: Security fixes

    • Fix more places where LaTeX input was not correctly sanitized.

    While the biggest security impact (reading local files) has already been mitigated when fixing the initial vulnerability in the previous release, it is still strongly recommended to update.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.11(Oct 16, 2019)

    :warning: Security fixes

    • Fix more places where LaTeX input was not correctly sanitized.

    While the biggest security impact (reading local files) has already been mitigated when fixing the initial vulnerability in the previous release, it is still strongly recommended to update.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.3(Oct 9, 2019)

    :warning: Security fixes (GHSA-67cx-rhhq-mfhq)

    • Strip @, +, - and = from the beginning of strings when exporting CSV files to avoid security issues when opening the CSV file in Excel
    • Use 027 instead of 000 umask when temporarily changing it to get the current umask
    • Fix LaTeX sanitization to prevent malicious users from running unsafe LaTeX commands through specially crafted abstracts or contribution descriptions, which could lead to the disclosure of local file contents

    :tada: Improvements

    • Improve room booking interface on small-screen devices (#4013)
    • Add user preference for room owners/manager to select if they want to receive notification emails for their rooms (#4096, #4098)
    • Show family name field first in user search dialog (#4099)
    • Make date headers clickable in room booking calendar (#4099)
    • Show times in room booking log entries (#4099)
    • Support disabling server-side LaTeX altogether and hide anything that requires it (such as contribution PDF export or the Book of Abstracts). LaTeX is now disabled by default, unless the XELATEX_PATH is explicitly set in indico.conf.

    :bug: Bugfixes

    • Remove 30s timeout from dropzone file uploads
    • Fix bug affecting room booking from an event in another timezone (#4072)
    • Fix error when commenting on papers (#4081)
    • Fix performance issue in conferences with public registration count and a high amount of registrations
    • Fix confirmation prompt when disabling conference menu customizations (#4085)
    • Fix incorrect days shown as weekend in room booking for some locales
    • Fix ACL entries referencing event roles from the old event when cloning an event with event roles in the ACL. Run indico maint fix-event-role-acls after updating to fix any affected ACLs (#4090)
    • Fix validation issues in coordinates fields when editing rooms (#4103)
    Source code(tar.gz)
    Source code(zip)
  • v2.1.10(Oct 9, 2019)

    This release is just backporting important security fixes from v2.2.3 in case you are still on v2.1 and cannot upgrade to v2.2.3 quickly.

    :warning: Security fixes

    • Strip @, +, - and = from the beginning of strings when exporting CSV files to avoid security issues when opening the CSV file in Excel
    • Use 027 instead of 000 umask when temporarily changing it to get the current umask
    • Fix LaTeX sanitization to prevent malicious users from running unsafe LaTeX commands through specially crafted abstracts or contribution descriptions, which could lead to the disclosure of local file contents
    Source code(tar.gz)
    Source code(zip)
  • v2.1.9(Aug 26, 2019)

  • v2.2.2(Aug 23, 2019)

  • v2.2.1(Aug 19, 2019)

    Improvements

    • Make list of event room bookings sortable (#4022)
    • Log when a booking is split during editing (#4031)
    • Improve "Book" button in multi-day events (#4021)

    Bugfixes

    • Add missing slash to the template_prefix of the designer module
    • Always use HH:MM time format in book-from-event link
    • Fix timetable theme when set to "indico weeks view" before 2.2 (#4027)
    • Avoid flickering of booking edit details tooltip
    • Fix outdated browser check on iOS (#4033)
    Source code(tar.gz)
    Source code(zip)
  • v2.2(Aug 6, 2019)

    Major Changes

    • ⚠️ Drop support for Internet Explorer 11 and other outdated or discontinued browser versions. Indico shows a warning message when accessed using such a browser. The latest list of supported browsers can be found in the README, but generally Indico now supports the last two versions of each major browser (determined at release time), plus the current Firefox ESR.
    • Rewrite the room booking frontend to be more straightforward and user-friendly. Check the blog for details.

    Improvements

    • Rework the event log viewer to be more responsive and not freeze the whole browser when there are thousands of log entries
    • Add shortcut to next upcoming event in a category (#3388)
    • Make registration period display less confusing (#3359)
    • Add edit button to custom conference pages (#3284)
    • Support markdown in survey questions (#3366)
    • Improve event list in case of long event titles (#3607, thanks @nop33)
    • Include event page title in the page's <title> (#3285, thanks @bpedersen2)
    • Add option to include subcategories in upcoming events (#3449)
    • Allow event managers to override the name format used in the event (#2455)
    • Add option to not clone venue/room of an event
    • Show territory/country next to the language name (#3968)
    • Add more sorting options to book of abstracts (#3429, thanks @bpedersen2)
    • Add more formatting options to book of abstracts (#3335, thanks @bpedersen2)
    • Improve message when the call for abstracts is scheduled to open but hasn't started yet
    • Make link color handling for LaTeX pdfs configurable (#3283, thanks @bpedersen2)
    • Preserve displayed order in contribution exports that do not apply any specific sorting (#4005)
    • Add author list button to list of papers (#3978)

    Bugfixes

    • Fix incorrect order of session blocks inside timetable (#2999)
    • Add missing email validation to contribution CSV import (#3568, thanks @Kush22)
    • Do not show border after last item in badge designer toolbar (#3607, thanks @nop33)
    • Correctly align centered footer links (#3599, thanks @nop33)
    • Fix top/right alignment of session bar in event display view (#3599, thanks @nop33)
    • Fix error when trying to create a user with a mixed-case email address in the admin area
    • Fix event import if a user in the exported data has multiple email addresses and they match different users
    • Fix paper reviewers getting notifications even if their type of reviewing has been disabled (#3852)
    • Correctly handle merging users in the paper reviewing module (#3895)
    • Show correct number of registrations in management area (#3935)
    • Fix sorting book of abstracts by board number (#3429, thanks @bpedersen2)
    • Enforce survey submission limit (#3256)
    • Do not show "Mark as paid" button and checkout link while a transaction is pending (#3361, thanks @driehle)
    • Fix 404 error on custom conference pages that do not have any ascii chars in the title (#3998)
    • Do not show pending registrants in public participant lists (#4017)

    Internal Changes

    • Use webpack to build static assets
    • Add React+Redux for new frontend modules
    • Enable modern ES201x features
    Source code(tar.gz)
    Source code(zip)
  • v2.1.8(Mar 12, 2019)

  • v2.1.7(Jan 24, 2019)

    Improvements

    • Add setting for the default contribution duration of an event (#3446)
    • Add option to copy abstract attachments to contributions when accepting them (#3732)

    Bugfixes

    • Really fix the oauthlib conflict (was still breaking in some cases)
    Source code(tar.gz)
    Source code(zip)
  • v2.1.6(Jan 24, 2019)

    Bugfixes

    • Allow adding external users as speakers/chairpersons (#3562)
    • Allow adding external users to event ACLs (#3562)
    • Pin requests-oauthlib version to avoid dependency conflict
    Source code(tar.gz)
    Source code(zip)
  • v2.1.5(Dec 7, 2018)

    Improvements

    • Render the reviewing state of papers in the same way as abstracts (#3665)

    Bugfixes

    • Use correct speaker name when exporting contributions to spreadsheets
    • Use friendly IDs in abstract attachment package folder names
    • Fix typo in material package subcontribution folder names
    • Fix check on whether registering for an event is possible
    • Show static text while editing registrations (#3682)
    Source code(tar.gz)
    Source code(zip)
  • v2.1.4(Sep 25, 2018)

    Bugfixes

    • Let managers download tickets for registrants even if all public ticket downloads are disabled (#3493)
    • Do not count deleted registrations when printing tickets from the badge designer page
    • Hide "Save answers" in surveys while not logged in
    • Fix importing event archives containing registrations with attachments
    • Fix display issue in participants table after editing data (#3511)
    • Fix errors when booking rooms via API
    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Aug 9, 2018)

    Security fixes

    • Only return timetable entries for the current session when updating a session through the timetable (#3474, thanks @glunardi for reporting)
    • Prevent session managers/coordinators from modifying certain timetable entries or scheduling contributions not assigned to their session
    • Restrict access to timetable entry details to users who are authorized to see them

    Improvements

    • Improve survey result display (#3486)
    • Improve email validation for registrations (#3471)

    Bugfixes

    • Point to correct day in "edit session timetable" link (#3419)
    • Fix error when exporting abstracts with review questions to JSON
    • Point the timetable to correct day in the session details
    • Fix massive performance issue on the material package page in big events
    • Fix error when using the checkin app to mark someone as checked in (#3473, thanks @femtobit)
    • Fix error when a session coordinator tries changing the color of a break using the color picker in the balloon's tooltip
    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Jun 11, 2018)

    Improvements

    • Show email address for non-anonymous survey submissions (#3258)

    Bugfixes

    • Show question description in survey results (#3383)
    • Allow paper managers to submit paper revisions
    • Fix error when not providing a URL for privacy policy or terms
    • Use consistent order for privacy/terms links in the footer
    • Fix cloning of locked events
    Source code(tar.gz)
    Source code(zip)
Repo for OpenCFP project, a PHP-based conference talk submission system

OpenCFP is a PHP-based conference talk submission system. OpenCFP is now in maintenance mode with only security fixes being accepted README Contents F

null 540 Sep 2, 2021
Open Source Event Manager. An event management tool tailored to Free and Open Source Software conferences.

Open Source Event Manager - osem.io An event management tool tailored to Free and Open Source Software conferences. Installation Please refer to our i

openSUSE 680 Sep 24, 2021
Conference planning tool: CfP, scheduling, speaker management

pretalx is a conference planning tool focused on providing the best experience for organisers, speakers, reviewers, and attendees alike. It handles th

null 397 Sep 18, 2021
conference management system

frab - conference management system frab is a web-based conference planning and management system. It helps to collect submissions, to manage talks an

null 642 Sep 12, 2021
Complete open source web conferencing system.

BigBlueButton BigBlueButton is an open source web conferencing system. BigBlueButton supports real-time sharing of audio, video, slides (with whiteboa

BigBlueButton 7k Sep 18, 2021
Open Conference System

Open Conference Systems Branches The current active branch of Open Conference Systems is ocs-dev-2_3 (https://github.com/pkp/ocs/tree/ocs-dev-2_3). Th

Public Knowledge Project 84 Sep 11, 2021