Please note that I do not necessarily recommend using cyberchair, and that its author will install and customise it for you, for a fee.
The original form provided with cyberchair can be found on the cyberchair web site. Here is the modified UKCI 2003 form. As you can see we kept the first two questions on the form (although we modified the text somewhat). Cyberchair generates summaries of the reviews based on these two questions, but doesn't do anything special with any of the others (it just records them).
This section desribes the steps involved in adding a question to the review form. We add a series of radio buttons which allow the reviewer to rate the significance of the paper.
Some general notes:
If you edit the form content, old reviews will no longer work properly since the interpretation of these files is entirely based on the position of the data in it. An error will occur if an old file does not contain as many entries as expected. You can safely remove old reviews by deleting the files in /submitted/reviews.
In general, after modifying the form-generating code you need to run /adm/crontab/genReviewers.py to regenerate the HTML pages. Then click reload in your browser.
Procedure:
In cgi-bin/generatereview.py write a method like contribution_type to generate form elements (lists of radio buttons or text areas). Name it e.g. significance. This method accepts arguments to display values already set if this is an update of the form. Here's an example.
The cyberchair convention is to prefix these values with c_ so name it e.g. c_significance.
Edit cgi-bin/reviewfieldnames.py to insert the significance field in the appropriate place. E.g. add a line c_significance = 6 which indicates that c_significance is the 6th thing to be written to the review data files in /submitted/reviews. You'll have to increment the position number of any subsequent form elements.
The line to edit is in genreviewform in cgi-bin/generatereview.py. In our case we simply use '0' or an empty string for the new form elements, i.e.:
initvalues = ['1', str(refnr), str(papernr), '0', '0','','','','','','','']
In cgi-bin/generatereview.py call significance (the method you wrote to display the HTML form elements) from formcontent(init) passing as argument the significance data read from the review file. Append the result to formstr. E.g.:
formstr = formstr + significance (init[c_significance])
write_field(f, form, 'significance') # 3rd arg. is the HTML form button name from significance() in cgi-bin/generatereview.py
write_delim(f)
Add a method to cgi-bin/showreviewTable.py to display the HTML. Example here. Call the new method from showReviewForm(review) in cgi-bin/showreviewTable.py
This is done in the 2nd half of the section entitled 'main section' in cgi-bin/process_form.py. Example here.
Cyberchair's mechanism merely prints out a warning message if they have not. Edit /basicinfo/required_reviewform_fields.txt to add keywords and messages. The form data will be scanned for the keywords and if they are not present the message is printed. The first column of required_reviewform_fields.txt contains a number which might be the position of the form elements, although it differs from those in reviewfieldnames.py and does not actually seem to be used (I used 'a' for all my new entries and it still worked).