示例#1
0
    def extract_availability(self, circulation_data, element, ns):
        identifier = self.text_of_subtag(element, 'axis:titleId', ns)
        primary_identifier = IdentifierData(Identifier.THETA_ID, identifier)

        if not circulation_data:
            circulation_data = CirculationData(
                data_source=DataSource.THETA,
                primary_identifier=primary_identifier,
            )

        availability = self._xpath1(element, 'axis:availability', ns)
        total_copies = self.int_of_subtag(availability, 'axis:totalCopies', ns)
        available_copies = self.int_of_subtag(availability,
                                              'axis:availableCopies', ns)
        size_of_hold_queue = self.int_of_subtag(availability,
                                                'axis:holdsQueueSize', ns)

        availability_updated = self.text_of_optional_subtag(
            availability, 'axis:updateDate', ns)
        if availability_updated:
            try:
                attempt = datetime.datetime.strptime(
                    availability_updated, self.FULL_DATE_FORMAT_IMPLICIT_UTC)
                availability_updated += ' +00:00'
            except ValueError:
                pass
            availability_updated = datetime.datetime.strptime(
                availability_updated, self.FULL_DATE_FORMAT)

        circulation_data.licenses_owned = total_copies
        circulation_data.licenses_available = available_copies
        circulation_data.licenses_reserved = 0
        circulation_data.patrons_in_hold_queue = size_of_hold_queue

        return circulation_data
示例#2
0
    def extract_availability(self, circulation_data, element, ns):
        primary_identifier = IdentifierData(Identifier.ENKI_ID, element["id"])
        if not circulation_data:
            circulation_data = CirculationData(
                data_source=DataSource.ENKI,
                primary_identifier=primary_identifier,
            )
    # For now, assume there is a license available for each item.
        circulation_data.licenses_owned = 1
        circulation_data.licenses_available = 1
        circulation_data.licenses_reserved = 0
        circulation_data.patrons_in_hold_queue = 0

        return circulation_data