Settings file

See also

Module tutorplanner.util.settings

At first, you have to create a project folder and a settings file. The project folder can be an empty folder, you can add the data later. The central settings (paths, planning dates/times) are stored in settings.yaml. It is in YAML format and should contain the following data:

  • paths: file names and directories of data

    All paths are relative to the working directory (the settings.yaml is in the working directory too).

    • tutor_responses: list of folders for tutor responses

      Example:

      tutor_responses:
      - tutor_availability/first_replies # first week
      - tutor_availability/second_replies # second week
      
    • bookings: CSV file of room bookings

      Example:

      bookings: all_bookings.csv
      
    • bookings_additional: CSV file of additional rooms that students can use

      This is only used in PDF output.

    • course_leaders: CSV file of course leaders, see Course leaders file

      Example:

      course_leaders: course_leaders.csv
      
    • planner: XLSX file of target plan

      Example:

      planner: planner.xlsx
      
    • plans: output folder of generated plans

      This also contains the plan paths file (plan_paths.yaml).

    • templates: template folder

    • pdf_output, html_output, png_output: folder for plan exports

      Example:

      pdf_output: pdf
      html_output: html
      png_output: png
      
  • times: list of times used in export and tutor parsing

    Note that some functions increase the resolution to 1 hour.

    Example:

    times: [10, 12, 14, 16]
    
  • days: list of dates for planning

    The dates have to be in ISO format.

    Example:

    days:
    - 2016-10-17
    - 2016-10-18
    - 2016-10-19
    - 2016-10-20
    - 2016-10-21
    - 2016-10-24
    - 2016-10-25
    - 2016-10-26
    - 2016-10-27
    - 2016-10-28
    
  • forbidden_timeslots: dict of date to list of forbidden time slots

    Forbidden time slots are used for slots that should not contain tutorials/exercises.

    Example:

    forbidden_timeslots:
      2016-10-17: [10, 12, 14, 16]
      2016-10-18: [12]
      2016-10-19: [14]
      2016-10-20: [16]
      2016-10-21: [14]
      2016-10-24: [16]
      2016-10-25: [12]
      2016-10-26: [14]
      2016-10-27: [16]
      2016-10-28: []
    
  • expected_number_of_rooms, expected_number_of_students: the expected numbers are used for formatting in the planning file

  • room_patterns: list of room patterns that are used for getting room information, see Room patterns

  • optimization_parameters: parameters of the MIP

    Example:

    optimization_parameters:
      bounds:
        task_contingency: 0.95
        maximal_work_spread: 1.5
        min_happiness: 0.9
        cube_happiness: 0.95
        minimal_mar_tel_hopping: 1.05
        best_rooms: 0.98
        tutor_room_stability: 0.9
      time_limits:
        short: 360
        long: 1800
    
  • specific_working_hours: working hours regulations of tutors

    Example:

    specific_working_hours:
      Mustermann:
        total: {min: 16, max: 28}
        first_week: {min: 12, max: 20}
        second_week: {min: 4, max: 8}
    

    The tutor Mustermann has to work maximum 28 hours (instead of the half of the working hours per month that she has written in her tutor information CSV. She has to work 12 to 20 hours in the first week and 4 to 8 hours in the second week.

You can find a complete example in test_data.

Course leaders file

The course leaders file is a simple CSV (rather: TSV) file that contains the following columns:

  • first_name
  • last_name
  • email
  • phone

Room patterns

Room patterns are evaluated from top to bottom. If a room is matched, it sets or overwrites all attributes.

Room patterns contain the following attributes:

  • pattern: the pattern itself

    The pattern is matched on the room name using wildcards with *.

    Example: MAR * matches every room starting with "MAR ".

    Note that you have to enquote patterns that start with * due to the YAML syntax.

  • type: room type (tutorial, exercise, exerciseMAR, grading)

  • capacity: room capacity (number of seats)

  • tutorial_size: not used anymore

  • projector: 1 if the room has a projector, 0 otherwise