def save(self, *args, **kwargs):
        if self.publication:
            publication = self.publication
            if not self.title:
                self.title = publication.title
            if not self.subtitle:
                first_author = publication.first_author
                if first_author == publication.last_author:
                    authors = first_author
                else:
                    authors = '{} et al.'.format(first_author)
                self.subtitle = '{}, {} ({})'.format(authors,
                    publication.journal, publication.year)
            if not self.description:
                self.description = publication.abstract
            if self.publication.year and not self.pk:
                delta = timezone.now() - self.publish_datetime
                if self.publish_datetime <= timezone.now() and delta.days == 0:
                    self.publish_datetime = datetime.datetime(
                        year=int(self.publication.year),
                        month=int(self.publication.month or 1),
                        day=int(self.publication.day or 1),
                    )
        super().save(*args, **kwargs)