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
|
|
|
|
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)
|
2011-09-16 02:05:47 +00:00
|
|
|
target = models.FloatField(null=False)
|
|
|
|
deadline = models.DateTimeField(null=False)
|
2011-08-31 03:46:55 +00:00
|
|
|
paypal_receiver = models.CharField(max_length=100, null=True)
|
|
|
|
amazon_receiver = models.CharField(max_length=100, null=True)
|
2011-09-12 04:04:22 +00:00
|
|
|
work = models.ForeignKey("Work", related_name="campaigns")
|
2011-09-10 11:36:38 +00:00
|
|
|
|
|
|
|
def __unicode__(self):
|
|
|
|
return u"Campaign for %s" % self.work.title
|
|
|
|
|
2011-09-27 09:27:47 +00:00
|
|
|
def cover_image_small(self):
|
|
|
|
first_isbn = self.work.editions.all()[0].isbn_10
|
|
|
|
return "http://covers.openlibrary.org/b/isbn/%s-S.jpg" % first_isbn
|
|
|
|
|
2011-09-10 11:36:38 +00:00
|
|
|
|
2011-08-31 03:46:55 +00:00
|
|
|
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-09-10 11:36:38 +00:00
|
|
|
openlibrary_id = models.CharField(max_length=50, null=True)
|
|
|
|
|
|
|
|
def __unicode__(self):
|
|
|
|
return self.title
|
2011-08-31 03:46:55 +00:00
|
|
|
|
2011-09-09 05:38:28 +00:00
|
|
|
|
|
|
|
class Author(models.Model):
|
|
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
|
|
name = models.CharField(max_length=500)
|
2011-09-10 11:36:38 +00:00
|
|
|
openlibrary_id = models.CharField(max_length=50, null=True)
|
2011-09-09 05:38:28 +00:00
|
|
|
works = models.ManyToManyField("Work", related_name="authors")
|
|
|
|
|
|
|
|
def __unicode__(self):
|
|
|
|
return self.name
|
|
|
|
|
2011-09-10 11:36:38 +00:00
|
|
|
|
2011-09-09 05:38:28 +00:00
|
|
|
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-09-10 11:36:38 +00:00
|
|
|
def __unicode__(self):
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
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-09-10 11:36:38 +00:00
|
|
|
isbn_10 = models.CharField(max_length=10, null=True)
|
|
|
|
isbn_13 = models.CharField(max_length=13, null=True)
|
|
|
|
openlibrary_id = models.CharField(max_length=50, null=True)
|
2011-08-31 03:46:55 +00:00
|
|
|
work = models.ForeignKey("Work", related_name="editions")
|
|
|
|
|
2011-09-09 18:27:29 +00:00
|
|
|
def __unicode__(self):
|
|
|
|
return self.title
|
|
|
|
|
2011-08-31 03:46:55 +00:00
|
|
|
|
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
|
|
|
|
2011-09-10 11:36:38 +00:00
|
|
|
|
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')
|
2011-09-12 05:53:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
from regluit.core import signals
|