parent
6d2ab4c0ca
commit
673ce754f6
2 changed files with 32 additions and 0 deletions
|
@ -78,4 +78,6 @@ def publishApiView(request, data):
|
||||||
"Invalid data: {}".format(e))
|
"Invalid data: {}".format(e))
|
||||||
pub.save()
|
pub.save()
|
||||||
|
|
||||||
|
pub.createPubYear()
|
||||||
|
|
||||||
return response.HttpResponse("OK")
|
return response.HttpResponse("OK")
|
||||||
|
|
|
@ -47,6 +47,36 @@ class Publication(models.Model):
|
||||||
max_length=128,
|
max_length=128,
|
||||||
blank=True)
|
blank=True)
|
||||||
|
|
||||||
|
class NoPublicationYear(Exception):
|
||||||
|
def __str__(self):
|
||||||
|
return "No matching publication year."
|
||||||
|
|
||||||
|
@property
|
||||||
|
def numericPublicationYear(self):
|
||||||
|
startYear = self.date.year
|
||||||
|
if self.date.month < 8:
|
||||||
|
return startYear - 1
|
||||||
|
return startYear
|
||||||
|
|
||||||
|
def publicationYear(self):
|
||||||
|
''' Fetch corresponding publication year
|
||||||
|
Raise `NoPublicationYear` if there is no such entry '''
|
||||||
|
startYear = self.numericPublicationYear
|
||||||
|
try:
|
||||||
|
return PublicationYear.objects.get(startYear=startYear)
|
||||||
|
except PublicationYear.DoesNotExist:
|
||||||
|
raise self.NoPublicationYear
|
||||||
|
|
||||||
|
def createPubYear(self):
|
||||||
|
''' Creates the corresponding publication year if needed. '''
|
||||||
|
if (PublicationYear.objects
|
||||||
|
.filter(startYear=self.numericPublicationYear).count()) == 0:
|
||||||
|
pubYear = PublicationYear(startYear=self.numericPublicationYear,
|
||||||
|
descr='')
|
||||||
|
pubYear.save()
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.custom_name:
|
if self.custom_name:
|
||||||
return self.custom_name
|
return self.custom_name
|
||||||
|
|
Loading…
Reference in a new issue