Beispiel #1
0
                    print("EXITTING")
                    break

                print(days)

                short_course_weeks_limit = SCHOOLS_MAP[school].short_course_weeks_limit
                day = input("day: ")
                start = input("time_start (XX:YY) : ")
                end = input("time_end (XX:YY) : ")
                offer_date_start = input("date_start mm-dd-yyyy : ")
                offer_date_end = input("date_end mm-dd-yyyy : ")
                location = input("location: ")
                offering, OfferingCreated = Offering.objects.update_or_create(
                    section=section,
                    day=day,
                    time_start=start,
                    time_end=end,
                    date_start=offer_date_start,
                    date_end=offer_date_end,
                    is_short_course=is_short_course(
                        date_start, date_end, short_course_weeks_limit
                    ),
                    defaults={"location": location},
                )

                print("-----------------OFFERING CREATED----------------")

    except EOFError:
        print("EXITING")
        exit(0)
Beispiel #2
0
    def adapt_meeting(self, meeting, section_model=None):
        """Adapt meeting to Django model.

        Args:
            meeting (TYPE): Description
            section_model (None, optional): Description

        Yields:
            dict

        Raises:
            DigestionError: meeting is None.
        """
        if section_model is None:
            course_model = None
            if self.cache.code and meeting.course.code == self.cache.course.code:
                course_model = self.cache.course
            else:
                course_model = Course.objects.filter(
                    school=self.school, code=meeting.course.code).first()
                if course_model is None:
                    print(
                        "no course object for {}".format(meeting.course.code),
                        file=sys.stderr,
                    )
                    # raise DigestionError('no course object for meeting')
            if (self.cache.course
                    and course_model.code == self.cache.course.code
                    and meeting.section.code
                    == self.cache.section.meeting_section):
                section_model = self.cache.section
            else:
                section_model = Section.objects.filter(
                    course=course_model,
                    meeting_section=meeting.section.code,
                    semester__name=meeting.section.term,
                    semester__year=meeting.section.year,
                ).first()
                if section_model is None:
                    print(
                        "no section {} {} for meeting".format(
                            meeting.course.code, meeting.section.code),
                        file=sys.stderr,
                    )
                    # raise DigestionError('no section object for meeting', meeting)

        for day in meeting.get("days", []):
            offering = {
                "section":
                section_model,
                "day":
                day,
                "time_start":
                meeting.time.start,
                "time_end":
                meeting.time.end,
                "date_start":
                meeting.dates.start,
                "date_end":
                meeting.dates.end,
                "is_short_course":
                is_short_course(
                    meeting.dates.start,
                    meeting.dates.end,
                    self.short_course_weeks_limit,
                ),
                "defaults": {
                    "location":
                    meeting.get("location", {}).get("building", "") + " " +
                    meeting.get("location", {}).get("room", "")
                },
            }
            yield offering
Beispiel #3
0
    def adapt_meeting(self, meeting, section_model=None):
        """Adapt meeting to Django model.

        Args:
            meeting (TYPE): Description
            section_model (None, optional): Description

        Yields:
            dict

        Raises:
            DigestionError: meeting is None.
        """
        if section_model is None:
            course_model = None
            if (self.cache.code and
                    meeting.course.code == self.cache.course.code):
                course_model = self.cache.course
            else:
                course_model = Course.objects.filter(
                    school=self.school,
                    code=meeting.course.code
                ).first()
                if course_model is None:
                    print('no course object for {}'.format(meeting.course.code), file=sys.stderr)
                    # raise DigestionError('no course object for meeting')
            if self.cache.course and course_model.code == self.cache.course.code and meeting.section.code == self.cache.section.meeting_section:
                    section_model = self.cache.section
            else:
                section_model = Section.objects.filter(
                    course=course_model,
                    meeting_section=meeting.section.code,
                    semester__name=meeting.section.term,
                    semester__year=meeting.section.year
                ).first()
                if section_model is None:
                    print('no section {} {} for meeting'.format(
                        meeting.course.code,
                        meeting.section.code
                    ), file=sys.stderr)
                    # raise DigestionError('no section object for meeting', meeting)
        
        
        for day in meeting.get('days', []):
            offering = {
                'section': section_model,
                'day': day,
                'time_start': meeting.time.start,
                'time_end': meeting.time.end,
                'date_start': meeting.dates.start,
                'date_end': meeting.dates.end,
                'is_short_course': is_short_course(
                    meeting.dates.start,
                    meeting.dates.end,
                    self.short_course_weeks_limit
                ),
                'defaults': {
                    'location': meeting.get('location', {}).get('building', '') + ' ' + meeting.get('location', {}).get('room', '')
                }
            }
            yield offering