pub struct StudentCreditRegistration {Show 26 fields
pub id: Uuid,
pub course_id: Uuid,
pub course_name: String,
pub course_slug: String,
pub course_module_id: Uuid,
pub course_module_name: Option<String>,
pub uh_course_code: Option<String>,
pub ects_credits: Option<f32>,
pub course_module_completion_id: Uuid,
pub completion_date: DateTime<Utc>,
pub state: CreditRegistrationState,
pub error_code: Option<CreditRegistrationErrorCode>,
pub next_attempt_at: DateTime<Utc>,
pub registered_at: Option<DateTime<Utc>>,
pub sisu_attainment_id: Option<String>,
pub credits: Option<f32>,
pub grade_id: Option<String>,
pub grade_scale_id: Option<String>,
pub attempt_number: i32,
pub superseded_by_id: Option<Uuid>,
pub superseded_at: Option<DateTime<Utc>>,
pub enrolment_checked_at: Option<DateTime<Utc>>,
pub enrolment_realisation_name: Option<String>,
pub open_university_product_id: Option<String>,
pub completion_eligible: bool,
pub has_verified_student_number: bool,
}Expand description
One ledger row with the course, module and enrolment facts every student view needs, so a status page is one query rather than a fan-out per row.
Fields§
§id: Uuid§course_id: Uuid§course_name: String§course_slug: String§course_module_id: Uuid§course_module_name: Option<String>§uh_course_code: Option<String>§ects_credits: Option<f32>§course_module_completion_id: Uuid§completion_date: DateTime<Utc>§state: CreditRegistrationState§error_code: Option<CreditRegistrationErrorCode>§next_attempt_at: DateTime<Utc>§registered_at: Option<DateTime<Utc>>§sisu_attainment_id: Option<String>§credits: Option<f32>§grade_id: Option<String>§grade_scale_id: Option<String>Needed to read grade_id: “1” is a pass on the pass/fail scale and a one out of five on the
numeric one.
attempt_number: i32§superseded_by_id: Option<Uuid>§superseded_at: Option<DateTime<Utc>>§enrolment_checked_at: Option<DateTime<Utc>>§enrolment_realisation_name: Option<String>The teacher’s label for the realisation we submitted against, not a Sisu id.
open_university_product_id: Option<String>Needed to build the enrolment link a student with no usable enrolment is sent to.
completion_eligible: bool§has_verified_student_number: boolImplementations§
Source§impl StudentCreditRegistration
impl StudentCreditRegistration
Sourcepub fn preconditions(&self) -> PendingPreconditions
pub fn preconditions(&self) -> PendingPreconditions
What a pending row is waiting on, which is what its student-facing status is derived from.
Trait Implementations§
Source§impl Clone for StudentCreditRegistration
impl Clone for StudentCreditRegistration
Source§fn clone(&self) -> StudentCreditRegistration
fn clone(&self) -> StudentCreditRegistration
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StudentCreditRegistration
impl Debug for StudentCreditRegistration
impl StructuralPartialEq for StudentCreditRegistration
Auto Trait Implementations§
impl Freeze for StudentCreditRegistration
impl RefUnwindSafe for StudentCreditRegistration
impl Send for StudentCreditRegistration
impl Sync for StudentCreditRegistration
impl Unpin for StudentCreditRegistration
impl UnsafeUnpin for StudentCreditRegistration
impl UnwindSafe for StudentCreditRegistration
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Decompress response bodies. Read more
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more