4a236b62f7c4a0486732f61eab6b00c886613066
[redakcja.git] / src / catalogue / models.py
1 from django.db import models
2 from django.utils.translation import gettext_lazy as _
3
4
5 class Author(models.Model):
6     name = models.CharField(max_length=255)
7     year_of_death = models.SmallIntegerField(null=True, blank=True)
8     status = models.PositiveSmallIntegerField(null=True, blank=True, choices=[
9         (1, _('Alive')),
10         (2, _('Dead')),
11         (3, _('Long dead')),
12         (4, _('Unknown')),
13     ])
14
15     def __str__(self):
16         return self.name
17
18
19 class Book(models.Model):
20     uri = models.CharField(max_length=255)
21
22     authors = models.ManyToManyField(Author, blank=True)
23     translators = models.ManyToManyField(Author, related_name='translated_book_set', related_query_name='translated_book', blank=True)
24     title = models.CharField(max_length=255)
25     language = models.CharField(max_length=3)
26     based_on = models.ForeignKey('self', models.PROTECT, related_name='translation', null=True, blank=True)
27
28     scans_source = models.CharField(max_length=255, blank=True)
29     text_source = models.CharField(max_length=255, blank=True)
30     notes = models.TextField(blank=True)
31     priority = models.PositiveSmallIntegerField(default=0, choices=[
32         (0, _('Low')),
33         (1, _('Medium')),
34         (2, _('High')),
35     ])
36
37     def __str__(self):
38         return self.title