Exam Seating

This page is intended to document the aspects of the exam seating system that USG members are interested in learning about. With that said, anyone who finds it interesting is welcome to read it.

Table of Contents Design

Disregard the letters in square brackets (e.g. [a]) in the table of contents. They do not add meaning to the titles. They were simply designed to disambiguate sections on the ExamSeating page which have identical titles. That way, the links lead to the correct sections.

What is the exam seating system?

"In recent terms, Isaac Morland in CSCF has piloted a system for handling a large amount of the bureaucracy associated with midterm and final exams...It ought to represent a considerable simplification of the usual exam scheduling arrangements, particularly for midterm exams in multiple rooms...

The system will take a class list and assign each student a specific seat in one of the rooms assigned to your exam. It will then inform the student of his or her seat (via a secure web interface), and provide instructors with student-seat information as well. The instructor uploads the exam via another secure web interface, and the system prints the exams, with student names and ID numbers pre-printed on the exams. The exams are printed in order according to room and seat location, and distributed to proctors in the usual way. " — David McKinnon's email to instructors

Terminology

The following terms are seen on the Seat/Candidate Classification charts found here:

http://odyssey.uwaterloo.ca/teaching/ems/classify

Exam vs. Sitting

  • Every exam has people that need to write it.
  • Every sitting has seats available.

_Note_ : Although many instructors will not require this distinction, it is needed to take care of special cases.

Reserved

"Reserved" indicates that a seat will not be handled at all by the automatic system.

Purpose

  • Seats need to be reserved for exams where the instructors choose not to use the exam seating system.

Designation

"Designation" - the choice of rush vs. assigned seating

Designated

"Designated" - the selection between "rush" and "designated" will be/has been indicated.

Assigned
Selecting "assigned" as the designation means
  • the exams will be printed with exam-seating information
  • the candidates will be assigned seats

Rush
Selecting "rush" as the designation means
  • the exams will have blanks to be filled in
  • the candidates will just each find an available exam paper

Undesignated

"Undesignated" - the selection between "rush" and "designated" will _not_ be indicated.

Admin Unit

  • One course may be divided into various parts that are managed separately. In this case, each part is an admin unit.
  • Conversely, two or more courses may be managed together. In this case, these courses form one single admin unit.

_Note_ : The exam seating system allows some exams to be assigned and others to be rush with no particular pattern. As of Dec. 4, 2012, rush was not used at all.

Databases

Program-comprehension Tools

_See also_ : Fri, Dec 7 2012 09:54 entry of https://cs.uwaterloo.ca/cscf/internal/request_beta/UpdateRequest?86091

Schema visualization :

Where are the databases?

  • Databases are on posgres.cs.uwaterloo.ca, via port 5433

_See also_ : Thu, Dec 6 2012 10:07 entry of https://cs.uwaterloo.ca/cscf/internal/request_beta/UpdateRequest?86091

Table Naming Convention

The first word in the table name is the class in the schema. In other words, it is the postgres equivalent of the directory.

What tables are there?

Complete List of Tables
Schema visualization :

https://cs.uwaterloo.ca/~omnafees/schemas/

auth

  • authorization-related

CEL
  • CEL stands for Centre for Extended Learning.
  • USG only needs to deal with finals for distance education. Midterms are not handled by the exam seating system.

exam
RO

  • Imports the Registrar's Office's exam schedule.
OPD load

  • This loads information automatically, including UW IDs, courses, sections, and student names.
rooms
teaching

  • This is related to admin units.

_See Also_ : http://odyssey.uwaterloo.ca/teaching/admin

On Campus

USG Tasks Instructions

Midterms

Seat Assignment
This should be done in a transaction perhaps:

From Isaac Morland:

"Here are the steps that are performed weekly for midterms:

1) Wednesday: request list of OPD students from OPD (Hank Edwards, hedwards)...

The following query pulls a list of all the courses with examinations for the example week starting October 22:

select exam_id, admin_description from exam_exam natural join teaching_admin where primary_start_time between '2012-10-15' and '2012-10-22' order by admin_description;

2) Thursday: typically you will receive a .xls from Hank sometime Thursday. Please be patient as he is processing similar requests for other departments around the University. It will have columns for UW ID and course.

For the remaining steps, many queries are very similar, just applying different stored procedures to the same set of exams. I will write [current exams] to mean the following tail of a query:

... exam_exam where primary_start_time between '2012-10-15' and '2012-10-22'

(of course, substitute the appropriate begin and end dates).

3) Make sure all examinations for the next week have their default sittings (primary and OPD) set up. This is done by course staff clicking "create sittings". Make sure primary sittings have rooms attached.

INSERT INTO TABLE exam_sitting, exam_exam_sitting ...

4) Friday morning, after database has updated (about 10:15): Add students to examinations. This is done with the exam_add_candidates function, something like this:

select exam_id, exam_add_candidates (exam_id) from [current exams]

This selects candidates for the examinations, according to their membership in the sections attached to the admin unit, excluding students who have withdrawn (WD or WF grade). This will default all students to the primary sitting.

INSERT INTO TABLE exam_exam_student_sitting ...

5) Move OPD students to OPD sittings. This involves updating the sitting_id field of exam_exam_student_sitting appropriately based upon the information in the spreadsheet from OPD. More details to follow.

UPDATE exam_exam_student_sitting.sitting_id ...

6) Designate candidates. In practice this means designating as assigned all students in all sittings.

select exam_id, exam_assign_designate_candidates (exam_id, sitting_id) from exam_exam_sitting natural join [current exams]

UPDATE exam_exam_student_sitting.candidate_assigned = true ...

7) Designate seats in the non-OPD sittings. This means designating as assigned enough seats to handle the students.

select exam_id, exam_assign_designate_seats (exam_id, primary_sitting_id) from [current exams]

UPDATE exam_sitting_room_seat.seat_assigned = true ...

8) Check that everything looks right. This means opening up the main page for each examination and making sure that the total number selected = the number of candidates = seats designated as assigned. This could be done as a query, but the idea is to have some situational awareness so I do it by just looking at the main page for each examination within the time range.

These are all linked from https://odyssey.uwaterloo.ca/teaching/exam/.

9) Assign OPD seats. The 20060 magic number is the admin_id of the "OPD Accommodation" admin unit. This will also automatically allocate an appropriate number of spare copies for OPD.

select exam_test_assign_opd (sitting_id) from exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20060) and start_time between '2012-10-15' and '2012-10-22'

INSERT INTO exam_sitting_room ... INSERT INTO exam_exam_sitting_room ... INSERT INTO exam_exam_sitting_room_seat ...

10) Assign seats in primary sittings.

select exam_id, exam_assign_seats (exam_id, primary_sitting_id) from [current exams]

UPDATE exam_exam_sitting_room_seat.? ...

11) Allocate spare copies in primary sittings.

select exam_id, exam_assign_spare_count (exam_id, primary_sitting_id) from [current exams]

UPDATE exam_exam_sitting_room.? ...

12) Check that everything looks right. This means re-loading all the main pages for each examination and making sure that the total number selected = the number of candidates actually assigned a seat, and that there are no unseated candidates. Also, make sure the total spare count is shown, indicating that all rooms in all sittings have a spare count set. Again, this is situational awareness.

13) Assign sequence numbers.

select exam_id, exam_assign_sequence (exam_id) from [current exams]

At this point, the seat assignment side is completely ready for printing.

[Printed exams are in ijmorland@linux.cs:~/exams/*/*/ps/*.ps]

I left out what to do about special sittings - e.g., conflict accommodation or cultural accommodation, or whatever else an instructor may need. This comes up relatively rarely. They need to be handled at each stage - created on request, rooms attached to them, candidates allocated to them similar to step (5), and so on. The more you can handle this by expanding each step above to include any special cases, the less actual special handling you'll have to do (e.g. assigning sequence numbers twice), and the easier it will be because you'll be doing similar actions together.

UPDATE exam_exam_sitting_room_seat.? UPDATE exam_exam.?

Parallel to all of the above is a much shorter sequence of events involving preparing the PDF master, ending in approval of the PDF by a course staff member. Once both the assignment process detailed here and the PDF approval are done, the actual printing can go ahead."

_See also_ : Mon, Dec 17 2012 14:04 entry of https://cs.uwaterloo.ca/cscf/internal/request_beta/UpdateRequest?8609

Printing
Required programs
A. There is a program on Isaac's computer. It requires sitting IDs as input. (This program will be available in the core environment).

B. "SMB is mounted."

Steps
1. Click on an exam to access the sitting ID. 2. Make sure the font is OCR-compatible. 3. When you receive a request to process sittings, make directories.

4. Put PDF-format exams into the file system. 5. Use the script written by Isaac Morland called "Convert Versatile" to read PDF and to convert to PostScript. 6. Spool using printer-specific commands.

Note : With the Registrar's Office, there may be more than one exam in a sitting.

7. Get rid of the signature list for OPD, since OPD doesn't use it. 8. Copy to PDF directory. There is crossmounting, so you need to copy and delete. 9. Fill out the New Media Services Requisition (https://info.uwaterloo.ca/newmediaservices/newreq/index.php) online to automatically receive an email containing the PDF-format New Media Services form. 10. Fill out the PDF-format New Media Services form emailed to you. This form asks, e.g. which courses require printing and how many copies are needed. OPD sittings are simply mentioned on the same form as the one used for the regular exam, i.e. do not fill out a separate form for OPD sittings, because that makes price-calculation too complicated.

Deliver Exams to Instructors [a]
  • Given to a person.

If a course has no ISG and the exam seating system is being used for the first time, introduce the exam seating system to the instructor. After the boxes have arrived, explain how to use the following:

  • Map
  • Signature list
  • Printed lookup list

Finals

Use the Exam Scheduling Request Form :

What is it?

Exam Scheduling Request Form Location

"An electronic version of the scheduling request form can be found here: https://odyssey.uwaterloo.ca/inform/final-examination-request/ (WatIAM/Quest userid and password required)

_See Also_ :

It should be possible to handle the form using the same system as used in RT#78256, with two important changes:

1) each form will be "owned" by the instructor to whom the paper version is currently sent, and they should be authenticated; 2) the forms should be pre-created by a mostly automatic process based upon the class schedule rather than being created upon request.

_See also_ : Thu, Feb 23 2012 11:12 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

Ask Every Math Faculty Instructor to Complete the Exam Scheduling Request Form(done every term)

"Yesterday I sent a set of reminders to all form owners that had not been updated at all. We still need to be able to send reminders to form owners who have updated but not completed the forms.

Thinking about scheduling, I think it's reasonable, each morning, to remind the owners of any forms who updated the day before but who haven't completed. But how long should we wait before sending a 2nd, 3rd, etc. reminder? "

"The timing for updated-but-not-completed should be tighter than for not updated at all - not updated at all likely means they simply haven't had a chance to look at it, but updated and not completed may mean they think they are done even though they haven't actually indicated that they are done." -- Isaac Morland

_See also_ : Tue, Sep 4 2012 07:28 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84502

How to Send the Email
> I've discussed this with Katie Kent. I didn't realize just how big a
> problem sending email announcements out has been. At the moment I'm
> planning to write a script to send out an email to every Math Faculty
> instructor. I'll need you to "push the button" to actually run the script
and send the email. >
> It just occurred to me that I may be able to set up a mailing alias
> (now that I have a reasonable way of querying instructor userids) so
> I'm going to talk to MFCF first before writing the script. If this
> pans out, you'll just need to send an email with the appropriate text
> (probably based on the draft text I put together, but obviously the
> final wording is up to you) to some-appropriate-mailing-list-name@math. " -- Isaac Morland

_See Also_ : Fri, Apr 20 2012 14:22 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

`Also had to figure out how to email instructors; it turns out MUO has no reasonable way of emailing all instructors. Instead I wrote a script to send email using our transactional email sender (same as used by graduate admissions for notifications).

_See also_ : Fri, Apr 20 2012 14:21 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

Sample Email
"Colleagues,

It is now time to decide on arrangements for Spring 2012 final examinations. This term, we now have available an electronic version of the scheduling request form:

https://odyssey.uwaterloo.ca/inform/final-examination-request/ (WatIAM/Quest userid and password required)

Please let Nancy Orvis-Korn (norvisko@uwaterloo.ca) in MUO know if you need assistance or run into any trouble.

This form has one new question which offers you the option of using assigned seating for your midterms and/or final examination. " -- David McKinnon

_See Also_ : Fri, Apr 20 2012 14:22 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

Record Instructors' Responses

"There is an 'exam turnaround document' which Nancy in MUO normally fills in by hand with the information from the yellow forms. It looks like it should be easy to generate as a report from the database. Emails to instructors go out today; paper forms will go out Monday. " - Isaac Morland

_See also_ : Fri, Apr 20 2012 14:21 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

_See also_ : Mon, Apr 23 2012 14:27 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

The filled-in turnaround document is now available:

http://odyssey.uwaterloo.ca/test/final-examination-special

http://odyssey.uwaterloo.ca/test/final-examination-request (broken link)

I've attached an extract with course/instructor name for courses that haven't completed their online forms. I hope this gives you what you need for your mail-merge. It's already down to 66 courses.

There are some blank instructor names. These come about either because there are no instructors listed, or because there are multiple instructors but I'm not aware of a designated coordinator, or in a few CS cases because the ISCs are permanently assigned to the courses rather than just for the term (I used a query that only pulls term course assignments, not permanent assignments - this is a bit of a kludge which we can fix as we proceed).

A reminder of the URL for the online form:

https://odyssey.uwaterloo.ca/inform/final-examination-request/

note: trailing "/" is currently required, although I'm hoping to fix that.

Right now there are 60 forms not updated, 6 updated but not completed, and 30 completed.

Import Time and Room Assignments from the Registrar's Office`s (RO) Exam Schedule
How does the RO`s Exam Scheduling Work?
Questions
  • The interface between Quest and Cyon
  • How does the Registrar's Office interacts with the Cyon exam scheduling application
  • How does the Registrar's Office gathers the information concerning which courses need exams and their
durations and other important information

_See also_ : Wed, Oct 7 2009 10:43 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?69509

Answers The completely unmanageable (by hand) part of the process is handled by the Cyon exam scheduling software, but there are still numerous manual steps, some involving a substantial amount of manual work.

Conceptually, the process starts with distributing an "exam turnaround document" to exam reps from each faculty, who indicate which sections are held together and which sections should be scheduled at the same time. For example, in CS, typically all sections of a course will be held as one exam. In other departments, frequently different sections have different exams, but it is still sometimes thought appropriate to have all sections write at the same time.

Large exams (over 100 candidates) are pre-slotted, more or less exactly as requested by the various departments through their exam reps.

Ann loads a file of courses and a file of students from Quest into Cyon. She uses the information from exam reps to manually indicate which courses (really class sections) are combined or held at the same time. She also sets the "location" to a number of specific values to indicate DE courses, courses without exams, and WLU courses. The "location" field in Cyon is not used to indicate specific rooms or PAC sections.

Eventually she uses Cyon to choose specific time slots, first for DE courses and next for other courses, working around the DE schedule. Also pre-slotted exams are already fixed, so the automatic scheduling works around them.

Exam times are exported from Cyon into an Excel spreadsheet. She then manually assigns exams to specific rooms or PAC sections. Note that this manual process allows her to be clever occasionally - e.g. putting a slightly-too-large course into a PAC section which is in front of a PAC section containing a small course.

An attempt is made with "See Prof" exams, i.e., ones which are scheduled but not administered by the Registrar's Office, to put the room booking information into the exam schedule spreadsheet. Sometimes the Registrar's Office actually books the rooms, other times the department finds space. In this last case, the department is supposed to inform Ann so she can put the rooms in the schedule.

The Excel spreadsheet is simply converted to PDF to post on the web.

This means that the Excel spreadsheet is the only place where the final room assignments are known. Also, the record of which sections are held together is only available on the exam turnaround documents.

_See also_ : Fri, Dec 11 2009 15:01 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?69509

Import the RO Exam Schedules into the Exam Seating System
  • I recently implemented auto-import of the Registrar's Office final examination schedule into our examination management system. This takes the CSV file available via the OpenData project and automatically creates final examinations within the system and attaches the appropriate rooms or, in the PAC, portions of rooms. This will be used in July for this term's finals that are running in the system.

  • For December finals, I again imported the .csv version of the examination schedule into the system. This went mostly smoothly - there were some errors and oddities in the file, but once those were worked around everything else went smoothly.

  • We have a process to import a .csv version of the final examination schedule into the examination management system.

  • Ann Wendt seems happy to keep sending me the .csv version of the final examination schedule. We will re-visit this item if/when the Registrar's procedures for final examinations change.

_See also_ : Thu, Jun 30 2011 14:45, Mon, Jan 23 2012 14:58, Fri, May 4 2012 09:31 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?69509

Stamping - Customize the Exams

Steps

1. I have created Java code which works with the iText PDF manipulation library to stamp the required information on PDF files. The stamping takes place in two steps: first, take a PDF from an instructor and put a standard header in the top 4" of the first page and a standard footer in the bottom 3/4" of each page. Second, stamp the student-specific information on the exam blanks. The second phase includes code designed to take a directory of exam blanks and a PostgreSQL "copy" output file and produce the customized PDFs for printing.

_Future consideration_ : It may be desirable to customize non-exam-paper materials as well, including but not limited to OMR cards, answer booklets, and reference sheets. Central stores has an address printing device used to address magazines which may conceivably be adaptable for this purpose. In RT#43799 I made some preliminary enquiries along this line.

2. We used the customization for the CS 100 exam which will be written on Saturday. It worked fine using data exported from the ISG exam seating system.

The customization has been largely re-written to work directly from a PostgreSQL teaching/exams database. It also produces room maps, signature lists, and posting lists.

_See also_ : Mon, Mar 8 2010 14:28 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?69508

Stamp Components
Sequence Number in the Footer This term's papers had only the sequence number by way of individual identification in the footer. So if the cover page were to be torn off before marking, the examination papers would be anonymous to the markers. You could de-anonymize using the "mark entry list" available from the page for each examination.

_See also_ : Wed, Nov 16 2011 14:27 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?77121 Permitted Materials

"Could the first page exam stamp also include a spot for the student's signature (with a note to sign using a pen)?" -- CS instructor

Permitted materials are now part of the examination stamping process. We would still like to incorporate a signature box if possible.

_See also_ : Mon, Jan 23 2012 15:02 entry of Mon, Jan 23 2012 15:02

Section Number Right now, we always print the primary section number (lecture section) on the identification label/block of each paper. At present it isn't configurable to print tutorial sections, for example - it always does the enrollment section. That's because The teaching/examination printing system currently doesn't know about enrollment sections.

Once it does it will be easy enough to print both lecture and tutorial sections on the papers. We want to have the option of printing other section numbers - e.g. LAB or TUT sections.

_See also_ : Wed, Oct 20 2010 12:31, Sun, Feb 20 2011 09:00, and Mon, Jan 23 2012 15:01 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?74802

Produce Print Jobs

  • Right now, I have to run a Java program to produce PDFs, then copy the results to the core region and run a program there to produce .ps files. This second program requires a separate parameter for single vs. double sided, and an extra number for how many unlabelled copies to produce.

  • Before producing the print job, sequence numbers also need to be assigned. Also, in order to support late (or at least, later) changes to examination seating (RT#80637), I would like to assign seats only upon the candidate requesting their seat location. If this is done then print production requires that any un-assigned candidates be given seats.

  • _Future Consideration_ : All of the above actions should take place automatically when a print job is requested for a given sitting (subject to the caveat that in some cases it will be necessary to print different examinations for the same sitting at different times).

  • Java program has been updated to include the duplexing mode in the file name. Additionally, it has been updated to recognize the spare count feature already added to the database. It will now generate as many blank papers for each exam/sitting/room as specified by the spare_count field.

  • This allowed me to write a new PDF -> PS conversion script that takes only one parameter: the directory to convert. It obtains the duplexing information from the filename and blanks are already included by the PDF generation.

  • _Future consideration_ : Next step is to support spare_count in the user interface.

See also : Thu, Feb 2 2012 08:55 and Fri, Feb 17 2012 10:55 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81273

Set Up the Queues for the Ricoh Machines
"As part of automating print production for examination printing, we need to be able to spool to the Graphics queues (Ricoh - csgsc-graphics, csadmin_graphics; and Docutech - docutech6180) from the web server. This is so the web interface for Graphics staff can spool files upon their request.

Right now we use "lpr -Pcsgsc_graphics" from core.cs or services108.cs to send files to print. Other relevant queues are "docutech6180" and "csadmin_graphics".

Discussed with Fraser. He indicated that setting up the queues on www150.cs is the way to go. He would also like PPDs for the printers so they can be fully set up in CUPS, although the normal use will be with lpr which bypasses CUPS." -- Isaac Morland

_See also_ : Thu, Sep 13 2012 10:17 and Thu, Sep 13 2012 12:52 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84796

Find Out the Printers' Models

"Can you please remind me the model number of the Ricoh printers, both where you are and in the DC Copy Centre (or whatever it's called now)?"

Setup

"In ST#84816 I've configured printing on www150.cs. (It was running lpd from the ubuntu lpr package. Now it's running cups.) Because of the BrowsePoll config, it tracks the print queues on print.cs.

Of the queues requested in this ST, only docutech6180. Isaac, please test whether that works.

I'll add the other queues when I have make, model and ppd info for them." - Fraser Gunn

I created these two new cups print queues on print.cs (alias for cups1.cs):

graphics_dc_ricoh Description: [CS internal] Ricoh Aficio 1060 Location: DC 1820B, Media.doc DC Driver: Ricoh Aficio 1060 PS (grayscale, 2-sided printing) Connection: lpd://lpr.graphics.uwaterloo.ca/cs Defaults: job-sheets=none, none media=na_letter_8.5x11in sides=two-sided-long-edge

graphics_gsc_ricoh Description: [CS internal] Ricoh Aficio MP 1350 Location: GSC 160, New Media Services Driver: Ricoh Aficio MP 1350 PS (grayscale, 2-sided printing) Connection: lpd://lpr.graphics.uwaterloo.ca/csgsc Defaults: job-sheets=none, none media=na_letter_8.5x11in sides=two-sided-long-edge

in addition to the existing:

docutech6180 Description: [CS internal] Xerox Docutech 6180 Location: GSC 160, New Media Services Driver: Xerox DocuTech 6180 (01.30.00) v2014.108 (grayscale, 2-sided printing) Connection: lpd://lpr.graphics.uwaterloo.ca/docutech6180 Defaults: job-sheets=none, none media=na_letter_8.5x11in sides=two-sided-long-edge

_See also_ : Thu, Nov 22 2012 17:12 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84796

Note about CUPS

By default, cups loves to rewrite your input files with filters like pstopdf, pdftops and pstops. This might break (typically postcript) printer-ready files that have already had document finishing commands inserted. To avoid this, use raw mode.

If you have been using "lpr -Fl", you should instead use "lpr -l", because the MFCF lpr's -F option was a local addition.

Searching the cups help for "raw" finds: http://print.cs.uwaterloo.ca:631/help/options.html?QUERY=raw#RAW which says:

Raw or Unfiltered Output

The -o raw option allows you to send files directly to a printer without filtering. This is sometimes required when printing from applications that provide their own "printer drivers" for your printer:

lp -o raw filename lpr -o raw filename

The -l option can also be used with the lpr command to send files directly to a printer:

lpr -l filename

_See also_ : Thu, Nov 22 2012 17:41 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84796

Options

1.

The (probably ppd for these) printers allows us to set a large number of options in cups. I have no idea what optional features are installed on the printers. The correct setting for "Fit to Paper" is debatable. I chose "Nearest Size and Crop" over "Prompt User" and "Nearest Size and Scale". Here is an example from graphics_gsc_ricoh:

Set Default Options for graphics_gsc_ricoh

Options Installed Large Capacity Tray: Tray 7: Finisher SR5000: Output Option: Z-folding unit: Multi-hole Punch Unit:

General Fit to Paper: Media Size: Media Source:

Duplex
Resolution
Collate
Print Mode:
Dithering
Image Smoothing: Paper Type:
Destination
Staple
Punch
Z-fold
Orientation Override:
Watermark
Watermark Text: Watermark Font: Watermark Size: Watermark Angle: Watermark Style:

Job Log

JobType
Locked Print Password (4-8 digits): Document Server Password (4-8 digits): User Code (up to 8 digits):

Banners ... Policies ...

(For the Banners and Policies options, our standard settings are fine.) _See also:_ : Thu, Nov 22 2012 18:11 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84796

2.

More about options: Here is an example of the lpoptions command:

www150$ lpoptions -p graphics_dc_ricoh auth-info-required=none copies=1 device-uri=ipp://172.19.32.10:631/printers/graphics_dc_ricoh job-hold-until=no-hold job-priority=50 marker-change-time=0 number-up=1 printer-info='[CS internal] Ricoh Aficio 1060' printer-is-accepting-jobs=true printer-is-shared=false printer-location='DC 1820B, Media.doc DC' printer-make-and-model='Ricoh Aficio 1060 PS on 172.19.32.10' printer-state=3 printer-state-change-time=1353617202 printer-state-reasons=none printer-type=27308246 printer-uri-supported=ipp://172.19.32.10:631/printers/graphics_dc_ricoh

www150$ lpoptions -l -p graphics_dc_ricoh PageSize/Media Size: *Letter A4 Photo Photo5x7 3x5 5x8 A5 A6 B5JIS CDDVD80 CDDVD120 Env10 EnvC5 EnvC6 EnvDL EnvISOB5 EnvMonarch Executive FLSA Hagaki Legal Oufuku w558h774 w612h935 WIDTHxHEIGHT PrintoutMode/Printout Mode: Draft *Normal High InputSlot/Media Source: *Default PhotoTray Upper Lower CDDVDTray Envelope LargeCapacity Manual MPTray Duplex/Double-Sided Printing: *DuplexNoTumble DuplexTumble None Quality/Resolution, Quality, Ink Type, Media Type: *FromPrintoutMode 300DraftGrayscaleK 300GrayscaleK 600GrayscaleK

_See also_ : Thu, Nov 22 2012 18:20 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84796

Spool to the Graphics Queues
AFM491 Exam

"What I did was:

15:50 ijmorlan@core.cs$ lpr -Pcsgsc_graphics * 15:55 ijmorlan@core.cs$ pwd /u2/ijmorland/exams/afm491-m/print

But this will be obsolete as soon as ST#43799 is done. " -- Isaac Morland

_See also_ : Thu, Oct 25 2012 15:57 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85461

Deliver Exams to Instructors [b]

  • Finals that missed the deadline: give to a person.
  • Finals that made the deadline: give to Registrar's Office(then the exams eventually end up in PAC or RCH).

If So Requested, Split a Course

Request [a]
"SE 212 is no longer combined with CS 245. Leila is still coordinating CS 245, and [Zorin] is coordinating SE 212. [The split is permanent]. Please take me off of the ISC list for CS 245/SE 212. " --- Olga Zorin

_See also_ : Tue, Aug 28 2012 13:09 and Tue, Aug 28 2012 15:03 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84503

Steps [a]

  • I have split the courses and set up Leila as ISC for both. Also, I
have split the examination request form so the courses are separate there as well.

  • Done, both within the examination seat management system and in the exam scheduling request.

_See also_ : Tue, Aug 28 2012 15:38 and Tue, Sep 4 2012 07:25 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?84503

If Necessary, Accommodate Special Cases (USG is Notified Before Printing)

Request [b]
Special cases for the examination seating system concerns mostly alternate times required by class conflicts or cultural accommodation.

_See also_ : Tue, Jan 24 2012 09:46 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81097

Steps [b]
  • These are currently emailed to me by course staff, and I manually create the required sittings and move the affected students into the special sittings.

_See also_ : Tue, Jan 24 2012 09:46 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81097

If Necessary, Handle _Late Changes_ to Exam Seating (USG is Notified After Printing)

Request [c]

Karen mentioned an issue with a student who was moved to OPD after seating for final examinations had been established. Similar cases have apparently caused trouble in other terms with grades being temporarily lost. This is because the student has two entries in the exam mark entry sheet and the lookup for the exam mark finds the zero one.

_See also_ : Tue, Dec 13 2011 09:41 and Tue, Dec 13 2011 09:43 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?80637

Steps [c]

Communicate the following to the requesters:

  • Therefore, suggest that an appropriately experienced staff member needs to review all non-prelabelled papers that are written to ensure that the students' grades are properly recorded.

Rationale

  • There clearly is more to do on the system, but other more pervasive problems
that I also haven't been able to deal with have to be fixed before we do anything about the low volume of problems associated with late changes to seating.

_See also_ : Tue, Dec 13 2011 09:43 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?80637

If Necessary, Consider Using Preferred Names

Request [d]

Most of the instructors do not use the form of their name as listed in the class offerings list (i.e. Sandy rather than Sandra Lynn, Jeff, J.P.)

_See also_ : Wed, Dec 15 2010 11:21 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75609

Steps [d]

Communicate possible solutions to the requesters:

  • "When I update the extracts, the system will know that "Pretti John-Paul C" means the person with userid jpretti, for example, but it still won't know that he prefers "J.P. Pretti" (for example).

  • I'm hesitant to start maintaining a local list of "people's names as they wish them to appear on examinations". On the other hand, names are important and I'd like to get them right. A couple of ideas: 1) Could the use of the WatIAM "nickname" field help? I'd be fine with printing "[watiam nickname] [watiam surname]" in the event that a nickname is set (otherwise use watiam givennames). 2) Can the name used on the class schedule be set independently of WatIAM? I might be able to print "[class schedule givennames] [class schedule surname]" (the problem now being that I can't tell where the surname stops and the givennames begin). I'm open to any well-designed possibilities. "

  • "Once the class data have been improved (RT#75610), we can identify the actual instructors involved and print their names according to WatIAM. We seem to have at least some consent for the idea of using "[watiam nickname] [watiam family name]". Of course if no nickname is set we would use the watiam givennames instead." -- Isaac Morland

_See also_ : Wed, Dec 15 2010 11:21 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75609

If Necessary, Consider Disambiguating Building Names

Request
"For future updates, could you please add the EV building number to the room listing? I have received many emails this term requesting clarification of which building the room is located. "

_See also_ : Sat, Oct 27 2012 16:52 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85487

Steps
Communicate the following to the requester:

"I'll change the building codes for the EV buildings to EV1, EV2, EV3 as appropriate."

_See also_ : Sat, Oct 27 2012 16:55 entry of Sat, Oct 27 2012 16:55 https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85487

Schedule for the Exam-seating Tasks

Every Wednesday

  • Get a list of all the upcoming exams for the next week.

Mon. - Sun.

  • Take the list of all exams that will take place during the 7-day period
  • Send the list to Hank Edwards

_See also_ : Hank Edwards's contact information: https://uwaterloo.ca/disability-services/about/people/hank-edwards

Every Thursday

  • Check for an email from Hank Edwards. An attachment should be an Excel spreadsheet that includes the student names, the student IDs, and the courses.
  • As soon as that email is received, start setting up the exams.
  • For finals, take the admin and the admin unit.
  • For midterms, there are ranges of dates. These ranges need to be restricted. Map the section to the admin, to the exam list.

Troubleshooting

Topics Order Design

The following troubleshooting topics roughly follow the chronological order of the workflow (tasks to be done by USG for exam seating).

Exam Scheduling Request Form - Selections Do Not Appear

Problem Scenario - General
A few instructors have reported problems with being unable to see their selections in view (confirm) mode. In this mode radio buttons are replaced by the Unicode "MEDIUM WHITE CIRCLE" character, or "MEDIUM BLACK CIRCLE" if selected, and a similar replacement is made for checkboxes. At least one instructor was able to see properly using a different browser so this would appear to be an area of mixed browser/OS support.

_See also_ : Tue, Apr 24 2012 14:09 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?82463

Problem Scenario - Internet Explorer vs. Opera 11.52

"The No Exam Bank option does not seem to be displayed properly under Internet Explorer 9. I check the box but the check mark does not appear on the confirmation page. Same thing happens with the Assigned Seating option. The check mark does not appear on the confirmation page even if you select the option.

But they work fine under Opera 11.52." Michael Liu

_See also_ : Tue, Apr 24 2012 14:10 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?82463

Possible Solution
1) use disabled controls; or

2) use images. Using disabled controls has the advantage that no browser should have a problem and they're guaranteed to look like the enabled controls. On the other hand, I wanted the display to look a bit different - like a "fixed" version of the original form.

_See also_ : Tue, Apr 24 2012 14:09 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?82463

Problem Scenario - Chrome
I filled out this form for CS360 and saved then approved it but when I look at it now, none of my selections appear. Did the selections go through?

_See also_ : Tue, Apr 24 2012 14:10 entry of Tue, Apr 24 2012 14:10

Possible Causes [a]

The problem is only apparent in some browsers, with the way the form is displayed in view-only mode. I'll need to correct this before we use the form again.

I've checked the form and MATH 239 has "Scheduled and Administered by Registrars Office" selected, as well as "no exam bank" (but not "assigned seating"). So as long as this is correct, you can go ahead and confirm it.

_See also_ : Tue, Apr 24 2012 14:10 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?82463

Final Solution [a]
I changed the rendering of "read-only" radio buttons and checkboxes to use "disabled controls".

http://www.w3.org/TR/html401/interact/forms.html#adef-disabled

We hope this will display more consistently for everybody.

_See also_ : Wed, Aug 22 2012 17:12 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?82463

Exam Scheduling Request Form - Upload Rejected

Problem Scenario - General
An upload is rejected.

Possible Causes
A4 (that's the paper size) input was produced (as a Windows default), when in fact the requirement was 8.5" x 14". _See also_ : ST #87873 for an example.

Final Solution
Provide the required paper size.

Exam Scheduling Request Form - Checkboxes and Radio Buttons

Problem Scenario [b]
On Tue, 24 Apr 2012, Nancy Orvis Korn wrote:

> I have attached an email from Joe. I have looked but don't see a problem,
> and told him that.

_See also_ : Tue, Apr 24 2012 13:44 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

Possible Causes [b]
"The method I chose for displaying the radio buttons and checkboxes doesn't work in every browser - it is supposed to display an empty circle or full circle as appropriate.

In the case of AMATH 231 I can confirm that "Scheduled and Administered by Registrars Office" is selected, and neither "no exam bank" nor "assigned seating" is checked. " -- Isaac Morland

_See also_ : Tue, Apr 24 2012 13:44 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?81513

Exam Paper - Incorrect Appearance of (Non-Stamping) Text

Take a look at the post script. If it's Latex, that should be good. If it's in Microsoft Word, there may be problems. If there are equations nested in tables, then you need to look closely.

Future consideration : get instructors to convert their PDFs to JPEG using ghostview.

Exam Paper Stamping - Incorrect Name and UserID

Problem Scenario [c]
Hi, prof

My name is Jing Qi. I'm a first-year math student and my student number is ____.

Last week, when I tried to log into my account to check my Math 135 midterm room and seat assignment on https://odyssey.uwaterloo.ca/teaching/schedule, it showed "Error". This occurred again when I tried to check my Math 138 midterm room and seat assignment.

For Math 135 and Math 138 midterms, I found that the name, which is "Ji Qi", and the userid, which is "j7qi" on the exam paper are not mine. However, the student number on the paper is actually mine. -- Jing Qi userid j23qi

_See also_ : Sun, Feb 20 2011 22:29 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76429

Diagnosis Questions [c]
Disregard the letters in square brackets (e.g. [a]) in the table of contents. They do not add meaning to the titles. They were simply designed to disambiguate sections on the ExamSeating page which have identical titles. That way, the links lead to the correct sections. Exam Seating What is the exam seating system? Terminology Exam vs. Sitting Reserved Designation Admin Unit Databases Program-comprehension Tools Where are the databases? Table Naming Convention What tables are there? On Campus USG Tasks Instructions Midterms Finals Stamping - Customize the Exams Produce Print Jobs Deliver Exams to Instructors [b] If So Requested, Split a Course If Necessary, Accommodate Special Cases (USG is Notified Before Printing) If Necessary, Handle Late Changes to Exam Seating (USG is Notified After Printing) If Necessary, Consider Using Preferred Names If Necessary, Consider Disambiguating Building Names Schedule for the Exam-seating Tasks Troubleshooting Exam Scheduling Request Form - Selections Do Not Appear Exam Scheduling Request Form - Checkboxes and Radio Buttons Exam Paper - Incorrect Appearance of (Non-Stamping) Text Exam Paper Stamping - Incorrect Name and UserID Exam Paper Stamping- The Full Name is Not Printed on the Front Page Exam Paper Stamping - Unable to download examination folder PDF Exam Seating Lookup Failure (Website) Exam Seating Lookup Failure(Website) - type 'exceptions.AttributeError' Exam Seating Lookup Failure (Website) - Get Python exception dump Printing - Last Resort Final solution [h] Printing - Seemingly No Master Possible Causes [i] Distance Education (CEL) USG Tasks Instructions Setup for Exams Provide Walk-throughs to New Users See Also List of S.T. items mentioning Exam Seating or Exam Scheduling What is the exam seating system? 1) When you got an error trying to look up your seat, was it "No examinations are currently scheduled in this system for j23qi" or a different error?

2) Is this (Winter 2011) your first term as a student at Waterloo?

3) Have you ever been employed by the University, and if so, when?

Also, can you please check your examination schedule (same URL as before) and tell me if it matches up with what you expect to see.

These answers will help me understand what went wrong with your WatIAM record.

_See also_ : Sun, Feb 20 2011 22:46 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76429

Answers
I just checked my examination schedule, and it is correct now. About your questions:

1) The first time I found this problem was on Feb,4th, the last

Friday before Math 135 midterm. When I tried to log in, the page turned to be purple and blue with some codes and software error.

2) I was an ELAS student last term, and this is my first term in Waterloo as a full-time student.

3) I have never been employed by the University.

"Her information corroborates my version of what happened. In particular, the P-761214792 is not her, even though it has the same userid. So j23qi really was unaccountably re-used for her when she arrived. " Isaac Morland _See also_ : Sun, Feb 20 2011 22:47 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76429

Possible Causes [c]

This is a tricky problem that concerns both WatIAM and the examination system so I want to be sure I fix it correctly.

Looked around in WatIAM extracts and identity database, and found three PDBIDs are involved.

P-150599 is Ji Qi, j7qi. P-761214792 was created with an HR ID, name Ji Qi, userid j23qi. Then this was merged to P-150599. P-850485847 was created later for Jinq Qi, but used userid j23qi.

Our system then went ahead and merged the above since j23qi was associated with both. Since when do we re-use a userid just a few months after it goes out of use?

WatIAM thought two people were the same person at one time. More recently, this has been corrected but the incorrect merge remained in the examination pre-labelling system.

This resulted in some of the student's information being mixed with some of somebody else's information.

_See also_ : Sun, Feb 20 2011 22:46, Sun, Feb 20 2011 22:32, and Sun, Feb 20 2011 22:46 entries of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76429

Final Solution 1
I have split up the information in what I believe is the correct way.

_See also_ : Sun, Feb 20 2011 22:46 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76429

This student's record (canonical userid) in the exam seating system may need to be adjusted. _See also_ : Fri, Mar 4 2011 10:49 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Exam Paper Stamping- The Full Name is Not Printed on the Front Page

Problem Scenario [d]
"There is a CS136 student with user name d7lu in the seating system, but apparently his username is changed to y48lu. I see the class list has the new username and just wanted to make sure we get the new one for the final exam. For some reason, this student did not have his full name printed on the front page. " -- instructor

"Do you mean y84lu? " -- Isaac Morland

"Yes." -- instructor

_See also_ : Fri, Mar 4 2011 12:47 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Possible Causes [d]

The PDBID changed, even though it shouldn't; if the setting of canonical identifiers was automatic, this case would have been handled completely smoothly.

_See also_ : Fri, Mar 4 2011 12:51 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Final Solution [d]

odyssey_prod=> update person_identity_canonical set external_id='739177541' where (person_id, external_id_type) = (30048118, 'PDBID'); UPDATE 1 odyssey_prod=> update person_identity_canonical set external_id='y84lu' where (person_id, external_id_type) = (30048118, 'USER'); UPDATE 1

... and the names are back in the appropriate views.

_See also_ : Fri, Mar 4 2011 12:51 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Exam Paper Stamping - Unable to download examination folder PDF

Problem Scenario [e]
Whenever I click on Folders for CS135, I get

  • Internal Server Error

  • The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, odyssey@uwaterloo.ca and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache/2.2.20 (Ubuntu) mod_fastcgi/2.4.6 mod_jk/1.2.32 mod_ssl/2.2.20 OpenSSL/1.0.0e Server at odyssey.uwaterloo.ca Port 443

For CS 145

500 Internal Server Error There was a problem attempting to generate the folders. Please contact ijmorlan@uwaterloo.ca for more assistance. Error: 'Exception in thread "main" java.lang.NullPointerException\n' '\tat ca.uwaterloo.odyssey.exams.Exam.sortFolders(Exam.java:92)\n' '\tat ca.uwaterloo.odyssey.exams.Exam.writeFolders(Exam.java:121)\n' '\tat ca.uwaterloo.odyssey.exams.printExamFolders.main(printExamFolders.java:32)\n ' Output:

_See also_ : Mon, Oct 1 2012 09:23 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85095

Diagnosis Questions [e]

  • the time the error occurred
  • anything you might have done that may have caused the error.

Possible Causes [e]

  • Requesting CS 135 folders caused a timeout in FastCGI, while CS 145 gave apparently the same error as the ISC noticed. Now, I get CS 145 just fine, while CS 135 is still giving the timeout.
  • I assigned CS 145 sequence numbers this morning, so the explicit error probably results from having unassigned sequence numbers.
  • The timeout is stranger. There are no queries involved in generating the folders that should take a long time, and it's hard to see where else the folder generation could take much time.

_See also_ : Mon, Oct 1 2012 09:26 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85095

Works fine from the command line, on the web server:

09:41 root@www150# export PGSYSCONFDIR=~www-data/.postgresql 09:41 root@www150# export PGSERVICE=_teaching_ui_prod 09:41 root@www150# basedir=~www-data/teaching 09:41 root@www150# export CLASSPATH=$basedir/java-jar/odyssey.jar:$basedir/java-jar/iText-2.1.7.jar:$basedir/java-jar/postgresql-8.4-701.jdbc3.jar 09:41 root@www150# echo $CLASSPATH /software/odyssey_apache/data/home/www-data/teaching/java-jar/odyssey.jar:/software/odyssey_apache/data/home/www-data/teaching/java-jar/iText-2.1.7.jar:/software/odyssey_apache/data/home/www-data/teaching/java-jar/postgresql-8.4-701.jdbc3.jar 09:41 root@www150# setuid www-data pwd /.software/regional/odyssey-3_apache/data/home/www-data/teaching 09:41 root@www150# setuid www-data java ca.uwaterloo.odyssey.exams.printExamFolders 25433 >~ijmorlan/25433.pdf 09:42 root@www150#

So what's the holdup?

_See also_ : Mon, Oct 1 2012 09:44 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85095

Final Solution [e]

Summary

Works fine from Mac command line; CS 135 still problem via Web. Immediate problem sidestepped for the Instructional Support Coordinator by emailing her the CS 135 folders.

Full Solution

"The problem with CS 145 was possibly because I had not yet assigned sequence numbers. It now comes up for me just fine - let me know if it's still causing trouble for you.

The CS 135 folders are giving me the same symptom you observed. This happens when the process takes too long to respond and the web server times out waiting for the CGI to finish. Strangely, I was able to run it from the command line on my Mac just fine, so I've attached the CS 135 folders. Please take a look at a couple of pages just to make sure I actually sent you the right file. Meanwhile, I'll continue working on this to figure out what the actual problem is.

Also, CS 135 printed on Friday and CS 145 is now spooled."

_See also_ : Mon, Oct 1 2012 09:32 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?85095

Exam Seating Lookup Failure (Website)

Problem Scenario [g]
I am unable to view my seat for the final exam at the PAC. I believe it is because of my user ID being changed from Bjkajani to Bjkajgan.

_See also_ : Mon, Dec 20 2010 07:39 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75644

Possible Causes [g]
  • Apparently your change of username from sbli to shaoboli part way through
the term confused our systems.

_See also_ : Thu, Dec 30 2010 13:47 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75644

  • This is related to the identity database which stores all the WatIAM identities. Updating does not fully track changes in which UW ID is primary, requiring occasional manual updates. I have not fully investigated in detail why these students cannot see their examination schedules; however my starting hypothesis is that the designation of which userid is primary is not properly updated.

_See also_ : Thu, Dec 30 2010 14:33 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75644

Possible Solutions [g]
Recommend that the student ask the proctors to help find his seat when he arrives at the PAC this morning. Alternatively, ask that the student email the ISC to find out the seat, e.g. MC 4042, seat 1D, and sequence number (needed for picking up the exam), e.g. G55.

_See also_ : Mon, Dec 20 2010 07:40 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75644

Final Solution [g]

odyssey_prod=> update person_identity_canonical set external_id='bjkajgan' where (person_id, external_id_type) = (30249654, 'USER');

... and now I believe this student's examination schedule is displaying correctly.

_See also_ : * Sun, Feb 20 2011 22:59 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75644 * https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?75644 In this S.T. item, we saw a userid get re-used.

Exam Seating Lookup Failure(Website) - type 'exceptions.AttributeError'

Problem Scenario [f]

Tue, Mar 1 2011 13:54 ddexter created the request Li changed his userid from sbli to shaoboli last term. During the current term, the assigned seating website gives the following error: < type 'exceptions.AttributeError' > Python 2.5.1: /software/.admin/bins/bin/python Tue Mar 1 13:47:32 2011

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

/software/pythonLibCscf-1/pythonlib/python-2.5/lib/site-packages/flup/server/fcgi_base.py in run(self=<flup.server.fcgi_base.Request object at 0x2aaaac0ddc90>) 556 """Runs the handler, flushes the streams, and ends the request.""" 557 try: 558 protocolStatus, appStatus = self.server.handler(self) 559 except: 560 traceback.print_exc(file=self.stderr) protocolStatus undefined, appStatus undefined, self = <flup.server.fcgi_base.Request object at 0x2aaaac0ddc90>, self.server = <flup.server.fcgi.WSGIServer object at 0xc35490>, self.server.handler = > /software/pythonLibCscf-1/pythonlib/python-2.5/lib/site-packages/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object at 0xc35490>, req=<flup.server.fcgi_base.Request object at 0x2aaaac0ddc90>) 1114 try: 1115 try: 1116 result = self.application(environ, start_response) 1117 try: 1118 for data in result: result = None, self = <flup.server.fcgi.WSGIServer object at 0xc35490>, self.application = , environ = {'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response = /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/sql.py in result(environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/function.py in result(environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/errors.py in result(environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/local/teaching/webui/identity.py in result(environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/delegate.py in __call__(self=<uw.web.wsgi.delegate.DelegatePathArc object at 0xc35310>, environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/delegate.py in __call__(self=<uw.web.wsgi.delegate.DelegatePathArc object at 0xc33450>, environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/delegate.py in __call__(self=<uw.web.wsgi.delegate.DelegateMethod object at 0xc33310>, environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/parameter.py in __call__(self=<uw.web.wsgi.parameter.ParamHandler object at 0xc33290>, environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/web/wsgi/function.py in __call__(self=<uw.web.wsgi.function.FinalHandler object at 0xc33250>, environ={'DOCUMENT_ROOT': '/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_CAS_USER': 'shaoboli', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'MOD_AUTH_CAS_S=97407c3ca3d41912c293cd57cdc9d659', ...}, start_response=) /.software/regional/odyssey-3_apache/data/home/www-data/teaching/uw/local/teaching/webui/schedule.py in own_schedule_handler(cursor=<uw.local.teaching.db.cursor.Cursor object at 0x2aaaac0e33d0>, remote_identity=None)

: 'NoneType' object has no attribute 'userid'

He believes this is a result of the scheduling being done with his old ID instead of his current one. Is there a way to update this in our systems?

Student ID: 20396780

_See also_ : Tue, Mar 1 2011 13:54 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Possible Causes [f]
if I look at their schedule using the old userid:

https://odyssey.uwaterloo.ca/teaching/schedule/sbli

I see what is presumably the correct schedule.

Using the new userid:

https://odyssey.uwaterloo.ca/teaching/schedule/shaoboli

I get "no examinations currently scheduled". I don't get that weird error, but I believe that is related to the "current user" lookup.

odyssey_prod=> update person_identity_canonical set external_id='shaoboli' where (person_id, external_id_type) = (30166055, 'USER'); UPDATE 1

... and now the second rather than the first link works. I predict that they will now be able to see their examination schedule.

See also : Wed, Mar 2 2011 08:27 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

I replicated the problem in development. Problem occurs because the remote_identity is obtained by looking up $REMOTE_USER in person_identity_complete, which searches only canonical userids.

This is correct behaviour, since people should be using only their canonical userids, but there are two problems:

1) bad error message - system should explain clearly that "you are logged in as X but should be using Y". In the cases we are experiencing this would effectively tell people to use their old userids, so...

2) identity database isn't being fully updated - when the canonical identifier for a person changes, the database should be automatically updated accordingly. _See also_ : Wed, Mar 2 2011 08:51 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Possible Solutions [f]

I have updated your userid in the system. Please try to load the schedule again and let me know if it works now.

_See also_ : Wed, Mar 2 2011 08:29 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

We need:

1) useful error message when logging in with an unknown userid;

2) automatic update of identity database upon change in identifiers.

_See also_ : Wed, Mar 2 2011 08:51 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Should error message be provided by CAS interface? Applications should be able to assume that they will only see valid userids in $REMOTE_USER. On the other hand if an application sees a bad userid maybe it shouldn't produce quite such an unfriendly message.

_See also_ : Wed, Mar 2 2011 09:24 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Final Solution [f]

I have updated your userid in the system. Please try to load the schedule again and let me know if it works now. _See also_ : Wed, Mar 2 2011 08:29 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?76535

Exam Seating Lookup Failure (Website) - Get Python exception dump

Problem Scenario
  • A student cannot get in to Odyssey to look up their exam seat
  • They get a Python exception dump
  • Our exam listing has the particular student as as mberzish. The username, according to the student, should be mtrberzi. The student's full name is Murphy Berzish.

_See also_ : Wed, Jun 20 2012 15:19 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?83482

Possible Causes
"Maybe [it is because] I did a co-op at the university last term, as I was entered into another database (could they have updated my student record by mistake?)" -- student

_See also_ : Wed, Jun 20 2012 15:19 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?83482

"It seems that somehow you ended up with two WatIAM entries, and sometimes the exam system latches on to the wrong one as being yours. " -- Isaac Morland

_See also_ : Wed, Jun 20 2012 17:20 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?83482

Final Solution

"I've corrected [the double entry error], and you should now be able to see your seating information. Although The ISC has already emailed you your room for tomorrow, it would be helpful if you could try it out to make sure there will be no problems at final examination time. " -- Isaac Morland

_See also_ : Wed, Jun 20 2012 17:20 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?83482

Printing - Last Resort

Final solution [h]

  • Print the PDFs on label paper and stick them onto exams.
  • Simone usually offers label paper.

Printing - Seemingly No Master

Possible Causes [i]

There are two OPD exams for the same course; one is ready, and the other is not. The files to eliminate end in "x". If an exam is not approved, then it shouldn't be printed. However, Java doesn't realize that.

Distance Education (CEL)

DE usually has numerous sittings for a typical exam: one large one on campus, and others of various sizes down to one single student at exam centres and with individual proctors around the world. On campus they have three normal time slots; each exam is slotted into one of those, and students with conflicts are manually moved to another one of those three. These three time slots take over the entire PAC, but other exams may happen elsewhere on campus. Additionally, they have two time slots in MC for handling remaining conflicts and special cases including short-term illness.

Students select their exam sitting in Quest, unless they don't. Many on-campus students don't bother selecting because they assume it's obvious. DE would like to have all on-campus (taking an on-campus course as well as DE) students write on campus.

Quest has a page where students can see their DE-only exam schedule. Of course it doesn't show seat assignments at present. I will be meeting with David Bean from DE Information Systems whenever he has time in his schedule to discuss the data flows and how we should plan to integrate assigned seating into the existing process.

Exams may have blank answer booklets and OMR cards in addition to the question booklet itself. Other materials are possible but rare. At present students receive a bag containing everything and are to put everything in it when done. These bags are labelled with a barcode, primarily to allow checking off receipt of exams from remote centres.

My enhanced exam scheduling data model can already handle multiple exams in one sitting, and based on this morning's discussion I believe it can handle everything required by DE. If it is decided that courses should alternate to prevent plagiarism during the exam, then this would require the same additional code as providing the same feature for on-campus courses. This might also complicate exam set-up in the case where the different courses require different additional materials.

Not from the meeting, but on point: DE courses are clearly marked in the course data because they are in session 8 rather than the usual 1. So identifying them and handling them differently is not a problem.

_See also_ : Fri, Oct 9 2009 23:38 entry of https://cs.uwaterloo.ca/cscf/internal/request/UpdateRequest?69507

USG Tasks Instructions

Setup for Exams

"Here are most of the steps involved in setting up the distance ed (CEL) exams. These are basically the same steps as the regular on-campus midterms you'll be dealing with, but with a couple of different steps related to the specific CEL process.

- import durations - import candidates

select cel_require_facility (facility_code) from (select distinct facility_code from cel_candidate where term_id = '1129') as t;

-- don't do 20060 manually first, eliminate last where clause: insert into teaching_admin_term SELECT DISTINCT term_id, admin_id FROM cel_candidate NATURAL JOIN cel_facility WHERE term_id = '1129' and admin_id <> 20060;

select cel_sittings_attach_candidates ('1129');

select cel_exams_set_primary_sitting ('1129');

-- use PAC space for all "CEL Finals" sittings: insert into exam_sitting_room select sitting_id, room_id from room_room_plus, exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20070) and building_code = 'PAC' and room_current;

-- use all seats, potentially: insert into exam_sitting_room_seat select sitting_id, room_id, seat_col, seat_row from room_seat natural join exam_sitting_room natural join exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20070);

-- Then reserve seats that are not to be used

-- Then manually allocate any manually-allocated exams

-- run cel_allocate_seats select cel_allocate_seats (24628); etc.

-- run normal exam_assign_seats -- designate exams as assigned update exam_exam set exam_assigned=true where exam_id in (select distinct exam_id from exam_exam_sitting natural join exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20070));

-- assign by name insert into exam_assignment_order select distinct exam_id, 'NAME', 1, true from exam_exam_sitting natural join exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20070);

-- designate seats select exam_assign_designate_seats (exam_id, sitting_id) from exam_exam_sitting natural join exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20070);

-- assign seats select exam_assign_seats (exam_id, sitting_id) from exam_exam_sitting natural join exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', 20070);

-- pseudo-assign remote centres select exam_test_assign_opd (sitting_id) from cel_facility, exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', admin_id) and facility_code not in ('OPD', 'WT12') order by facility_code;

select exam_test_assign_opd (24584);

-- assign sequence numbers (CS 100 only, for now) select exam_assign_sequence (25504);

-- get list of sittings for cover sheet generation: select string_agg (sitting_id::text, ' ') from (select sitting_Id from cel_facility, exam_sitting where (sitting_term_id, sitting_admin_id) = ('1129', admin_id) and facility_code not in ('OPD') order by sitting_id) t;

(also add OPD CEL sitting to the list)" -- Isaac Morland

_See also_ : Tue, Dec 4 2012 08:25 entry of https://cs.uwaterloo.ca/cscf/internal/request_beta/UpdateRequest?86091

Section's last update : Dec. 4, 2012

Provide Walk-throughs to New Users

Upload the PDFs

1. Go to odyssey.uwaterloo.ca/teaching

2. Click on "Teaching Info Index"

  • This displays all of the instructor's exams.

3. Click on "Create" next to the drop down menu.

4. Click on an exam.

5. Select a primary seating. (This is the most important selection.)

6. Select the duration.

  • _Note_ : the field for "first sequence" is chosen automatically.

7. Select the master uploader for that term.

8. Go to sitting view.

9. Edit the field for the room/location.

Distribute the Exams
  • ISG usually trains instructors that are using the system for the first time
  • If there is no ISG, USG explains the system after the boxes arrive. The explanation covers: 1) the map 2) the signature list, and 3) the printed lookup list

See Also

List of S.T. items mentioning Exam Seating or Exam Scheduling

Note : The S.T. system was searched using

  • "display requests that match exam" - full text
  • "display requests that match seating " - full text
  • "display requests that match odyssey " - full text

Of these results, the following list includes items with "Exam Seating" or "Exam Scheduling" in the subject or service field.

Note : It may be beneficial to retain the entries marked as "NU" - "not urgent for USG documentation". That's because if they are ever needed, it would be very time consuming to search through the S.T. to find them back.

Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf BuildingtheAuthorizationList.pdf manage 124.6 K 2012-12-11 - 11:35 LilySong Building the Authorization List
PDFpdf Findallcoursesectionsthatneedabrand-newadminunitautomaticalllycreated.pdf manage 129.7 K 2012-12-11 - 12:47 LilySong  
PDFpdf obtaincompletelistofsections.pdf manage 120.3 K 2012-12-11 - 12:48 LilySong  
Topic revision: r28 - 2013-04-01 - BillInce
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback