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)