, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Contract Management Policy | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Contract Management Policy

Table of Contents


Contract Management Policy

All contracts campus-wide must be kept on file in the Contract Management System database. This system stores a digital copy of every contract and will use expiration/renewal dates to trigger renewal notifications months/weeks in advance, enabling the university to be more proactive in renegotiating contract terms and reviewing more cost-effective options prior to renewal.

Contract Management Procedures

  1. According to university by-laws, all contracts must be signed by a Vice President.

  2. Before submitting a contract to your VP for review, prepare the Contract Management System Cover Sheet.

  3. Submit the contract, with the accompanying cover sheet to your VP, allowing at least 10 business days for VP review to accommodate any potential clarification/revisions.

  4. The cover sheet, along with the final, signed contract must be submitted to notify-contracts@calvin.edu. Please note that a contract that is not signed by all parties is not legally enforceable. If the contract is submitted to the system before it is fully executed, please be sure to send the final signature page upon receipt of all signatures. We strongly encourage staff to request vendors to sign contracts prior to submitting them for VP approval.

  5. Current ÃÛÌÒapp policy requires that original contracts be kept by the department initiating the contract for seven years after the contract’s expiration. Please keep in a secure/fire-proof location within your department.

One-Off Contracts

Contracts for a single event/service, without need for renewal notifications, do not require a cover sheet, and should be submitted to Accounts Payable along with the Payment Voucher.


Last updated
Approved by
Financial Services