def get_learner_data_record(self, enterprise_enrollment, completed_date=None, grade=None, is_passing=False): """ Generate a learner data transmission audit with fields properly filled in. """ # pylint: disable=invalid-name LearnerDataTransmissionAudit = apps.get_model( 'integrated_channel', 'LearnerDataTransmissionAudit') completed_timestamp = None course_completed = False if completed_date is not None: completed_timestamp = parse_datetime_to_epoch_millis( completed_date) course_completed = is_passing return LearnerDataTransmissionAudit( enterprise_course_enrollment_id=enterprise_enrollment.id, course_id=enterprise_enrollment.course_id, course_completed=course_completed, completed_timestamp=completed_timestamp, grade=grade, )
def get_learner_data_records(self, enterprise_enrollment, completed_date=None, grade=None, is_passing=False): """ Return a SapSuccessFactorsLearnerDataTransmissionAudit with the given enrollment and course completion data. If completed_date is None and the learner isn't passing, then course completion has not been met. If no remote ID can be found, return None. """ completed_timestamp = None course_completed = False if completed_date is not None: completed_timestamp = parse_datetime_to_epoch_millis( completed_date) course_completed = is_passing sapsf_user_id = enterprise_enrollment.enterprise_customer_user.get_remote_id( ) if sapsf_user_id is not None: SapSuccessFactorsLearnerDataTransmissionAudit = apps.get_model( # pylint: disable=invalid-name 'sap_success_factors', 'SapSuccessFactorsLearnerDataTransmissionAudit') # We return two records here, one with the course key and one with the course run id, to account for # uncertainty about the type of content (course vs. course run) that was sent to the integrated channel. course_catalog_client = get_course_catalog_api_service_client( site=enterprise_enrollment.enterprise_customer_user. enterprise_customer.site) return [ SapSuccessFactorsLearnerDataTransmissionAudit( enterprise_course_enrollment_id=enterprise_enrollment.id, sapsf_user_id=sapsf_user_id, course_id=course_catalog_client.get_course_id( enterprise_enrollment.course_id), course_completed=course_completed, completed_timestamp=completed_timestamp, grade=grade, ), SapSuccessFactorsLearnerDataTransmissionAudit( enterprise_course_enrollment_id=enterprise_enrollment.id, sapsf_user_id=sapsf_user_id, course_id=enterprise_enrollment.course_id, course_completed=course_completed, completed_timestamp=completed_timestamp, grade=grade, ), ] else: LOGGER.debug( '[Integrated Channel] No learner data was sent for user [%s] because an SAP SuccessFactors user ID' ' could not be found.', enterprise_enrollment.enterprise_customer_user.username)
def get_learner_data_records(self, enterprise_enrollment, completed_date=None, is_passing=False, **kwargs): # pylint: disable=arguments-differ,unused-argument """ Return a BlackboardLearnerDataTransmissionAudit with the given enrollment and course completion data. If completed_date is None, then course completion has not been met. If no remote ID can be found, return None. """ enterprise_customer = enterprise_enrollment.enterprise_customer_user completed_timestamp = None if completed_date is not None: completed_timestamp = parse_datetime_to_epoch_millis( completed_date) if enterprise_customer.user_email is None: LOGGER.debug( 'No learner data was sent for user [%s] because a Blackboard user ID could not be found.', enterprise_customer.username) return None BlackboardLearnerDataTransmissionAudit = apps.get_model( # pylint: disable=invalid-name 'blackboard', 'BlackboardLearnerDataTransmissionAudit') course_catalog_client = get_course_catalog_api_service_client( site=enterprise_customer.enterprise_customer.site) percent_grade = kwargs.get('grade_percent', None) return [ BlackboardLearnerDataTransmissionAudit( enterprise_course_enrollment_id=enterprise_enrollment.id, blackboard_user_email=enterprise_customer.user_email, course_id=course_catalog_client.get_course_id( enterprise_enrollment.course_id), course_completed=completed_date is not None and is_passing, grade=percent_grade, completed_timestamp=completed_timestamp, ), BlackboardLearnerDataTransmissionAudit( enterprise_course_enrollment_id=enterprise_enrollment.id, blackboard_user_email=enterprise_customer.user_email, course_id=enterprise_enrollment.course_id, course_completed=completed_date is not None and is_passing, grade=percent_grade, completed_timestamp=completed_timestamp, ) ]
def get_learner_data_record(self, enterprise_enrollment, completed_date=None, grade=None, is_passing=False): """ Return a SapSuccessFactorsLearnerDataTransmissionAudit with the given enrollment and course completion data. If completed_date is None and the learner isn't passing, then course completion has not been met. If no remote ID can be found, return None. """ completed_timestamp = None course_completed = False if completed_date is not None: completed_timestamp = parse_datetime_to_epoch_millis( completed_date) course_completed = is_passing sapsf_user_id = enterprise_enrollment.enterprise_customer_user.get_remote_id( ) if sapsf_user_id is not None: SapSuccessFactorsLearnerDataTransmissionAudit = apps.get_model( # pylint: disable=invalid-name 'sap_success_factors', 'SapSuccessFactorsLearnerDataTransmissionAudit') return SapSuccessFactorsLearnerDataTransmissionAudit( enterprise_course_enrollment_id=enterprise_enrollment.id, sapsf_user_id=sapsf_user_id, course_id=enterprise_enrollment.course_id, course_completed=course_completed, completed_timestamp=completed_timestamp, grade=grade, ) else: LOGGER.debug( 'No learner data was sent for user [%s] because an SAP SuccessFactors user ID could not be found.', enterprise_enrollment.enterprise_customer_user.username)
def test_parse_datetime_to_epoch(self, iso8601, epoch): assert utils.parse_datetime_to_epoch_millis(iso8601) == epoch