<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Operations :: OAT Developer Documentation</title>
    <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/index.html</link>
    <description>Periodic tasks required to keep OAT running smoothly.</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Load New Permission Numbers</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/permnums/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/permnums/index.html</guid>
      <description>Permission numbers are used extensively by CS advisors to help students get into courses where something (prerequisites, class size, etc) is blocking them. Ideally, OAT would be able to fetch a permission number directly from Quest via a web service (see Implement permission numbers in OAT3, created 9 years ago and still outstanding).&#xA;In the mean time, we ask the RO for a static list of permission numbers all with fixed expiry dates and a fixed set of permissions. Load them up into OAT where they get doled out by advisors.</description>
    </item>
    <item>
      <title>Plan Groups</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/plangroups/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/plangroups/index.html</guid>
      <description>Plan groups are a really useful abstraction (especially for queries) but require maintenance as new plans are defined.&#xA;Plan groups are defined by a set of queries in oat3/sql/operations/planGroups/.&#xA;These queries update tables in the database.&#xA;Advice: It’s best to do this against an up-to-date dev database first. That’s been hard to come by so it’s typically done with prayers against the production database. New plans (not in a plan group) are reported in the automatic morning “OAT Health” email. Don’t let the list get too long! The current methodology does not let you work on a subset. If the list gets too long, things get confusing. Here are the basic pieces:</description>
    </item>
    <item>
      <title>Update a Form</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/updateforms/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/updateforms/index.html</guid>
      <description>The contents of a form is controlled by JSON in the oat-forms project.&#xA;This assumes you’ve got it cloned and pulled any recent updates.&#xA;Update the JSON source Edit the source for the form in question (changes) or create a new file for a new form. Review Form Definitions for more info.&#xA;Load the changes The bin directory in the oat-forms project contains the following scripts:&#xA;archiveForms.sh: Used to archive forms after decisions have been made. It retains the information just in case, but those forms will no longer appear in the admin pages in OAT. updateForms.sh: Used to make minor adjustments to an existing form such as dates for it to accept submissions, minor wording changes, etc. newVersion.sh: Used to make major changes to a form or introduce a new form. Major changes include adding or removing questions, changing the available answers, changing the expressions for displaying answers, etc. Major changes should only be done when no form submissions are “in process”. Notes:</description>
    </item>
    <item>
      <title>Update Misc Tables</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/updatemathcomms/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/ops/updatemathcomms/index.html</guid>
      <description>_oat.math_communication_requirements Sam St. Amand generates new versions of tables encoding Math Communications requirements and anti-requisites. This typically happens in late August. She’ll open a git issue or send the CSV files. They need to be loaded into the appropriate tables.&#xA;It’s expected that the contents of the CSV will simply replace the existing data.&#xA;Workflow&#xA;Save the math communications CSV to /oat3/sql/operations/math_comm_requirements/math_communication_requirements_YYYY_YY.csv where the Ys are filled in with the appropriate academic year (eg 2025-26). Run ./load_math_comm_requirements.scala math_communication_requirements_YYYY_YY.csv. Note that the script takes a --service argument (that defaults to oat-prod). _oat.uw_ug_antireqs Pretty much the same as _oat.math_communication_requirements but in the /oat3/sql/operations/ug_antireqs/ directory.</description>
    </item>
  </channel>
</rss>