Code Monkey home page Code Monkey logo

indico's Introduction

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.

indico's People

Contributors

arescope avatar bpedersen2 avatar davidandreev avatar dependabot[bot] avatar dmartinc avatar duartegalvao avatar ferhatelmas avatar florv avatar foxbunny avatar governmentplates avatar javfg avatar jbenito3 avatar jt1 avatar leats avatar meluru avatar mic4ael avatar micsucmed avatar mvidalgarcia avatar nop33 avatar omegak avatar openprojects avatar panagiotappl avatar pedrogaudencio avatar pferreir avatar plourenco avatar seginyn avatar thiefmaster avatar tomasr8 avatar vasantvohra avatar vtran99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

indico's Issues

Optimize web page rendering process

# Ticket imported from Trac
# Originally assigned to: jatrzask

Google Page Speed says we could do much better. Here are some points that could be improved, and a tongue-in-cheek evaluation of the degree of difficulty of each one:

  • Leverage browser caching - medium - add caching info;
  • Combine external JavaScript - hard - get rid of domTT;
  • Minify CSS - medium - some lib required;
  • Enable gzip compression - easy;
  • Minify JavaScript - easy - apply jsbuild to other files;
  • Optimize the order of styles and scripts - hard;
  • Defer loading of JavaScript - very hard - maybe leave for later;
  • Specify image dimensions - easy;
  • Use efficient CSS selectors - medium;

Initial setup .py / .sh / .bat script

# Ticket imported from Trac
# Reported by: dmartinc

Juan already developed a function that takes care of directory creation / other tasks after an .egg install. It is located in MaKaC.consoleScripts.indicoInitialSetup.py ( main() function).

So it is already possible to perform this initial setup by launching an interpreter, importing MaKaC.consoleScripts.indicoInitialSetup (which will be available because the .egg will be already in the python path) and calling main().

However we should also write a .py / .sh / .bat script that the user only has to execute in order to call this.

Also, if possible, the .egg install function should place this file in the bin directory of the user, so that it is even easier to call. For this we can write code in the bdist_egg_indico function.

Update INSTALL.xml

# Ticket imported from Trac
# Reported by: dmartinc

Update INSTALL.xml with the new installation info:

-compatible with python 2.4, 2.5, 2.6 .

-ways to install: python setup install from source (but user needs to install dependencies), or easy_install and then indico_initial_install.py / .sh / .bat .

"Upload Template" Popup

# Ticket imported from Trac
# Reported by: cangelov
# Originally assigned to: cangelov

Setup>Upload template Popup; List of uploaded templates to be generated with Json service.

Guidelines and ideas for Vidyo plugin development

# Ticket imported from Trac
# Reported by: dmartinc
# Originally assigned to: dmartinc

-Make a copy of the EVO plugin. Following its folder structure is probably a good choice.

-Do some tests on how to programatically call web services (SOAP, WSDL) from Python. For this I made some research and it seems SUDS is the best choice. This link: [http://stackoverflow.com/questions/206154/whats-the-best-soap-client-library-for-python-and-where-is-the-documentation-fo] has a good discussion about it.

-Same way as for EVO, try to build a wrapper for calling the services. Use the same classes for doing network calls with a timeout as EVO uses. See also the CERNMCU plugin for doing calls with timeout.


-There is a big difference between EVO/CERNMCU and Vidyo:

*In EVO, a booking is a reservation of a virtual meeting room from a given start date to a given end date. Virtual rooms have a unique Id. Similar for the CERNMCU: we book resources in the MCU from a given start date to a given end date, by booking a "conference" in the MCU, whose id is its name.

*However in Vidyo rooms are permanent. Each Vidyo user has a private room; then he can invite other people (one or more) to his private room to have a videoconference with them. Or, a user with creator privileges can create a new public room that anyone can join (optionally with a password). It is possible to generate a URL for these rooms that people can use to join. These rooms can also be searched by name from the Vidyo client. The id of these rooms is its name (although internally they do have a numeric ID, this is not accessible through the API).

-So, the way that bookings are created through Indico must be well thought. Here are some of the alternatives:

1. Indico is a user of Vidyo with creator privileges. When an indico event manager creates an Indico booking, indico creates a permanent room in Vidyo and asks Vidyo to generate a URL to join it, that is then displayed to the manager and in the display pages so that people can join by just clicking on it (similar to EVO). To avoid name collisions, the name of the Vidyo room will be the title of the booking + the indico id of the event.  2 Vidyo bookings in the same Indico event should not have the same name (makes sense).

Example: there is an Indico event "AVC section meeting" with indico id 123. Its manager creates a Vidyo booking. By default the plugin will put "AVC section meeting" in the title, the event description in the booking description, etc. There are no start date / end date fields. There is an optional PIN (password) field (like EVO and CERNMCU). The manager presses "Save". Indico creates a meeting in the Vidyo system called: "AVC section meeting (indico-123)".

Problem of this approach: since Vidyo rooms are permanent, their number will only grow. So there should be a task that checks all the events with Vidyo meetings and erases them after the event end date has passed (leaving a 1day margin). This task could be called daily. If we don't want Vidyo rooms to be created inmediately when the event manager books them, a similar task could create them the previous day (also with a generous time margin). Having these tasks be efficient requieres a good use of the indexing mechanism or store information into the Vidyo plugin's *globalData* object (see CERNMCU plugin for example of *globalData* usage).

Or even better (but harder): with a reliable task manager, we could queue mini-tasks that delete the Vidyo meeting just when the Indico meeting ends (or 5-10-30 minutes later, this could be configured). We could also use a similar task to create the room just before the Indico event starts. However, we should also offer the event managers an option to extend the Vidyo meeting beyond the Indico time bounds. In this case, having start / end date fields would make sense. However, this whole create-just-in-time and destroy-just-in-time thing needs to be well thought and take into consideration that users can change event dates after the Vidyo bookings are created.

2. (I like this approach less) When an event manager creates a Vidyo booking, Indico will use the event creators private room for this. Or maybe, give the option to use one of the event manager's private rooms. This way, rooms are reusable; but what happens if an event creator makes several Indico events in the same time frame with Vidyo bookings?

3. Keep a pool of public rooms and have Indico assign them to events when the event managers need them. Problem: somehow we need to track when each room will be used or not, so that we never assign the same room to two bookings at the same time. Also if the event managers wants to use a password for the room, the password for a room will be needed to be changed dinamically when the meeting time comes.

View event page

# Ticket imported from Trac

The link to go the event home page is not clear at all. We need either to rename it, to change the placement or to do some nice graphics around :)

What about "Display event page"? at least, "display" was there in the old interface.

Summary / design document

# Ticket imported from Trac
# Reported by: dmartinc

We should make a short document describing what each function does, for example functions as: pre_install compiles de JS files, post_install creates the directories, etc.

Then draw a diagram showing which command (install, sdist, develop, etc.) calls what.

This will help maintaining and developing the install part of Indico.

Check that develop command creates all directories

# Ticket imported from Trac
# Reported by: dmartinc
# Originally assigned to: Pedro Ferreira <jose.pedro.ferreira@c...>

The develop command already creates directories when called (log, temp, and cache), by calling the ''createDirs()'' function.

Check if we want more directories created and that everything is correct.

Implement noreply@... addresses

# Ticket imported from Trac
# Originally assigned to: cemunoz

So that we don't receive mails in indico-team from people who want to contact the conference organizers.

Search results page doesn't render very well on IE7

# Ticket imported from Trac
# Originally assigned to: Cesar Munoz Orena <cesar.munoz.orena@c...>

i.e. the "Hits" part doesn't show up at all. Jose also reported some kind of funny behavior in his browser.

Fix broken meeting styles

# Ticket imported from Trac
# Originally assigned to: cemunoz

The CSS for some meeting styles is still very buggy. They could be somehow improved as well.

Meetings display: More > Export to PDF

# Ticket imported from Trac
# Originally assigned to: cemunoz
Another bug on new interface

go from todays GDB http://indicobeta.cern.ch/conferenceDisplay.py?confId=45481

and then more -> export to PDF

you get a 404 as it screws up the URL encoding and puts in an extra /"

URL should be 
http://indicobeta.cern.ch/conferenceTimeTable.py/customizePdf?showDays=all&showSessions=all&confId=45481

but you end up at 
http://indicobeta.cern.ch/%22http://indicobeta.cern.ch/conferenceTimeTable.py/customizePdf?showDays=all&amp;showSessions=all&amp;confId=45481%22

(even allowing for &amp; -> & conversion)

Support for mobile devices

# Ticket imported from Trac

Providing a "lite" version, like Facebook does now, that makes it easier for users accessing from mobile devices to use Indico.

Egg generator script

# Ticket imported from Trac
# Reported by: dmartinc

Egg generator script, as described by Juan.

This is already done in my public fix-setup branch.
I needed to add a custom bdist_egg command in order to accept the version argument.

Mark this task as completed when integrated :)

Do not add "pending" clones in modification control

# Ticket imported from Trac
# Originally assigned to: cemunoz

If account creation for a user is pending, and someone tries to add them as a modifier for an event, it should be verified if they are not already one.

Search within a category

# Ticket imported from Trac

In the old version it was possible to search within a category. We missed this with the new version.

We could somehow detect if we are displaying a category while writing in the search field, and if so, we can show a small pop-up with a checkbox asking "do you want to search within this category?"

Automatically update etc/zodb.conf and etc/zdctl.conf after install

# Ticket imported from Trac
# Reported by: dmartinc

With setup.py develop and install commands, and ''MaKaC.consoleScripts.indicoInitialSetup.main'' as well, we should update the values inside the installed ''etc/zodb.conf* and *etc/zdctl.conf'' as much as possible, looking into what is written in indico.conf (ZEO server host / port, DB directory, log directory, etc.).

For this look at how setup.py already changes file contents with regular expressions (for example the _versionInit function in setup.py).

Update internal development installation guide

# Ticket imported from Trac
# Reported by: dmartinc

Update the document at [https://espace.cern.ch/AVC-workspace/indico/Indico%20development/Development%20Install%20Guide.aspx] according to the new install method.

Language selections: do not write the country

# Ticket imported from Trac
The new interface at the moment for the ATLAS Meetings overview page here:
http://indicobeta.cern.ch/categOverview.py?selCateg=1l2

has two options:
  - English (USA)
  - Français (France)

I think some British people (like myself) might get a bit annoyed at 
there being only one specific kind of English available, and that it 
isn't English English.

Could you change it to just say English, without a specific country? 
Surely no one will notice and everyone will be happy, without having to 
(pretty pointlessly) implement a 'new' language.

Simplejson dependency problem

# Ticket imported from Trac
# Reported by: dmartinc

When doing easy_install cds-indico, simplejson will be fetched as a dependency. However simplejson is marked as zip-safe = True; therefore, it is installed as a zipped egg file.

First time that it is imported, the zipped egg has to be decompressed into a .eggcache directory. This directory is by default in the /home directory of the user; unless the PYTHON_EGG_CACHE variable is set up.

Possible solutions:

  1. Figure a way to specify that when simplejson is installed as a dependency from indico, it should not be zipped. But this does not seem possible.
  2. Check if there is a PYTHON_EGG_CACHE variable defined, and if not, change it and put it into the indico directory (e.g. /opt/indico/eggcache) with apache permissions.
  3. Make our own non-zipped simplejson egg (changing 1 line of its code to make it zip-safe=False), host in one of our servers, and fetch the simplejson dependency from there (we need to see how to write in setup.py that simplejson should be fetched from our server).
    Caveat: we should make a new egg for every new simplejson version.

Registration form: missing icons?

# Ticket imported from Trac

In the registration form, management area, registrants list, the icons to export to excel, pdf, etc disappear when the list is empty. This is confusing some users.

Change start/end date inline widgets

# Ticket imported from Trac

We've been receiving a lot of exceptions from users that change the start date of an event so that it is after the end date.
We should fix this by creating a unified widget that detects these problems on the client side before sending it to the server.
An idea would be to have two calendar widgets side by side.

ReportLab dependency problem

# Ticket imported from Trac
# Reported by: dmartinc

ReportLab is in pypi (Python Package Index) but installing it from there does not work, because it tries to do some C compiling that always fails.

Its developers say it's not easy_install friendly. They say the user should download the .tar.gz and install it with build / install etc.

Possible solutions:

-make an egg without the C optimizations and host it in one of our servers (similar to one of the solutions proposed for the simplejson problem, ticket #20).

-make a script that downloads the .tar.gz and builds and installs everything.

*Option 1: the user executes this script after installing.

*Option 2: This script will be called by bdist_egg (which is called by easy_install). Make a flag to not execute this script (because when we compile our own egg, we also will call bdist_egg and we do not want to compile reportlab). One problem with this script: the URL to download reportlab is dynamic (web page offers a different server depending on geolocation).

-give up and make a README explaining how to install reportlab.

Change footer

# Ticket imported from Trac

The current footer says "Powered by CDS Indico". There are other elements that could be included:

  • Version number? - we had it, but it was removed because we thought users didn't need to see that (moved to "About" page);
  • Short link to category? - It was there in production, but ideally the right place for it to be is the URL bar... on the other hand, short URLs would be nice for printouts (special CSS for printing?).

Create a timetable layout with weekdays as columns

# Ticket imported from Trac
I would like to have a layout for the timetable with the weekdays as columns

Cheers

Ola

This has been discussed previously. Will require changes in the TT architecture, though, since the timetable is organized it a "tab-per-day" logic.
The other issue is that of how parallel events in the same day will be handled.

Delete Event should be easier to find

# Ticket imported from Trac

Dear All,
I think the "delete" action for events is very difficult to find currently. How about adding it simply as a link in the left menu of the management pages? Last one in the list for eg.
Cheers,
Thomas

Detect pre-configured DB

# Ticket imported from Trac
# Reported by: dmartinc

For the install and develop commands, we should detect if there is a configured DB already, with:

Configuration.Config.getInstance().getDBConnectionParams()

If the values are the same as indico.conf.sample (localhost, 9675) offer to create a DB directory.

We should also add a flag ''--force-db-creation'' that forces these commands to prompt the user for DB creation.

Traceback when accessing TT in management mode (RB related)

# Ticket imported from Trac
# Originally assigned to: cemunoz

Issues with CRBS DB access?

User Comments

I was trying to edit the timetable on my meeting when this error cropped up.


Error details

exception message => unsubscriptable object
exception type => exceptions.TypeError
traceback => 
  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/base.py", line 444, in process
    res = self._process()

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/conferenceModif.py", line 565, in _process
    return p.display(**params)

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/base.py", line 139, in display
    return "%s%s%s"%( self._getHTMLHeader(), \

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/main.py", line 160, in _display
    body = WMainBase(self._getBody( params ), self._timezone, self._getNavigationDrawer(),

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/conferences.py", line 2209, in _getBody
    return self._applyFrame( self._getPageContent( params ) )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/conferences.py", line 3238, in _getPageContent
    return self._getTTPage(params)

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/conferences.py", line 3235, in _getTTPage
    return wc.getHTML(params)

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 188, in getHTML
    vars = self.getVars()

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/conferences.py", line 3178, in getVars
    vars['eventInfo'] = simplejson.dumps(DictPickler.pickle(self._conf, timezone=tz))

  File "/usr/lib/python2.4/site-packages/MaKaC/common/PickleJar.py", line 197, in pickle
    return DictPickler._pickle(object, globalPickleMap[clazz], timezone)

  File "/usr/lib/python2.4/site-packages/MaKaC/common/PickleJar.py", line 248, in _pickle
    result = method(object)

  File "/usr/lib/python2.4/site-packages/MaKaC/conference.py", line 3292, in getFavoriteRooms
    roomList.extend(map(lambda x: x._getName(), self.getBookedRooms()))

  File "/usr/lib/python2.4/site-packages/MaKaC/conference.py", line 2205, in getBookedRooms
    for r in self.getRoomBookingList():

  File "/usr/lib/python2.4/site-packages/MaKaC/conference.py", line 2180, in getRoomBookingList
    r = resvGuid.getReservation()

  File "/usr/lib/python2.4/site-packages/MaKaC/rb_location.py", line 305, in getReservation
    return CrossLocationQueries.getReservations(

  File "/usr/lib/python2.4/site-packages/MaKaC/rb_location.py", line 421, in getReservations
    return Location.parse( location ).factory.newReservation().getReservations( **kwargs )

  File "/usr/lib/python2.4/site-packages/MaKaC/plugins/RoomBooking/default/reservation.py", line 193, in getReservations
    return root[_RESERVATIONS].get( resvID )

request handler => <class 'MaKaC.webinterface.rh.conferenceModif.RHConfModifSchedule'>
url => http://indicobeta.cern.ch/confModifSchedule.py?confId=73604
parameters => 
slot = []
sessions = []
contributions = []
days = all
confId = 73604
headers => 
Host: indicobeta.cern.ch

Detect apache user automatically

# Ticket imported from Trac
# Reported by: dmartinc

For the install and develop commands, during directory creation / directory user check, we should try to detect apache user automatically in Linux.

For this, look for the id of the apache and '''www-data''' users. If one is found, use that one. If both or none are found, ask the user.

Sometimes resvId is None and we get an exception

# Ticket imported from Trac

User Comments

I am trying to book a conference room and I continue to receive a "invalid literal for int(): None."

Thanks.


Error details

exception message => invalid literal for int(): None
exception type => exceptions.ValueError
traceback => 
  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/base.py", line 431, in process
    self._checkParams( self._reqParams )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/conferenceModif.py", line 7411, in _checkParams
    RHRoomBookingBookingDetails._checkParams( self, params )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/roomBooking.py", line 940, in _checkParams
    locator.setRoomBooking( params )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/locators.py", line 281, in setRoomBooking
    self.__resvID = int( params['resvID'] )

request handler => <class 'MaKaC.webinterface.rh.conferenceModif.RHConfModifRoomBookingDetails'>
url => http://indicobeta.cern.ch/conferenceModification.py/roomBookingDetails?roomLocation=CERN&resvID=None&confId=73528
parameters => 
roomLocation = CERN
resvID = None
confId = 73528
headers => 
Host: indicobeta.cern.ch

Define the HTML tag policy for titles, descriptions, minutes...

# Ticket imported from Trac

The policy regarding HTML should be defined, for different cases:

  • Titles - Currently allowed, but will sometimes break the markup (not to speak of the effect it has on metadata). Since we currently allow CSS customization, maybe we could just get rid of it for good;
  • Descriptions - Mixed feelings here - a limited set of HTML would be OK. Once again, CSS customization should compensate for this;
  • Minutes - Should not have more freedom than descriptions or titles - inline minutes can break the layout;

HTML is no easy to cope with. We could either:

  • use some other format (WikiMarkup?) and then convert it to HTML in render time. We would then have the full control over the "safety" of the HTML;
  • remove/reject all the HTML except for tags inside a "whitelist";

Number 2 seems to be the most feasible right now.

Retrieving "Favorite users" causes traceback when accessing using a modification key

# Ticket imported from Trac
Error details

exception message => 'NoneType' object has no attribute 'getPersonalInfo'
exception type => exceptions.AttributeError
traceback => 
  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/base.py", line 444, in process
    res = self._process()

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/rh/contribMod.py", line 865, in _process
    return p.display(**self._getRequestParams())

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/base.py", line 139, in display
    return "%s%s%s"%( self._getHTMLHeader(), \

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/main.py", line 160, in _display
    body = WMainBase(self._getBody( params ), self._timezone, self._getNavigationDrawer(),

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/conferences.py", line 2209, in _getBody
    return self._applyFrame( self._getPageContent( params ) )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/contributions.py", line 419, in _getPageContent
    body = wcomponents.WTabControl( self._tabCtrl, self._getAW() ).getHTML( self._getTabContent( params ) )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/pages/contributions.py", line 492, in _getTabContent
    return wc.getHTML( params )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 4039, in getHTML
    return WTemplated.getHTML( self, pars )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 188, in getHTML
    vars = self.getVars()

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 4070, in getVars
    vars["searchResultsTable"] = WUserSearchResultsTable(self._multi).getHTML( res )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 2511, in getHTML
    return WTemplated.getHTML( self, {} )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 188, in getHTML
    vars = self.getVars()

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 2520, in getVars
    l.append( self.__getItemClass(principal)(self._multi).getHTML( principal, selected ) )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 1880, in getHTML
    return WTemplated.getHTML( self, {} )

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 188, in getHTML
    vars = self.getVars()

  File "/usr/lib/python2.4/site-packages/MaKaC/webinterface/wcomponents.py", line 1896, in getVars
    vars["currentUserBasket"] = self._rh._getUser().getPersonalInfo().getBasket()

request handler => <class 'MaKaC.webinterface.rh.contribMod.RHSearchSpeakers'>
url => http://indicobeta.cern.ch/contributionModification.py/searchSpk

Whoever fixes this could also change the "favorite" icon style. Right now people who are favorites seem exactly not to be. Maybe a 'greyed out' kind of thing would be better.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.