def _extract_holdings_type(self, record): ''' Extract holdings type from 007 field & 856 $u field. ''' h856u = _extract(record, '856', 'u') if h856u and h856u.startswith('http://'): h_type = 'Online Resource' else: h_type = _holdings_type(_extract(record, '007')) return h_type
def _extract_holdings_type(self, record): """ Extract holdings type from 007 field & 856 $u field. """ h856u = _extract(record, "856", "u") if h856u and h856u.startswith("http"): h_type = "Online Resource" else: h_type = _holdings_type(_extract(record, "007")) return h_type
def load_xml_holding(self, record): # get the oclc number to link to oclc = _normal_oclc(_extract(record, '004')) if not oclc: _logger.error("holding record missing title: record %s, oclc %s" % (self.records_processed, oclc)) self.errors += 1 return titles = self._get_related_title(oclc) if not titles: return # get the institution to link to inst_code = _extract(record, '852', 'a') inst = self._get_related_inst_code(inst_code) if not inst: return # get the holdings type holding_type = self._extract_holdings_type(record) # get the description desc = _extract(record, '866', 'a') or _extract(record, '866', 'z') if not desc: self.desc_error += 1 return # get the last modified date f008 = _extract(record, '008') date = self._parse_date(f008) # persist it for title in titles: holding = models.Holding(title=title, institution=inst, description=desc, type=holding_type, last_updated=date) holding.save() self.holding_created += 1 reset_queries()
def load_xml_holding(self, record): # get the oclc number to link to oclc = _normal_oclc(_extract(record, "004")) if not oclc: LOGGER.error("holding record missing title: record %s, oclc %s" % (self.records_processed, oclc)) self.errors += 1 return titles = self._get_related_title(oclc) if not titles: return # get the institution to link to inst_code = _extract(record, "852", "a") inst = self._get_related_inst_code(inst_code) if not inst: return # get the holdings type holding_type = self._extract_holdings_type(record) # get the description desc = _extract(record, "866", "a") or _extract(record, "866", "z") notes = _extract(record, "852", "z") # get the last modified date f008 = _extract(record, "008") date = self._parse_date(f008) # persist it for title in titles: holding = models.Holding( title=title, institution=inst, description=desc, type=holding_type, last_updated=date, notes=notes, ) holding.save() self.holding_created += 1 reset_queries()