Instructors
{#if course.instructors.length > 0}
{#each course.instructors as instructor}
{instructor.displayName}
{#if instructor.rmpRating != null}
{@const rating = instructor.rmpRating}
{@const lowConfidence =
(instructor.rmpNumRatings ?? 0) <
RMP_CONFIDENCE_THRESHOLD}
{rating.toFixed(1)}
{#if lowConfidence}
{:else}
{/if}
{/if}
{instructor.displayName}
{#if instructor.isPrimary}
Primary instructor
{/if}
{#if instructor.rmpRating != null}
{instructor.rmpRating.toFixed(1)}/5
· {instructor.rmpNumRatings ?? 0} ratings
{#if (instructor.rmpNumRatings ?? 0) < RMP_CONFIDENCE_THRESHOLD}
(low)
{/if}
{/if}
{#if instructor.rmpLegacyId != null}
View on RMP
{/if}
{#if instructor.email}
{/if}
{/each}
{:else}
Staff
{/if}
Meeting Times
{#if course.meetingTimes.length > 0}
{#each course.meetingTimes as mt}
-
{#if isMeetingTimeTBA(mt) && isTimeTBA(mt)}
TBA
{:else}
{#if !isMeetingTimeTBA(mt)}
{formatMeetingDaysLong(mt)}
{/if}
{#if !isTimeTBA(mt)}
{formatTime(
mt.begin_time,
)}–{formatTime(mt.end_time)}
{:else}
Time TBA
{/if}
{/if}
{#if mt.building || mt.room}
{mt.building_description ??
mt.building}{mt.room
? ` ${mt.room}`
: ""}
{/if}
{formatDate(mt.start_date)} – {formatDate(
mt.end_date,
)}
{/each}
{:else}
TBA
{/if}
Delivery
{course.instructionalMethod ?? "—"}
{#if course.campus}
· {course.campus}
{/if}
Credits
{formatCreditHours(course)}
{#if course.attributes.length > 0}
Attributes
{#each course.attributes as attr}
{attr}
{/each}
{/if}
{#if course.crossList}
Cross-list
{course.crossList}
{#if course.crossListCount != null && course.crossListCapacity != null}
{formatNumber(course.crossListCount)}/{formatNumber(course.crossListCapacity)}
{/if}
Group {course.crossList}
{#if course.crossListCount != null && course.crossListCapacity != null}
— {formatNumber(course.crossListCount)} enrolled across {formatNumber(course.crossListCapacity)}
shared seats
{/if}
{/if}
{#if course.waitCapacity > 0}
Waitlist
{formatNumber(course.waitCount)} / {formatNumber(course.waitCapacity)}
{/if}
{#if course.meetingTimes.length > 0}
{/if}