Merge branch 'master' of github.com:Gluejar/regluit
commit
f748bb220e
|
@ -0,0 +1,205 @@
|
||||||
|
# encoding: utf-8
|
||||||
|
import datetime
|
||||||
|
from south.db import db
|
||||||
|
from south.v2 import SchemaMigration
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class Migration(SchemaMigration):
|
||||||
|
|
||||||
|
def forwards(self, orm):
|
||||||
|
|
||||||
|
# Adding field 'UserProfile.pic_url'
|
||||||
|
db.add_column('core_userprofile', 'pic_url', self.gf('django.db.models.fields.URLField')(default='', max_length=200, blank=True), keep_default=False)
|
||||||
|
|
||||||
|
# Adding field 'UserProfile.facebook_id'
|
||||||
|
db.add_column('core_userprofile', 'facebook_id', self.gf('django.db.models.fields.PositiveIntegerField')(null=True), keep_default=False)
|
||||||
|
|
||||||
|
# Adding field 'UserProfile.librarything_id'
|
||||||
|
db.add_column('core_userprofile', 'librarything_id', self.gf('django.db.models.fields.CharField')(default='', max_length=31, blank=True), keep_default=False)
|
||||||
|
|
||||||
|
# Changing field 'CeleryTask.function_args'
|
||||||
|
db.alter_column('core_celerytask', 'function_args', self.gf('django.db.models.fields.IntegerField')(null=True))
|
||||||
|
|
||||||
|
# Adding field 'Claim.status'
|
||||||
|
db.add_column('core_claim', 'status', self.gf('django.db.models.fields.CharField')(default='pending', max_length=7), keep_default=False)
|
||||||
|
|
||||||
|
|
||||||
|
def backwards(self, orm):
|
||||||
|
|
||||||
|
# Deleting field 'UserProfile.pic_url'
|
||||||
|
db.delete_column('core_userprofile', 'pic_url')
|
||||||
|
|
||||||
|
# Deleting field 'UserProfile.facebook_id'
|
||||||
|
db.delete_column('core_userprofile', 'facebook_id')
|
||||||
|
|
||||||
|
# Deleting field 'UserProfile.librarything_id'
|
||||||
|
db.delete_column('core_userprofile', 'librarything_id')
|
||||||
|
|
||||||
|
# Changing field 'CeleryTask.function_args'
|
||||||
|
db.alter_column('core_celerytask', 'function_args', self.gf('django.db.models.fields.IntegerField')(default=0))
|
||||||
|
|
||||||
|
# Deleting field 'Claim.status'
|
||||||
|
db.delete_column('core_claim', 'status')
|
||||||
|
|
||||||
|
|
||||||
|
models = {
|
||||||
|
'auth.group': {
|
||||||
|
'Meta': {'object_name': 'Group'},
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||||
|
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'auth.permission': {
|
||||||
|
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||||
|
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||||
|
},
|
||||||
|
'auth.user': {
|
||||||
|
'Meta': {'object_name': 'User'},
|
||||||
|
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||||
|
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||||
|
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||||
|
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||||
|
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||||
|
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||||
|
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||||
|
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||||
|
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||||
|
},
|
||||||
|
'contenttypes.contenttype': {
|
||||||
|
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||||
|
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||||
|
},
|
||||||
|
'core.author': {
|
||||||
|
'Meta': {'object_name': 'Author'},
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'editions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'authors'", 'symmetrical': 'False', 'to': "orm['core.Edition']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '500'})
|
||||||
|
},
|
||||||
|
'core.campaign': {
|
||||||
|
'Meta': {'object_name': 'Campaign'},
|
||||||
|
'activated': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||||
|
'amazon_receiver': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'deadline': ('django.db.models.fields.DateTimeField', [], {}),
|
||||||
|
'description': ('django.db.models.fields.TextField', [], {'null': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True'}),
|
||||||
|
'paypal_receiver': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||||
|
'suspended': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||||
|
'suspended_reason': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'target': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '14', 'decimal_places': '2'}),
|
||||||
|
'withdrawn': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
|
||||||
|
'withdrawn_reason': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'work': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'campaigns'", 'to': "orm['core.Work']"})
|
||||||
|
},
|
||||||
|
'core.celerytask': {
|
||||||
|
'Meta': {'object_name': 'CeleryTask'},
|
||||||
|
'active': ('django.db.models.fields.NullBooleanField', [], {'default': 'True', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2011, 11, 16, 13, 17, 38, 822204)', 'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'description': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True'}),
|
||||||
|
'function_args': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
|
||||||
|
'function_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'task_id': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||||
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tasks'", 'null': 'True', 'to': "orm['auth.User']"})
|
||||||
|
},
|
||||||
|
'core.claim': {
|
||||||
|
'Meta': {'object_name': 'Claim'},
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'rights_holder': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'claim'", 'to': "orm['core.RightsHolder']"}),
|
||||||
|
'status': ('django.db.models.fields.CharField', [], {'default': "'pending'", 'max_length': '7'}),
|
||||||
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'claim'", 'to': "orm['auth.User']"}),
|
||||||
|
'work': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'claim'", 'to': "orm['core.Work']"})
|
||||||
|
},
|
||||||
|
'core.ebook': {
|
||||||
|
'Meta': {'object_name': 'Ebook'},
|
||||||
|
'edition': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ebooks'", 'to': "orm['core.Edition']"}),
|
||||||
|
'format': ('django.db.models.fields.CharField', [], {'max_length': '25'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'provider': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||||
|
'rights': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
|
||||||
|
'url': ('django.db.models.fields.CharField', [], {'max_length': '1024'})
|
||||||
|
},
|
||||||
|
'core.edition': {
|
||||||
|
'Meta': {'object_name': 'Edition'},
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'description': ('django.db.models.fields.TextField', [], {'default': "''", 'null': 'True'}),
|
||||||
|
'googlebooks_id': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'isbn_10': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True'}),
|
||||||
|
'isbn_13': ('django.db.models.fields.CharField', [], {'max_length': '13', 'null': 'True'}),
|
||||||
|
'language': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True'}),
|
||||||
|
'oclc': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True'}),
|
||||||
|
'public_domain': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'publication_date': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||||
|
'publisher': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
|
||||||
|
'work': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'editions'", 'null': 'True', 'to': "orm['core.Work']"})
|
||||||
|
},
|
||||||
|
'core.premium': {
|
||||||
|
'Meta': {'object_name': 'Premium'},
|
||||||
|
'amount': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '0'}),
|
||||||
|
'campaign': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'premiums'", 'null': 'True', 'to': "orm['core.Campaign']"}),
|
||||||
|
'description': ('django.db.models.fields.TextField', [], {'null': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'type': ('django.db.models.fields.CharField', [], {'max_length': '2'})
|
||||||
|
},
|
||||||
|
'core.rightsholder': {
|
||||||
|
'Meta': {'object_name': 'RightsHolder'},
|
||||||
|
'email': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rights_holder'", 'to': "orm['auth.User']"}),
|
||||||
|
'rights_holder_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'core.subject': {
|
||||||
|
'Meta': {'object_name': 'Subject'},
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'editions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subjects'", 'symmetrical': 'False', 'to': "orm['core.Edition']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '500'})
|
||||||
|
},
|
||||||
|
'core.userprofile': {
|
||||||
|
'Meta': {'object_name': 'UserProfile'},
|
||||||
|
'facebook_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
|
||||||
|
'goodreads_auth_secret': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'goodreads_auth_token': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'goodreads_user_id': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'goodreads_user_link': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'goodreads_user_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'home_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'librarything_id': ('django.db.models.fields.CharField', [], {'max_length': '31', 'blank': 'True'}),
|
||||||
|
'pic_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||||
|
'tagline': ('django.db.models.fields.CharField', [], {'max_length': '140', 'blank': 'True'}),
|
||||||
|
'twitter_id': ('django.db.models.fields.CharField', [], {'max_length': '15', 'blank': 'True'}),
|
||||||
|
'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"})
|
||||||
|
},
|
||||||
|
'core.wishlist': {
|
||||||
|
'Meta': {'object_name': 'Wishlist'},
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'wishlist'", 'unique': 'True', 'to': "orm['auth.User']"}),
|
||||||
|
'works': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'wishlists'", 'symmetrical': 'False', 'to': "orm['core.Work']"})
|
||||||
|
},
|
||||||
|
'core.work': {
|
||||||
|
'Meta': {'object_name': 'Work'},
|
||||||
|
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'openlibrary_id': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
|
||||||
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '1000'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
complete_apps = ['core']
|
|
@ -5,6 +5,7 @@ from decimal import Decimal
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
import regluit
|
import regluit
|
||||||
|
|
||||||
|
@ -41,10 +42,16 @@ class CeleryTask(models.Model):
|
||||||
return f.AsyncResult(self.task_id).info
|
return f.AsyncResult(self.task_id).info
|
||||||
|
|
||||||
class Claim(models.Model):
|
class Claim(models.Model):
|
||||||
|
STATUSES = ((
|
||||||
|
u'Active', u'Claim has been registered and approved.'),
|
||||||
|
(u'Pending', u'Claim is pending approval.'),
|
||||||
|
(u'Released', u'Claim has been released.'),
|
||||||
|
)
|
||||||
rights_holder = models.ForeignKey("RightsHolder", related_name="claim", null=False )
|
rights_holder = models.ForeignKey("RightsHolder", related_name="claim", null=False )
|
||||||
work = models.ForeignKey("Work", related_name="claim", null=False )
|
work = models.ForeignKey("Work", related_name="claim", null=False )
|
||||||
user = models.ForeignKey(User, related_name="claim", null=False )
|
user = models.ForeignKey(User, related_name="claim", null=False )
|
||||||
created = models.DateTimeField(auto_now_add=True)
|
created = models.DateTimeField(auto_now_add=True)
|
||||||
|
status = models.CharField(max_length=7, choices= STATUSES, default='pending')
|
||||||
|
|
||||||
class RightsHolder(models.Model):
|
class RightsHolder(models.Model):
|
||||||
email = models.CharField(max_length=100, blank=True)
|
email = models.CharField(max_length=100, blank=True)
|
||||||
|
@ -318,6 +325,14 @@ class UserProfile(models.Model):
|
||||||
goodreads_auth_secret = models.TextField(null=True, blank=True)
|
goodreads_auth_secret = models.TextField(null=True, blank=True)
|
||||||
goodreads_user_link = models.CharField(max_length=200, null=True, blank=True)
|
goodreads_user_link = models.CharField(max_length=200, null=True, blank=True)
|
||||||
|
|
||||||
|
def is_admin(self):
|
||||||
|
if self.user.is_anonymous():
|
||||||
|
return False
|
||||||
|
for name,email in settings.ADMINS :
|
||||||
|
if email == self.user.email :
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
from regluit.core import signals
|
from regluit.core import signals
|
||||||
from regluit.payment.manager import PaymentManager
|
from regluit.payment.manager import PaymentManager
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ class ClaimForm(forms.ModelForm):
|
||||||
i_agree=forms.BooleanField()
|
i_agree=forms.BooleanField()
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Claim
|
model = Claim
|
||||||
|
exclude = 'status'
|
||||||
widgets = { 'user': forms.HiddenInput, 'work': forms.HiddenInput }
|
widgets = { 'user': forms.HiddenInput, 'work': forms.HiddenInput }
|
||||||
|
|
||||||
class RightsHolderForm(forms.ModelForm):
|
class RightsHolderForm(forms.ModelForm):
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
{% url regluit.frontend.views.edit_user as editurl %}
|
{% url regluit.frontend.views.edit_user as editurl %}
|
||||||
{% url rightsholders as rhtoolsurl %}
|
{% url rightsholders as rhtoolsurl %}
|
||||||
{% url faq as faqurl %}
|
{% url faq as faqurl %}
|
||||||
|
{% url rh_admin as adminurl %}
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
@ -76,6 +77,9 @@
|
||||||
<li><a href="{{rhtoolsurl}}">Rights Holder Tools</a></li>
|
<li><a href="{{rhtoolsurl}}">Rights Holder Tools</a></li>
|
||||||
<li><a href="{{privacyurl}}">Privacy</a></li>
|
<li><a href="{{privacyurl}}">Privacy</a></li>
|
||||||
<li><a href="/stub/terms_and_conditions">Terms and Conditions</a></li>
|
<li><a href="/stub/terms_and_conditions">Terms and Conditions</a></li>
|
||||||
|
{% if user.profile.is_admin %}
|
||||||
|
<li><a href="{{adminurl}}">Unglue.it Administration</a></li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends "basedocumentation.html" %}
|
{% extends "basedocumentation.html" %}
|
||||||
|
{% block title %}Claim Form{% endblock %}
|
||||||
{% block doccontent %}
|
{% block doccontent %}
|
||||||
|
|
||||||
<h1>Rights Holder Claim Form </h1>
|
<h1>Rights Holder Claim Form </h1>
|
||||||
|
|
|
@ -19,11 +19,12 @@
|
||||||
<p>Author: {{claim.work.author }}</p>
|
<p>Author: {{claim.work.author }}</p>
|
||||||
<p>On Behalf of: {{ claim.rights_holder.rights_holder_name }}</p>
|
<p>On Behalf of: {{ claim.rights_holder.rights_holder_name }}</p>
|
||||||
<p>PSA #: {{ claim.rights_holder.id }}</p>
|
<p>PSA #: {{ claim.rights_holder.id }}</p>
|
||||||
<p></p>
|
<p>Date of Claim : {{ claim.created }}</p>
|
||||||
|
<p>Status: {{ claim.status }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h2>Rights Holder FAQ/How to launch a campaign</h2>
|
<h2>How to launch an Unglue.it campaign</h2>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
|
@ -35,7 +36,14 @@
|
||||||
The next step for a rights holder is to claim works from the Unglue.it database. Find the work by adding it to you wishlist.
|
The next step for a rights holder is to claim works from the Unglue.it database. Find the work by adding it to you wishlist.
|
||||||
On the "details" tab of the work's page, you will find a form that allows you to enter a claim.
|
On the "details" tab of the work's page, you will find a form that allows you to enter a claim.
|
||||||
When you enter a claim, you will be asked to agree to terms and conditions, in which you agree that you're making the claim in good faith, and that you can substantiate that you have legal control over rights to the work.
|
When you enter a claim, you will be asked to agree to terms and conditions, in which you agree that you're making the claim in good faith, and that you can substantiate that you have legal control over rights to the work.
|
||||||
|
If you claim a work by mistake, please contact Unglue.it rights holder relations immediately: rights@gluejar.com
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
Once a claim is made, it will be reviewed by Unglue.it staff.
|
||||||
|
We'll make sure that the the claim is in order, and we may contact you at {{ request.user.email }} if we have any questions.
|
||||||
|
We may want to look over publishing contracts, etc., to make sure you have sufficient rights to unglue the book.
|
||||||
|
</li>
|
||||||
|
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2>Rightsholder social media tools</h2>
|
<h2>Rightsholder social media tools</h2>
|
||||||
|
@ -54,4 +62,6 @@ Here are the standard rewards:
|
||||||
<li><em>$100</em> — Your name, link of your choice, & a brief message (140 characters max) under "bibliophiles"</li>
|
<li><em>$100</em> — Your name, link of your choice, & a brief message (140 characters max) under "bibliophiles"</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2>More Questions</h2>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -19,4 +19,15 @@
|
||||||
owner: <a href="{% url supporter supporter_username=rights_holder.owner %}">{{ rights_holder.owner }}</a><br/>
|
owner: <a href="{% url supporter supporter_username=rights_holder.owner %}">{{ rights_holder.owner }}</a><br/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
<h2> Pending Claims </h2>
|
||||||
|
{% for claim in pending %}
|
||||||
|
<h3>Title: <a href="{% url work work_id=claim.work.id %}">{{claim.work.title }}</a></h3>
|
||||||
|
<p>Author: {{claim.work.author }}</p>
|
||||||
|
<p>By: {{ claim.user.username }}
|
||||||
|
<p>On Behalf of: {{ claim.rights_holder.rights_holder_name }}</p>
|
||||||
|
<p>PSA #: {{ claim.rights_holder.id }}</p>
|
||||||
|
<p>Date of Claim : {{ claim.created }}</p>
|
||||||
|
<p>Status: {{ claim.status }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -124,7 +124,7 @@ def claim(request):
|
||||||
return render(request, "claim.html", context)
|
return render(request, "claim.html", context)
|
||||||
|
|
||||||
def rh_admin(request):
|
def rh_admin(request):
|
||||||
if not is_admin(request.user):
|
if not request.user.profile.is_admin:
|
||||||
return render(request, "admins_only.html")
|
return render(request, "admins_only.html")
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = RightsHolderForm(data=request.POST)
|
form = RightsHolderForm(data=request.POST)
|
||||||
|
@ -133,14 +133,15 @@ def rh_admin(request):
|
||||||
else:
|
else:
|
||||||
form = RightsHolderForm()
|
form = RightsHolderForm()
|
||||||
rights_holders = models.RightsHolder.objects.all()
|
rights_holders = models.RightsHolder.objects.all()
|
||||||
context = { 'request': request, 'rights_holders': rights_holders, 'form': form }
|
pending = models.Claim.objects.filter(status = 'pending')
|
||||||
|
context = {
|
||||||
|
'request': request,
|
||||||
|
'rights_holders': rights_holders,
|
||||||
|
'form': form,
|
||||||
|
'pending': pending,
|
||||||
|
}
|
||||||
return render(request, "rights_holders.html", context)
|
return render(request, "rights_holders.html", context)
|
||||||
|
|
||||||
def is_admin(user):
|
|
||||||
for name,email in settings.ADMINS :
|
|
||||||
if email == user.email :
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def supporter(request, supporter_username, template_name):
|
def supporter(request, supporter_username, template_name):
|
||||||
supporter = get_object_or_404(User, username=supporter_username)
|
supporter = get_object_or_404(User, username=supporter_username)
|
||||||
|
|
Loading…
Reference in New Issue