+ def get_absolute_url(self):
+ return reverse("catalogue_author", args=[self.slug])
+
+ @property
+ def pd_year(self):
+ if self.year_of_death:
+ return self.year_of_death + 71
+ elif self.year_of_death == 0:
+ return 0
+ else:
+ return None
+
+
+class Category(WikidataMixin, models.Model):
+ name = models.CharField(max_length=255)
+ slug = models.SlugField(max_length=255, unique=True)
+
+ class Meta:
+ abstract = True
+
+
+class Epoch(Category):
+ class Meta:
+ verbose_name = _('epoch')
+ verbose_name_plural = _('epochs')
+
+
+class Genre(Category):
+ class Meta:
+ verbose_name = _('genre')
+ verbose_name_plural = _('genres')
+
+
+class Kind(Category):
+ class Meta:
+ verbose_name = _('kind')
+ verbose_name_plural = _('kinds')
+