2011-08-31 03:46:55 +00:00
|
|
|
from django.db import models
|
2011-09-02 04:10:54 +00:00
|
|
|
from django.contrib.auth.models import User
|
2011-08-31 03:46:55 +00:00
|
|
|
|
2011-09-06 03:50:38 +00:00
|
|
|
from regluit.core import signals
|
|
|
|
|
2011-08-31 03:46:55 +00:00
|
|
|
class Campaign(models.Model):
|
2011-09-02 04:10:54 +00:00
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
2011-08-31 03:46:55 +00:00
|
|
|
name = models.CharField(max_length=500, null=False)
|
|
|
|
description = models.CharField(max_length=10000, null=False)
|
|
|
|
target = models.FloatField()
|
|
|
|
deadline = models.DateTimeField()
|
|
|
|
paypal_receiver = models.CharField(max_length=100, null=True)
|
|
|
|
amazon_receiver = models.CharField(max_length=100, null=True)
|
|
|
|
work = models.ForeignKey("Work", related_name="campaign")
|
|
|
|
|
|
|
|
class Work(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
2011-09-02 04:10:54 +00:00
|
|
|
title = models.CharField(max_length=1000)
|
2011-08-31 03:46:55 +00:00
|
|
|
|
2011-09-09 05:38:28 +00:00
|
|
|
class WorkIdentifier(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
|
|
name = models.CharField(max_length=10)
|
|
|
|
value = models.CharField(max_length=500)
|
|
|
|
work = models.ForeignKey("Work", related_name="identifiers")
|
|
|
|
|
|
|
|
class Author(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
|
|
name = models.CharField(max_length=500)
|
|
|
|
works = models.ManyToManyField("Work", related_name="authors")
|
|
|
|
|
|
|
|
def __unicode__(self):
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
class Subject(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
|
|
name = models.CharField(max_length=500)
|
|
|
|
works = models.ManyToManyField("Work", related_name="subjects")
|
|
|
|
|
2011-08-31 03:46:55 +00:00
|
|
|
class Edition(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
|
|
title = models.CharField(max_length=1000)
|
2011-09-09 05:38:28 +00:00
|
|
|
description = models.TextField(default='')
|
2011-08-31 03:46:55 +00:00
|
|
|
publisher = models.CharField(max_length=255)
|
2011-09-09 05:38:28 +00:00
|
|
|
publication_date = models.CharField(max_length=50)
|
2011-08-31 03:46:55 +00:00
|
|
|
work = models.ForeignKey("Work", related_name="editions")
|
|
|
|
|
2011-09-09 05:38:28 +00:00
|
|
|
@property
|
|
|
|
def isbn_10(self):
|
|
|
|
return self._id('isbn_10')
|
|
|
|
|
|
|
|
@property
|
|
|
|
def isbn_13(self):
|
|
|
|
return self._id('isbn_13')
|
|
|
|
|
|
|
|
def _id(self, name):
|
|
|
|
for i in self.identifiers.all():
|
|
|
|
if i.name == name:
|
|
|
|
return i.value
|
|
|
|
return None
|
|
|
|
|
|
|
|
class EditionIdentifier(models.Model):
|
2011-09-02 04:10:54 +00:00
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
2011-08-31 03:46:55 +00:00
|
|
|
name = models.CharField(max_length=10)
|
|
|
|
value = models.CharField(max_length=500)
|
|
|
|
edition = models.ForeignKey("Edition", related_name="identifiers")
|
|
|
|
|
2011-09-09 05:38:28 +00:00
|
|
|
class EditionCover(models.Model):
|
|
|
|
openlibrary_id = models.IntegerField()
|
|
|
|
edition = models.ForeignKey("Edition", related_name="covers")
|
2011-09-02 04:10:54 +00:00
|
|
|
|
|
|
|
class Wishlist(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
|
|
user = models.OneToOneField(User, related_name='wishlist')
|
|
|
|
works = models.ManyToManyField('Work', related_name='wishlists')
|