code: def add_publication_info(
          self,
          year=None,
          cnum=None,
          artid=None,
          page_end=None,
          page_start=None,
          journal_issue=None,
          journal_title=None,
          journal_volume=None,
          pubinfo_freetext=None,
          material=None,
          parent_record=None,
          parent_isbn=None,
      ):
          if journal_title and all(
              not field for field in (cnum, artid, journal_issue,
                                      journal_volume, page_start, page_end)):
              self.add_public_note('Submitted to {}'.format(journal_title))
              return
          publication_item = {}
          for key in ('cnum', 'artid', 'page_end', 'page_start',
                      'journal_issue', 'journal_title',
                      'journal_volume', 'year', 'pubinfo_freetext', 'material'):
              if locals()[key] is not None:
                  publication_item[key] = locals()[key]
          if parent_record is not None:
              parent_item = {'$ref': parent_record}
              publication_item['parent_record'] = parent_item
          if parent_isbn is not None:
              publication_item['parent_isbn'] = normalize_isbn(parent_isbn)
          if page_start and page_end:
              try:
                  self.add_number_of_pages(
                      int(page_end) - int(page_start) + 1
                  )
              except (TypeError, ValueError):
                  pass
          self._append_to('publication_info', publication_item)
          if is_citeable(self.record['publication_info']):
              self.set_citeable(True)