pub struct UserCompletionInformation {
pub course_module_completion_id: Uuid,
pub course_name: String,
pub course_module_name: Option<String>,
pub uh_course_code: Option<String>,
pub email: String,
pub ects_credits: Option<f32>,
pub enable_registering_completion_to_uh_open_university: bool,
pub enable_credit_registration_via_suotar: bool,
pub register_credits_via_suotar: bool,
pub status_before_registration: StudentFacingCreditRegistrationStatus,
pub certificate_configuration_id: Option<Uuid>,
pub credit_justification: Option<String>,
}Fields§
§course_module_completion_id: Uuid§course_name: StringThe course’s own name, never the module’s; the module is named by course_module_name.
course_module_name: Option<String>The module’s own name, None on a course’s default module.
uh_course_code: Option<String>None only on a module registering through credit registration.
email: String§ects_credits: Option<f32>§enable_registering_completion_to_uh_open_university: bool§enable_credit_registration_via_suotar: bool§register_credits_via_suotar: boolWhether this completion in particular goes through the push path. Decides which flow the page shows: the module flag above only says the module takes part.
status_before_registration: StudentFacingCreditRegistrationStatusWhat the student is told while the completion has no credit registration: sending when
the push path will create one, not_registering when it never will.
certificate_configuration_id: Option<Uuid>Some only when the student can generate a certificate for this module right now, which is
also the id /generate-certificate wants.
Read off the same completion as the rest of this object, the one
course_module_completions::select_registration_completion picks. The course page’s
congratulations card reads off the best one instead, so a student whose registration
completion is not their best can see a certificate there and none here.
credit_justification: Option<String>Why the student said they need the credits rather than a certificate, if they have been asked and answered. Advisory; it seeds the field when they come back to the page.
Trait Implementations§
Source§impl Clone for UserCompletionInformation
impl Clone for UserCompletionInformation
Source§fn clone(&self) -> UserCompletionInformation
fn clone(&self) -> UserCompletionInformation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ComposeSchema for UserCompletionInformation
impl ComposeSchema for UserCompletionInformation
Source§impl<'de> Deserialize<'de> for UserCompletionInformation
impl<'de> Deserialize<'de> for UserCompletionInformation
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 ToSchema for UserCompletionInformation
impl ToSchema for UserCompletionInformation
impl StructuralPartialEq for UserCompletionInformation
Auto Trait Implementations§
impl Freeze for UserCompletionInformation
impl RefUnwindSafe for UserCompletionInformation
impl Send for UserCompletionInformation
impl Sync for UserCompletionInformation
impl Unpin for UserCompletionInformation
impl UnsafeUnpin for UserCompletionInformation
impl UnwindSafe for UserCompletionInformation
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].