Exemple #1
0
 def test_full_day_names(self):
     assert get_names_of_days([]) == []
     assert get_names_of_days(['mon', 'wed',
                               'fri']) == ['Monday', 'Wednesday', 'Friday']
     assert get_names_of_days(['TU', 'TH']) == ['Tuesday', 'Thursday']
     assert get_names_of_days(['Tuesday', 'Thursday',
                               'Payday']) == ['Tuesday', 'Thursday', None]
Exemple #2
0
 def to_api_json(self, rooms_by_id=None):
     room_feed = None
     if self.room_id:
         if rooms_by_id:
             room_feed = rooms_by_id.get(self.room_id, None).to_api_json()
         else:
             room_feed = Room.get_room(self.room_id).to_api_json()
     formatted_days = format_days(self.meeting_days)
     return {
         'id':
         self.id,
         'alerts':
         self.alerts or [],
         'createdAt':
         to_isoformat(self.created_at),
         'instructorUids':
         self.instructor_uids,
         'kalturaScheduleId':
         self.kaltura_schedule_id,
         'meetingDays':
         formatted_days,
         'meetingDaysNames':
         get_names_of_days(formatted_days),
         'meetingEndDate':
         datetime.strftime(self.meeting_end_date, '%Y-%m-%d'),
         'meetingEndTime':
         self.meeting_end_time,
         'meetingEndTimeFormatted':
         format_time(self.meeting_end_time),
         'meetingStartDate':
         datetime.strftime(self.meeting_start_date, '%Y-%m-%d'),
         'meetingStartTime':
         self.meeting_start_time,
         'meetingStartTimeFormatted':
         format_time(self.meeting_start_time),
         'publishType':
         self.publish_type,
         'publishTypeName':
         NAMES_PER_PUBLISH_TYPE[self.publish_type],
         'recordingType':
         self.recording_type,
         'recordingTypeName':
         NAMES_PER_RECORDING_TYPE[self.recording_type],
         'room':
         room_feed,
         'sectionId':
         self.section_id,
         'termId':
         self.term_id,
     }
def _to_meeting_json(row):
    end_date = row['meeting_end_date']
    start_date = row['meeting_start_date']
    formatted_days = format_days(row['meeting_days'])
    return {
        'days': row['meeting_days'],
        'daysFormatted': formatted_days,
        'daysNames': get_names_of_days(formatted_days),
        'endDate': safe_strftime(end_date, '%Y-%m-%d'),
        'endTime': row['meeting_end_time'],
        'endTimeFormatted': format_time(row['meeting_end_time']),
        'location': row['meeting_location'],
        'startDate': safe_strftime(start_date, '%Y-%m-%d'),
        'startTime': row['meeting_start_time'],
        'startTimeFormatted': format_time(row['meeting_start_time']),
    }
Exemple #4
0
def get_template_substitutions(
        course,
        recipient_name,
        pending_instructors=None,
        previous_publish_type_name=None,
        previous_recording_type_name=None,
        publish_type_name=None,
        recording_type_name=None,
):
    term_id = (course and course['termId']) or app.config['CURRENT_TERM_ID']

    def _join_names(_dict):
        if not _dict:
            return None
        return ', '.join(i['name'] for i in _dict if i['name'])

    if course:
        meetings = course.get('meetings', {}).get('eligible', [])
        meetings = meetings or course.get('meetings', {}).get('ineligible', [])
        meeting = meetings and meetings[0]
        days = meeting and get_names_of_days(meeting['daysFormatted'])
    else:
        days = None
        meeting = None

    return {
        'course.date.end': meeting and meeting['endDate'],
        'course.date.start': meeting and meeting['startDate'],
        'course.days': days and readable_join(days),
        'course.format': course and course['instructionFormat'],
        'course.name': course and course['courseName'],
        'course.room': meeting and meeting['location'],
        'course.section': course and course['sectionNum'],
        'course.time.end': meeting and meeting['endTimeFormatted'],
        'course.time.start': meeting and meeting['startTimeFormatted'],
        'course.title': course and course['courseTitle'],
        'instructors.all': course and _join_names(course.get('instructors')),
        'instructors.pending': _join_names(pending_instructors),
        'instructors.previous': course and course.get('scheduled') and _join_names(course['scheduled'].get('instructors')),
        'publish.type': publish_type_name,
        'publish.type.previous': previous_publish_type_name,
        'recipient.name': recipient_name,
        'recording.type': recording_type_name,
        'recording.type.previous': previous_recording_type_name,
        'signup.url': course and get_sign_up_url(term_id, course['sectionId']),
        'term.name': term_name_for_sis_id(term_id),
    }