pub struct CreditRegistrationCourseStats {Show 24 fields
pub course_id: Uuid,
pub course_name: String,
pub course_module_id: Uuid,
pub course_module_name: Option<String>,
pub uh_course_code: Option<String>,
pub ects_credits: Option<f32>,
pub enrolment_link: Option<String>,
pub paused_at: Option<DateTime<Utc>>,
pub pause_reason: Option<String>,
pub last_listed_at: Option<DateTime<Utc>>,
pub check: CreditRegistrationCourseConfigCheck,
pub config_checked_at: Option<DateTime<Utc>>,
pub stored_config_check_message: Option<String>,
pub eligible_completion_count: i64,
pub registration_count: i64,
pub success_count: i64,
pub registered_count: i64,
pub already_in_sisu_count: i64,
pub in_flight_count: i64,
pub failed_count: i64,
pub needs_attention_count: i64,
pub where_registrations_stand: Vec<CreditRegistrationStepCount>,
pub last_registered_at: Option<DateTime<Utc>>,
pub top_error_code: Option<CreditRegistrationErrorCode>,
}Fields§
§course_id: Uuid§course_name: String§course_module_id: Uuid§course_module_name: Option<String>§uh_course_code: Option<String>§ects_credits: Option<f32>§enrolment_link: Option<String>Where a student with no usable enrolment is sent to enrol.
paused_at: Option<DateTime<Utc>>§pause_reason: Option<String>§last_listed_at: Option<DateTime<Utc>>§check: CreditRegistrationCourseConfigCheckWhat the current facts say. Recomputed on read, so a configuration fixed a minute ago no longer shows as broken.
config_checked_at: Option<DateTime<Utc>>When the config-validation phase last stamped its verdict on the row. None means never,
which the stored verdict beside it cannot express on its own.
stored_config_check_message: Option<String>The verdict as the phase stored it, which may be older than check.
eligible_completion_count: i64Every passed, ECTS-eligible completion on the module, whichever path owns it. Wider than
what materialize takes, which is only the ones carrying register_credits_via_suotar, so
a module keeps a permanent gap against registration_count for the completions that predate
the push path.
registration_count: i64§success_count: i64Registered, already in Sisu and better grade in Sisu: the denominator the failure rate is
taken against, with failed_count.
registered_count: i64Of success_count, registered by us.
already_in_sisu_count: i64Of success_count, already in Sisu or with a better grade there.
in_flight_count: i64§failed_count: i64§needs_attention_count: i64The module’s rows counted in Needs attention: the Registrations list with
course_module_id and needs_attention=true holds exactly these.
where_registrations_stand: Vec<CreditRegistrationStepCount>The module’s “Where registrations stand”, Not started left out; each count equals the
Registrations list filtered by its step, engagement and course_module_id.
last_registered_at: Option<DateTime<Utc>>§top_error_code: Option<CreditRegistrationErrorCode>Trait Implementations§
Source§impl Clone for CreditRegistrationCourseStats
impl Clone for CreditRegistrationCourseStats
Source§fn clone(&self) -> CreditRegistrationCourseStats
fn clone(&self) -> CreditRegistrationCourseStats
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ComposeSchema for CreditRegistrationCourseStats
impl ComposeSchema for CreditRegistrationCourseStats
Source§impl<'de> Deserialize<'de> for CreditRegistrationCourseStats
impl<'de> Deserialize<'de> for CreditRegistrationCourseStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for CreditRegistrationCourseStats
impl PartialEq for CreditRegistrationCourseStats
Source§fn eq(&self, other: &CreditRegistrationCourseStats) -> bool
fn eq(&self, other: &CreditRegistrationCourseStats) -> bool
self and other values to be equal, and is used by ==.Source§impl ToSchema for CreditRegistrationCourseStats
impl ToSchema for CreditRegistrationCourseStats
impl StructuralPartialEq for CreditRegistrationCourseStats
Auto Trait Implementations§
impl Freeze for CreditRegistrationCourseStats
impl RefUnwindSafe for CreditRegistrationCourseStats
impl Send for CreditRegistrationCourseStats
impl Sync for CreditRegistrationCourseStats
impl Unpin for CreditRegistrationCourseStats
impl UnsafeUnpin for CreditRegistrationCourseStats
impl UnwindSafe for CreditRegistrationCourseStats
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
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> ⓘ
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> ⓘ
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>
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>,
Layered].