You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

109 lines
3.1 KiB

from django.db import models
from django.contrib.auth.models import User
from tagging.fields import TagField
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from app.models import ItfModel
GENRES = (
('Fiction', 'Fiction'),
('Comedy', 'Comedy'),
)
LANGUAGE_CHOICES = (
('en', 'English'),
('hi', 'Hindi'),
('ma', 'Marathi'),
('be', 'Bengali'),
)
class Script(ItfModel):
user = models.ForeignKey(User)
title = models.CharField(max_length=255)
synopsis = models.TextField(blank=True)
no_characters = models.IntegerField(blank=True, help_text="Approximate number of characters")
no_of_women = models.IntegerField(blank=True, help_text="How many characters are women?")
tags = TagField(blank=True)
production_notes = models.TextField(blank=True, help_text="Additional production notes")
language = models.CharField(max_length=32, choices=LANGUAGE_CHOICES)
approx_duration = models.IntegerField(blank=True, help_text="Approximate time, in minutes")
is_partial = models.BooleanField(default=False, help_text="Check this if you are uploading only a partial script")
author = models.CharField(max_length=255)
contact = models.EmailField()
script = models.FileField(null=True, upload_to='upload/scripts/')
license_adapt = models.ForeignKey("LicensePerform", help_text="License for adaptation rights")
license_perform = models.ForeignKey("LicenseAdapt", help_text="License for performance rights")
fts_fields = ['title', 'synopsis', 'author']
fk_fields = ['license_adapt', 'license_perform']
#Meta
added = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
def __unicode__(self):
return self.title
'''
@classmethod
def get_list(kls, data):
options = {
'page_no': 1,
'list_size': 8
}
options.update(data)
l = []
page_no = options['page_no']
list_size = options['list_size']
qset = kls.objects.all()
paginator = Paginator(qset, list_size)
try:
results = paginator.page(page_no)
except (EmptyPage, InvalidPage):
results = paginator.page(paginator.num_pages)
for r in results.object_list:
l.append({
'id': r.id,
'title': r.title
})
return l
'''
class License(models.Model):
letter = models.CharField(max_length=2)
name = models.CharField(max_length=255)
short_description = models.TextField()
readable_file = models.FileField(upload_to='upload/licenses/short/')
legal_file = models.FileField(upload_to='upload/licenses/legal/')
def __unicode__(self):
return self.letter + ": " + self.name
class Meta:
abstract = True
class LicenseAdapt(License):
pass
class LicensePerform(License):
pass
class Review(models.Model):
script = models.ForeignKey(Script)
reviewer = models.CharField(max_length=255)
reviewer_email = models.EmailField()
text = models.TextField()
#this is to record who downloaded what play, etc.
class Downloader(models.Model):
script = models.ForeignKey(Script)
email = models.EmailField()
##Make sure to add Comments to scripts