Merge branch 'master' into add_libraries

pull/1/head
eric 2013-10-07 12:35:55 -04:00
commit 2f703a7815
24 changed files with 289 additions and 148 deletions

View File

@ -34,6 +34,10 @@ to install python-setuptools in step 1:
1. `django-admin.py runserver 0.0.0.0:8000` (you can change the port number from the default value of 8000)
1. point your browser at http://localhost:8000/
CSS development
1. We are using Less version 2.8 for CSS. http://incident57.com/less/. We use minified CSS.
Production Deployment
---------------------

View File

@ -412,7 +412,7 @@ class Campaign(models.Model):
self.problems.append(_('You can\'t launch a buy-to-unglue campaign if you don\'t have any ebook files uploaded' ))
may_launch = False
if self.type==BUY2UNGLUE and ((self.cc_date_initial is None) or (self.cc_date_initial > datetime.combine(settings.MAX_CC_DATE, datetime.min.time())) or (self.cc_date_initial < now())):
self.problems.append(_('You must set an initial CC Date that is in the future and not after %s' % settings.MAX_CC_DATE ))
self.problems.append(_('You must set an initial Ungluing Date that is in the future and not after %s' % settings.MAX_CC_DATE ))
may_launch = False
except Exception as e :
self.problems.append('Exception checking launchability ' + str(e))
@ -482,7 +482,8 @@ class Campaign(models.Model):
time_to_cc = self.cc_date_initial - start_datetime
self.dollar_per_day = float(self.target)/float(time_to_cc.days)
self.save()
if self.status!='DEMO':
self.save()
return self.dollar_per_day
def set_cc_date_initial(self, a_date=settings.MAX_CC_DATE):
@ -501,7 +502,8 @@ class Campaign(models.Model):
self.left = Decimal(self.dollar_per_day*float((self.cc_date_initial - datetime.today()).days))-self.current_total
else:
self.left = self.target - self.current_total
self.save()
if self.status != 'DEMO':
self.save()
def transactions(self, **kwargs):
p = PaymentManager()

View File

@ -369,6 +369,37 @@ class OfferForm(forms.ModelForm):
date_selector=range(date.today().year, settings.MAX_CC_DATE.year+1)
class CCDateForm(object):
target = forms.DecimalField( min_value= D(settings.UNGLUEIT_MINIMUM_TARGET), error_messages={'required': 'Please specify a Revenue Target.'} )
minimum_target = settings.UNGLUEIT_MINIMUM_TARGET
maximum_target = settings.UNGLUEIT_MAXIMUM_TARGET
max_cc_date = settings.MAX_CC_DATE
def clean_target(self):
new_target = self.cleaned_data['target']
if new_target < D(settings.UNGLUEIT_MINIMUM_TARGET):
raise forms.ValidationError(_('A campaign may not be launched with a target less than $%s' % settings.UNGLUEIT_MINIMUM_TARGET))
if new_target > D(settings.UNGLUEIT_MAXIMUM_TARGET):
raise forms.ValidationError(_('A campaign may not be launched with a target more than $%s' % settings.UNGLUEIT_MAXIMUM_TARGET))
return new_target
def clean_cc_date_initial(self):
new_cc_date_initial = self.cleaned_data['cc_date_initial']
if new_cc_date_initial.date() > settings.MAX_CC_DATE:
raise forms.ValidationError('The initial Ungluing Date cannot be after %s'%settings.MAX_CC_DATE)
elif new_cc_date_initial - now() < timedelta(days=0):
raise forms.ValidationError('The initial Ungluing date must be in the future!')
return new_cc_date_initial
class DateCalculatorForm(CCDateForm, forms.ModelForm):
revenue = forms.DecimalField()
cc_date_initial = forms.DateTimeField(
widget = SelectDateWidget(years=date_selector)
)
class Meta:
model = Campaign
fields = 'target', 'cc_date_initial', 'revenue',
def getManageCampaignForm ( instance, data=None, *args, **kwargs ):
def get_queryset():
@ -377,22 +408,18 @@ def getManageCampaignForm ( instance, data=None, *args, **kwargs ):
def get_widget_class(widget_classes):
return widget_classes[instance.type-1]
class ManageCampaignForm(forms.ModelForm):
class ManageCampaignForm(CCDateForm,forms.ModelForm):
cc_date_initial = forms.DateTimeField(
required = (instance.type==2) and instance.status=='INITIALIZED',
widget = SelectDateWidget(years=date_selector) if instance.status=='INITIALIZED' else forms.HiddenInput
)
paypal_receiver = forms.EmailField(
label=_("contact email address for this campaign"),
max_length=100,
error_messages={'required': 'You must enter the email we should contact you at for this campaign.'},
)
target = forms.DecimalField( min_value= D(settings.UNGLUEIT_MINIMUM_TARGET), error_messages={'required': 'Please specify a target price.'} )
edition = forms.ModelChoiceField(get_queryset(), widget=RadioSelect(),empty_label='no edition selected',required = False,)
minimum_target = settings.UNGLUEIT_MINIMUM_TARGET
maximum_target = settings.UNGLUEIT_MAXIMUM_TARGET
max_cc_date = settings.MAX_CC_DATE
publisher = forms.ModelChoiceField(instance.work.publishers(), empty_label='no publisher selected', required = False,)
cc_date_initial = forms.DateTimeField(
required = (instance.type==2) and instance.status=='INITIALIZED',
widget = SelectDateWidget(years=date_selector) if instance.status=='INITIALIZED' else forms.HiddenInput
)
class Meta:
model = Campaign
@ -402,30 +429,20 @@ def getManageCampaignForm ( instance, data=None, *args, **kwargs ):
}
def clean_target(self):
new_target = self.cleaned_data['target']
new_target = super(ManageCampaignForm,self).clean_target()
if self.instance:
if self.instance.status == 'ACTIVE' and self.instance.target < new_target:
raise forms.ValidationError(_('The fundraising target for an ACTIVE campaign cannot be increased.'))
if new_target < D(settings.UNGLUEIT_MINIMUM_TARGET):
raise forms.ValidationError(_('A campaign may not be launched with a target less than $%s' % settings.UNGLUEIT_MINIMUM_TARGET))
if new_target > D(settings.UNGLUEIT_MAXIMUM_TARGET):
raise forms.ValidationError(_('A campaign may not be launched with a target more than $%s' % settings.UNGLUEIT_MAXIMUM_TARGET))
return new_target
def clean_cc_date_initial(self):
if self.instance.type==1:
return None
new_cc_date_initial = self.cleaned_data['cc_date_initial']
if self.instance:
if self.instance.status != 'INITIALIZED':
# can't change this once launched
return self.instance.cc_date_initial
if new_cc_date_initial.date() > settings.MAX_CC_DATE:
raise forms.ValidationError('The initial CC date cannot be after %s'%settings.MAX_CC_DATE)
elif new_cc_date_initial - now() < timedelta(days=0):
raise forms.ValidationError('The initial CC date must be in the future!')
return new_cc_date_initial
return super(ManageCampaignForm,self).clean_cc_date_initial()
def clean_deadline(self):
if self.instance.type==1:

View File

@ -11,7 +11,7 @@
It's possible! Here's a set of books that <span class="ungluer"></span> has given to you. All of these books are either in the public domain (in the United States, and possibly other countries as well), or they've been released to the world under a <a href="https://creativecommons.org/">Creative Commons</a> license. This means you're free to read, copy, and share them. Under some licenses, you're also free to remix them into new creative works.
</p>
<p>
Some of these books have been in the public domain all along. But others were unglued. What's that mean? First, book creators decided what amount what would make it worth their while to issue their books under Creative Commons licenses. Next, they ran pledge campaigns on Unglue.it, and anyone who wanted to give this book to the world -- including <span class="ungluer"></span> -- chipped in. When the campaign succeeded, we paid the book creators, and they issued a freely available ebook. You're free to read it now. Go ahead!
Some of these books have been in the public domain all along. But others were unglued. What's that mean? First, book creators decided what amount what would make it worth their while to issue their books under Creative Commons licenses. Next, they ran Pledge Campaigns on Unglue.it, and anyone who wanted to give this book to the world -- including <span class="ungluer"></span> -- chipped in. When the campaign succeeded, we paid the book creators, and they issued a freely available ebook. You're free to read it now. Go ahead!
</p>
<p>
Now imagine, what if your favorite book were on this list?

View File

@ -11,7 +11,7 @@
It's possible! You are free to read, copy, and share books that are in the public domain or have been released to the world under a <a href="https://creativecommons.org/">Creative Commons</a> license. Under some licenses, you're also free to remix them into new creative works.
</p>
<p>
Here at Unglue.it, we help you pay creators to unglue their books. What's that mean? First, book creators say what amount would make it worth their while to issue their books under Creative Commons licenses. Next, they run pledge campaigns on Unglue.it, and anyone who wants to give their book to the world chips in. When the campaign succeeds, we pay the book creators, and they issue a freely available ebook. When books <span class="ungluer"></span> loves are unglued, you'll see them here.
Here at Unglue.it, we help you pay creators to unglue their books. What's that mean? First, book creators say what amount would make it worth their while to issue their books under Creative Commons licenses. Next, they run Pledge Campaigns on Unglue.it, and anyone who wants to give their book to the world chips in. When the campaign succeeds, we pay the book creators, and they issue a freely available ebook. When books <span class="ungluer"></span> loves are unglued, you'll see them here.
</p>
<p>
Now imagine, what if your favorite book were on this list?

View File

@ -0,0 +1,64 @@
{% extends "basedocumentation.html" %}
{% load humanize %}
{% block title %}Buy-to-Unglue Campaign Mechanics{% endblock %}
{% block topsection %}
{% endblock %}
{% block doccontent %}
<h2>Frequently Asked Questions</h2>
<dl>
<dt class="background: #8dc63f; color: white; font-weight: bold;">Help! My question isn't covered in the FAQs!</dt>
<dd>Please email us at <a href="mailto:support@gluejar.com">support@gluejar.com</a>. We want to make sure everything on the site runs as smoothly as possible. Thanks for helping us do that.</dd>
</dl>
<h3> Campaigns</h3>
<h4> Buy-to-Unglue Campaigns</h4>
<dl>
<dt>What is Buy-to-Unglue?</dt>
<dd>Buy-to-Unglue is a program that uses sales revenue to push books into the public commons. Every book that gets purchased through Unglue.it brings the ungluing date closer to the present.</dd>
<dt>What is an Ungluing Date?</dt>
<dd>The ungluing date is the date a book gets released under a Creative Commons License. After the ungluing date, the ebook will be available for free at unglue.it, Internet Archive and any library, anywhere.</dd>
<dt>How does that work?</dt>
<dd>The rights holder for the book picks <ol>
<li>an initial ungluing date some time in the future, and </li>
<li>a revenue goal</li>
</ol> When an ebook license is purchased, the ungluing date is recalculated according to these formulae:<pre>
(days per dollar) = [(initial ungluing date) - (campaign launch date)] / (campaign goal)
(current ungluing date) = (initial ungluing date) - (gross revenue)*(days per dollar)
</pre>
Here's a calculator you can use to see how this works:
<div class="std_form">
<div class=" work_campaigns">
<form action="#calculator" method="POST" style="margin:5px" id="calculator">
{% csrf_token %}
<p>Starting with an Initial Ungluing Date of
{{ form.cc_date_initial.errors }}{{ form.cc_date_initial }}</p>
<p>and a revenue goal of
{{ form.target.errors }}${{ form.target }},</p>
{% if form.instance.dollar_per_day %}
<p>When the Book has earned
${{ form.revenue.errors }}{{ form.revenue }}, the new Ungluing Date will be <span class="call-to-action">{{ form.instance.cc_date }}</span> and every additional <span class="call-to-action">${{ form.instance.dollar_per_day|floatformat:2|intcomma }}</span> received will advance the Ungluing Date by one day.</p>
<p><input type="submit" value="Calculate" /> another Ungluing Date</p>
{% else %}
<p>when the Book has earned ...<br />
${{ form.revenue.errors }}{{ form.revenue }}
<input type="submit" value="Calculate" /> a new Ungluing Date</p>
{% endif %}
</dd>
<dt>How do I tell what a book's ungluing date is?</dt>
<dd>The ungluing date is displayed on the campaign page for every Buy-to-Unglue book, and is printed inside every copy sold through Unglue.it on the license/copyright page. For ebooks sold anywhere else, you'll need to wait for the author(s) to die, and many decades after that, for the copyright to expire.</dd>
</dl>
</form>
</div>
</div>
{% endblock %}

View File

@ -6,13 +6,14 @@
</head>
<body>
<div class="booksection">
<p>
This copyrighted work was licensed to you, {{ acq.user.username }}, on {{ acq.created }} through https://unglue.it for your personal use only. It may not be transferred to third parties without the express written permission of the rights holder. This license has been embedded into the digital file, along with your identity, that of the licensor, and terms of the license. You can use this file to prove your license status. It may be unlawful for you to remove the embedded license. Unauthorized distribution of this work is not permitted and may have serious legal consequences including the revocation of your license.
<p class="copyk">
RESTRICTED NON-TRANSFERABLE DIGITAL LICENSE FOR PERSONAL USE ONLY: This copyrighted work is licensed to you, {{ acq.user.username }}, on {{ acq.created }} through https://unglue.it under an individual, restricted, non-transferrable license for your personal use only. You are not authorized to copy, transfer, distribute, display or otherwise transmit this work to third parties without the express written permission of the copyright holder. The license has been embedded into the digital file, along with your identity, that of the licensor, and the details of the restricted terms of this license. You can use this file to prove your license status. This embedded license must not be altered, removed or tampered with for any reason and any effort to do so will result in the immediate revocation of this license. Unauthorized distribution of this work is a copyright violation and may be enforced by the rights holder accordingly to the fullest extent available under the law.
</p>
<p>&#x00A0;</p>
<p class="copyk">Notwithstanding the above, after {{ acq.work.last_campaign.cc_date }}, this book is licensed under a {{ acq.work.last_campaign.license }} license. Details are available at <a href="{{ acq.work.last_campaign.license_url }}">{{ acq.work.last_campaign.license_url }}</a></p>
<p class="copyk">After {{ acq.work.last_campaign.cc_date }}, this book shall be released under a {{ acq.work.last_campaign.license }} license at which time the above restricted license terms shall be replaced and superseded by the terms of the applicable Creative Commons license <a href="{{ acq.work.last_campaign.license_url }}">{{ acq.work.last_campaign.license_url }}</a></p>
<p class="copy"></p>
</div>
</body>
</html>
</html>

View File

@ -1,5 +1,8 @@
{% extends "basedocumentation.html" %}
{% block title %} FAQ {% endblock %}
{% block topsection %}
{% endblock %}
{% block doccontent %}
<h2>Frequently Asked Questions</h2>
@ -19,10 +22,10 @@
<dt>What are Ungluing Campaigns?</dt>
<dd>There are two types of Ungluing Campaigns, pledge campaigns and sales campaigns.
<dd>There are two types of Ungluing Campaigns, Pledge Campaigns and Buy-to-Unglue Campaigns.
<ul>
<li> In a <i>pledge campaign</i>, book lovers pledge their support for ungluing a book. If enough support is found to reach the goal (and only then), the supporter's credit cards are charged, and an unglued ebook is released.</li>
<li> In a <i>sales campaign</i>, every ebook copy sold moves the book's ungluing date closer to the present. And you can donate ebooks to your local library- that's something you can't do in the Kindle or Apple Stores!
<li> In a <i>Pledge Campaign</i>, book lovers pledge their support for ungluing a book. If enough support is found to reach the goal (and only then), the supporter's credit cards are charged, and an unglued ebook is released.</li>
<li> In a <i>Buy-to-Unglue Campaign</i>, every ebook copy sold moves the book's ungluing date closer to the present. And you can donate ebooks to your local library- that's something you can't do in the Kindle or Apple Stores!
</ul>
</dd>
@ -36,7 +39,7 @@ In other words, crowdfunding is working together to support something you love.
<dt>What does it cost?</dt>
<dd>Unglue.it is free to join. Many of the things you can do here -- discovering books, adding them them to your list, downloading unglued books, commenting, sharing -- are free too.
<br /><br /> If you choose to support a pledge campaign, you may pledge whatever amount you're comfortable with. Your credit card will only be charged if the campaign reaches its goal price.<br /><br /> If you choose to buy an unglue.it ebook, you can read it anywhere you like - there's no restrictive DRM.
<br /><br /> If you choose to support a Pledge Campaign, you may pledge whatever amount you're comfortable with. Your credit card will only be charged if the campaign reaches its goal price.<br /><br /> If you choose to buy an unglue.it ebook, you can read it anywhere you like - there's no restrictive DRM.
<br /><br />
If you hold the electronic rights to a book, starting campaigns is free, too. You only pay Unglue.it a fraction of your revenue. For the basics on campaigns, see the FAQ on <a href="/faq/campaigns/">Campaigns</a>; for more details, see the <a href="/faq/rightsholders/">FAQ for Rights Holders</a>.</dd>
@ -52,7 +55,7 @@ To fund a campaign, or buy an ebook, you'll need a valid credit card. To start
<dt>What do I get when I unglue a book?</dt>
<dd>You get a better ebook. Your unglued ebook has no restrictive DRM: you can put it on any device you want, in any format you want. You can read it on the network or off, with no one tracking your reading.<br /><br />
You may get premiums as part of a pledge campaign, depending on the amount you pledge. Each pledge campaign has its own set.</dd>
You may get premiums as part of a Pledge Campaign, depending on the amount you pledge. Each Pledge Campaign has its own set.</dd>
<dt>Does Unglue.it own the copyright of unglued books?</dt>
@ -200,31 +203,31 @@ If you want to find an interesting campaign and don't have a specific book in mi
<dd>Yes. In fact, campaign managers are encouraged to update their supporters about the progress of the campaign. Note that the campaign's deadline cannot be changed and its target may not be increased, though it may be lowered.</dd>
<dt>Can pledge campaigns be edited after funding is completed?</dt>
<dt>Can Pledge Campaigns be edited after funding is completed?</dt>
<dd>Yes. Again, while the deadline cannot be changed and the threshold cannot be increased, campaign managers are encouraged to add thank-you messages for supporters and update them on the progress of ebook conversion (if needed).</dd>
<dt>What is a pledge campaign page?</dt>
<dt>What is a Pledge Campaign page?</dt>
<dd>When a book has an active ungluing campaign, its book page turns into its pledge campaign page. This means that, in addition to the standard book page information, it also features rewards for different pledge tiers; a Support button; and information supplied by the campaign manager (typically the author or publisher) about the book and the campaign.</dd>
<dd>When a book has an active ungluing campaign, its book page turns into its Pledge Campaign page. This means that, in addition to the standard book page information, it also features rewards for different pledge tiers; a Support button; and information supplied by the campaign manager (typically the author or publisher) about the book and the campaign.</dd>
</dl>
{% endif %}
{% if sublocation == 'supporting' or sublocation == 'all' %}
<h4>Supporting Pledge Campaigns</h4>
<h4>Pledge Campaigns</h4>
<dl>
<dt>How do I pledge?</dt>
<dd>There's a Support button on all pledge campaign pages, or you can just click on the premium you'd like to receive. You'll be asked to select your premium and specify your pledge amount; choose how you'd like to be acknowledged, if your pledge is $25 or more; and enter your credit card information.</dd>
<dd>There's a Support button on all Pledge Campaign pages, or you can just click on the premium you'd like to receive. You'll be asked to select your premium and specify your pledge amount; choose how you'd like to be acknowledged, if your pledge is $25 or more; and enter your credit card information.</dd>
<dt>When will I be charged?</dt>
<dd>In most cases, your account will be charged by the end of the next business day after a pledge campaign succeeds. If a campaign doesn't succeed, you won't be charged.</dd>
<dd>In most cases, your account will be charged by the end of the next business day after a Pledge Campaign succeeds. If a campaign doesn't succeed, you won't be charged.</dd>
<dt>What if I want to change or cancel a pledge?</dt>
<dd>You can modify your pledge by going to the book's page and clicking on the "Modify Pledge" button. (The "Support" button you clicked on to make a pledge is replaced by the "Modify Pledge" button after you pledge.)</dd>
<dt>What happens to my pledge if a pledge campaign does not succeed?</dt>
<dt>What happens to my pledge if a Pledge Campaign does not succeed?</dt>
<dd>Your credit card will only be charged when campaigns succeed. If they do not, your pledge will expire and you will not be charged.</dd>
@ -241,7 +244,7 @@ If you want to find an interesting campaign and don't have a specific book in mi
<dd>Yes. Anonymous donors are included in the total count of supporters, but their names and links are not included in the acknowledgements.</dd>
<dt>If I have pledged to a suspended or withdrawn pledge campaign, what happens to my pledge?</dt>
<dt>If I have pledged to a suspended or withdrawn Pledge Campaign, what happens to my pledge?</dt>
<dd>Your pledge will time out according to its original time limit. If the campaign is resolved and reactivated before your pledge has timed out, your pledge will become active again. If the campaign is not reactivated before your pledge's time limit, your pledge will expire and you will not be charged. As always, you will only be charged if a campaign is successful, within its original time limit.</dd>
@ -255,11 +258,11 @@ If you want to find an interesting campaign and don't have a specific book in mi
<dl>
<dt>What are premiums?</dt>
<dd>Premiums are bonuses people get for supporting a successful pledge campaign, to thank them and incentivize them to pledge. If you've ever gotten a tote bag from NPR, you know what we're talking about.</dd>
<dd>Premiums are bonuses people get for supporting a successful Pledge Campaign, to thank them and incentivize them to pledge. If you've ever gotten a tote bag from NPR, you know what we're talking about.</dd>
<dt>Are premiums required?</dt>
<dd>No, but they're strongly encouraged for pledge campaigns. They are not available for sales campaigns.</dd>
<dd>No, but they're strongly encouraged for Pledge Campaigns. They are not available for Buy-to-Unglue Campaigns.</dd>
<dt>Who creates the premiums for each campaign?</dt>
@ -310,7 +313,7 @@ What does this mean for you? If you're a book lover, you can read unglued ebook
<dl>
<dt>What can I do, legally, with an unglued ebook? What can I <I>not</I> do?</dt>
<dd>All unglued ebooks are released under a Creative Commons license. The rights holder chooses which Creative Commons license to apply. Books that we distribute in an sales campaign also have creative commons licenses, but the effective date of these licenses is set in the future.<br /><br />
<dd>All unglued ebooks are released under a Creative Commons license. The rights holder chooses which Creative Commons license to apply. Books that we distribute in a Buy-to-Unglue Campaign also have creative commons licenses, but the effective date of these licenses is set in the future.<br /><br />
Creative Commons licenses mean that once the license is effective you <b>can</b>: make copies; keep them for as long as you like; shift them to other formats (like .mobi or PDF); share them with friends or on the internet; download them for free.<br /><br />
@ -332,7 +335,7 @@ Unglue.it can't provide legal advice about how to interpret Creative Commons lic
<dt>Do I need to have a library card to read an unglued ebook?</dt>
<dd>No. (Though we hope you have a library card anyway!) <br /><br />If your library has bought an ebook as part of an ungluing sales campaign, you may need your library card if you want to borrow them. </dd>
<dd>No. (Though we hope you have a library card anyway!) <br /><br />If your library has bought an ebook as part of a Buy-to-Unglue Campaign, you may need your library card if you want to borrow them. </dd>
<dt>How long do I have to read my unglued book? When does it expire?</dt>
@ -421,7 +424,7 @@ Where do you think your key supporters will come from? -- a community of fans yo
We strongly encourage you to include video. You can upload it to YouTube and embed it here. We also strongly encourage links to help readers explore further -- authors' home pages, organizations which endorse the book, positive reviews, et cetera. Think about blurbs and awards which showcase your book. But don't just write a catalog entry or a laundry list: be relatable, and be concise.</dd>
<dt>What should I offer as premiums for a pledge campaign?</dt>
<dt>What should I offer as premiums for a Pledge Campaign?</dt>
<dd>Anything you think will get ungluers excited about supporting your work. Think about things that uniquely represent yourself or the work, that are appealing, and that you can deliver quickly and within your budget. For example, authors could consider offering Skype sessions as premiums for libraries or schools that might want to plan an event around the unglued book. And, of course, physical or digital editions of your other books are always popular.</dd>
@ -485,7 +488,7 @@ Need more ideas? We're happy to work with rights holders personally to craft a
<dl>
<dt>I am a copyright holder. Do I need to already have a digital file for a book I want to unglue?</dt>
<dd>For sales campaign, yes, you'll need to upload an ebub file for each book. For pledge campaigns, no, you may run campaigns for books that exist only in print copies or are out of print. Any print book can be scanned to create a digital file that can then become an ePub-format unglued ebook.</dd>
<dd>For a Buy-to-Unglue Campaign, yes, you'll need to upload an epub file for each book. For Pledge Campaigns, no, you may run campaigns for books that exist only in print copies or are out of print. Any print book can be scanned to create a digital file that can then become an ePub-format unglued ebook.</dd>
<dt>Will Unglue.it scan the books and produce ePub files?</dt>
@ -493,19 +496,19 @@ Need more ideas? We're happy to work with rights holders personally to craft a
<dt>Will Unglue.it raise money to help pay for conversion costs?</dt>
<dd>A pledge campaign target should include conversion costs. For a sales campaign, you'll need to have pre-existing epub files.</dd>
<dd>A Pledge Campaign target should include conversion costs. For a Buy-to-Unglue Campaign, you'll need to have pre-existing epub files.</dd>
</dl>
{% endif %}
{% if sublocation == 'funding' or sublocation == 'all' %}
<h4>Funding</h4>
<dl>
<dt>What parameters are required for a campaign. </dt>
<dd>For a pledge campaign, you'll need to set funding goal and deadline. For a Sales campaign, you'll need a revenue goal and an initial effective date for the Creative Commons Licence. You'll also need to set prices for each type of license you plan to offer.</dd>
<dd>For a Pledge Campaign, you'll need to set funding goal and deadline. For a Buy-to-Unglue Campaign, you'll need a revenue goal and an initial effective date for the Creative Commons Licence. You'll also need to set prices for each type of license you plan to offer.</dd>
<dt>Can I change my funding/revenue goal?</dt>
<dd>While a campaign is in progress you may lower, but not raise, your funding or revenue goal.</dd>
<dt>Can I change my deadline in a pledge campaign?</dt>
<dt>Can I change my deadline in a Pledge Campaign?</dt>
<dd>No.</dd>
<dt>Can I change the price for an ebook I'm offering for purchase?</dt>
@ -537,33 +540,33 @@ Need more ideas? We're happy to work with rights holders personally to craft a
<dt>When and how will I be paid?</dt>
<dd><ul><li>For <i>pledge campaigns</i>: After we reach the threshold price Unglue.it will issue you a closing memo, which will cover your gross and net proceeds. Unglue.it will hold the proceeds until you deliver an ePub file meeting Unglue.it's quality standards, at which point Unglue.it will send you a check. If Unglue.it does not receive a suitable ePub file within 90 days, we will deduct conversion costs from your funds and release the rest to you.</li>
<li>For <i>sales campaigns</i>: We make payments every month to rights holders who have accrued more than $100 in earnings, and every quarter, no matter the earnings amount. If for some reason we are not able to set you up with ACH transfers, we will only send payments once you have $100 in earnings. 70% of earnings accrue immediately; the rest accrues after 90 days.</li></ul></dd>
<dd><ul><li>For <i>Pledge Campaigns</i>: After we reach the threshold price Unglue.it will issue you a closing memo, which will cover your gross and net proceeds. Unglue.it will hold the proceeds until you deliver an ePub file meeting Unglue.it's quality standards, at which point Unglue.it will send you a check. If Unglue.it does not receive a suitable ePub file within 90 days, we will deduct conversion costs from your funds and release the rest to you.</li>
<li>For <i>Buy-to-Unglue Campaigns</i>: We make payments quarterly to rights holders who have accrued more than $100 in earnings. If we are able to set you up with ACH transfers, we will send payments more frequently. 70% of earnings accrue immediately; the rest accrues after 90 days.</li></ul></dd>
<dt>What happens if my campaign reaches its funding goal before its deadline? Can campaigns raise more money than their goal?</dt>
<dd>Campaigns are scheduled to close at midnight Eastern (US) time of the day when they hit their funding threshold. They may continue to accrue pledges/sales up to that time, including funding past their goal.</dd>
<dt>What happens if my pledge campaign doesn't reach its funding goal by its deadline?</dt>
<dt>What happens if my Pledge Campaign doesn't reach its funding goal by its deadline?</dt>
<dd>The campaign ends. Supporters' credit cards are not charged, so you are not paid, and not obligated to release an unglued ebook.<br /><br />
If you're concerned a campaign may not reach its goal you have several options. You can lower the target price to a level more likely to succeed. Or you are welcome to run a second campaign at a later time, perhaps with a different goal, duration, and publicity strategy. We'd be happy to consult with you about this.</dd>
<dt>What happens if my sales campaign doesn't reach its revenue goal by its termination?</dt>
<dt>What happens if my Buy-to-Unglue Campaign doesn't reach its revenue goal by its termination?</dt>
<dd>Every sale moves a books creative commons effective date towards the present, and the effective date achieved survives the termination of your sales campaign.</dd>
<dd>Every sale moves a books ungluing date towards the present, and the ungluing date achieved survives the termination of your Buy-to-Unglue Campaign.</dd>
<dt>Is there a minimum funding goal?</dt>
<dd>Yes, the minimum funding goal is $500.</dd>
<dt>What fees does Unglue.it charge in a pledge campaign?</dt>
<dt>What fees does Unglue.it charge in a Pledge Campaign?</dt>
<dd>When a campaign succeeds, Unglue.it will deduct a 6% commission (or $60, whichever is greater) on the funds raised. Our payment processor also charges a separate small fee on each transaction, plus (where relevant) currency conversion costs. If you do not have a suitable ePub version of your book available, you will also need to cover ebook conversion costs; please price this into your goal for a campaign. Details are spelled out in the Platform Services Agreement that rights holders must sign before launching an Unglue.it campaign.</dd>
<dt>What fees does Unglue.it charge in a sales campaign?</dt>
<dt>What fees does Unglue.it charge in a Buy-to-Unglue Campaign?</dt>
<dd>For sales campaigns, Unglue.it charges a flat 25% of of revenue from ebook licenses it provides through its site or through partner sites. That amount <i>includes</i> payment processor fees and any fees due to the partner sites.</dd>
<dd>For Buy-to-Unglue Campaigns, Unglue.it charges (1) a flat 25% of of revenue from ebook licenses it provides through its site or through partner sites and (2) a per-transaction charge of $0.25. These amounts <i>include</i> payment processor fees and any fees due to partner sites.</dd>
<dt>Does it cost money to start a campaign on Unglue.it?</dt>

View File

@ -27,14 +27,14 @@
<li class="last parent">
<span class="faq">What are the formats available?</span>
<span class="menu level2 answer">
You can use any format that's available for you purchased book- you don't have to select at time of purchase. The available formats are typically PDF, EPUB and MOBI.
You can use any format that's available for your purchased book- you don't have to select at time of purchase. The available formats are EPUB and MOBI, so you can read them on a Kindle, an iPad, a Nook, Kobo, iPhone, Mac, PC, Linux or Android device.
</span>
</li>
<li class="parent">
<span class="faq">Do eBooks I buy through unglue.it have DRM?</span>
<span class="menu level2 answer">
NO. However, each purchased book you download from unglue.it is personalized with your unglue.it username and your personal license certificate. You must not make copies of personal ebooks for your friends; if you do so so your license may be revoked and the rightsholders may get mad at you. To share ebooks, you can purchase Unglue.it library licenses!
NO. However, each purchased book you download from unglue.it is personalized with your unglue.it username and your personal license certificate. You should not make copies of personal ebooks for your friends; if you do so, your license may be revoked and the rightsholders may get mad at you. To share ebooks, you can purchase Unglue.it library licenses!
</span>
</li>

View File

@ -20,8 +20,9 @@
<a href="{% url faq_location 'campaigns' %}"><span>Campaigns</span></a>
<ul class="menu level2">
<li class="first"><a href="{% url faq_sublocation 'campaigns' 'overview' %}"><span>Overview</span></a></li>
<li><a href="{% url faq_sublocation 'campaigns' 'supporting' %}"><span>Supporting Campaigns</span></a></li>
<li class="last"><a href="{% url faq_sublocation 'campaigns' 'premiums' %}"><span>Premiums</span></a></li>
<li><a href="{% url faq_sublocation 'campaigns' 'supporting' %}"><span>Pledge Campaigns</span></a></li>
<li><a href="{% url faq_sublocation 'campaigns' 'premiums' %}"><span>Premiums</span></a></li>
<li class="last"><a href="{% url ccdate %}"><span>Buy-to-Unglue Campaigns</span></a></li>
</ul>
</li>

View File

@ -150,18 +150,6 @@ $j(document).ready(function() {
<label>Name:</label>
<input id="card_Name" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>Address Line 1:</label>
<input id="card_AddressLine1" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>Address Line 2:</label>
<input id="card_AddressLine2" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>City:</label>
<input id="card_AddressCity" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>State/Province :</label>
<input id="card_AddressState" type="text" class="address" />

View File

@ -159,17 +159,18 @@ function put_un_in_cookie2(){
{% comment %}
events are tuples of date, object, and string representing object type
{% endcomment %}
<li>
{% with event.1 as object %}
{% ifequal event.2 "pledge" %}
<li>
{% with event.1 as object %}
{% ifequal event.2 "pledge" %}
<span class="user-avatar">
<a href="{% url supporter object.user.username %}"><img src="{{ object.user.profile.avatar_url }}" width="43" height="43" title="{{ object.user.username }}" alt="Avatar for {{ object.user.username }}" /></a>
</span>
<span class="user-book-info">
<a href="{% url supporter object.user.username %}">{{ object.user.username }}</a><br />
{% ifequal object.type 2 %}
{% ifequal object.campaign.type 1 %}
pledged to unglue
{% else %}
{% endifequal %}
{% ifequal object.campaign.type 2 %}
bought a copy of
{% endifequal %}<br />
<a class="user-book-name" href="{% url work object.campaign.work.id %}">{{ object.campaign.work.title }}</a>

View File

@ -71,18 +71,6 @@ $j(document).ready(function(){
<label>Name:</label>
<input id="card_Name" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>Address Line 1:</label>
<input id="card_AddressLine1" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>Address Line 2:</label>
<input id="card_AddressLine2" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>City:</label>
<input id="card_AddressCity" type="text" class="address" />
</div>
<div class="form-row clearfix">
<label>State/Province :</label>
<input id="card_AddressState" type="text" class="address" />

View File

@ -179,10 +179,10 @@ Please fix the following before launching your campaign:
{{ form.target.errors }}${{ form.target }}
<h3>Initial CC Date</h3>
<h3>Initial Ungluing Date</h3>
<p>When you launch a Buy-To-Unglue campaign, you will specify a date in the future at which your book will become Creative Commons Licensed. eBooks sold via unglue.it will include a notice of this license. With every sale, the effective date of this license will advance a bit toward the present. </p>
<p>Before launching a campaign, you'll need to select Your initial CC Date. Together with your campaign revenue target, this will define when your book becomes "unglued". Your starting CC Date must be before {{ form.max_cc_date }}</p>
<p>Before launching a campaign, you'll need to select Your initial Ungluing Date. Together with your campaign revenue target, this will define when your book becomes "unglued". Your starting Ungluing Date must be before {{ form.max_cc_date }}</p>
{{ form.cc_date_initial.errors }}{{ form.cc_date_initial }}
<!--{{ form.deadline.errors }}-->{{ form.deadline }}
{% endifequal %}
@ -201,12 +201,12 @@ Please fix the following before launching your campaign:
<p>The ending date of your campaign is <b>{{ campaign.deadline }}</b>. Your campaign will conclude on this date or when you meet your target price, whichever is earlier. You may not change the ending date of an active campaign.</p>
{{ form.deadline.errors }}<span style="display: none">{{ form.deadline }}</span>
{% else %}
<h3>CC Date</h3>
<p> This campaign was launched with a CC Date of {{ campaign.cc_date_initial }}.</p>
<p> Based on a total revenue of {{ campaign.current_total }} the CC Date has been advanced to {{ campaign.cc_date }}.</p>
<h3>Ungluing Date</h3>
<p> This campaign was launched with a Ungluing Date of {{ campaign.cc_date_initial }}.</p>
<p> Based on a total revenue of {{ campaign.current_total }} the Ungluing Date has been advanced to {{ campaign.cc_date }}.</p>
{{ form.cc_date_initial.errors }}{{ form.cc_date_initial }}
<h3>Ending date</h3>
<p>Your sales campaign will run until <b>{{ campaign.deadline }}</b>. Contact unglue.it staff to extend it.</p>
<p>Your Buy-to-Unglue Campaign will run until <b>{{ campaign.deadline }}</b>. Contact unglue.it staff to extend it.</p>
<!--{{ form.deadline.errors }}-->{{ form.deadline }}
{% endifequal %}
{% endifnotequal %}

View File

@ -54,7 +54,7 @@ Any questions not covered here? Please email us at <a href="mailto:rights@gluej
{% ifequal campaign.type 1 %}
${{ campaign.current_total }} pledged of ${{ campaign.target }}, {{ campaign.supporters_count }} supporters
{% else %}
${{ campaign.current_total }} sold. ${{ campaign.target }} to go. CC Date: {{ campaign.cc_date }}
${{ campaign.current_total }} sold. ${{ campaign.target }} to go. Ungluing Date: {{ campaign.cc_date }}
{% endifequal %}
</div>
{% if campaign.status = 'ACTIVE' or campaign.status = 'INITIALIZED' %}
@ -134,7 +134,7 @@ Any questions not covered here? Please email us at <a href="mailto:rights@gluej
{% ifequal campaign.type 1 %}
${{ campaign.current_total }} pledged of ${{ campaign.target }}, {{ campaign.supporters_count }} supporters
{% else %}
${{ campaign.current_total }} sold. ${{ campaign.target }} to go, CC Date: {{ campaign.cc_date }}
${{ campaign.current_total }} sold. ${{ campaign.target }} to go, Ungluing Date: {{ campaign.cc_date }}
{% endifequal %}
</div>
{% endif %}

View File

@ -79,11 +79,8 @@ $j().ready(function() {
cvc: $j('.card-cvc').val(),
exp_month: $j('.card-expiry-month').val(),
exp_year: $j('.card-expiry-year').val(),
address_line1: $j('#card_AddressLine1').val(),
address_line2: $j('#card_AddressLine2').val(),
address_state: $j('#card_AddressState').val(),
address_zip: $j('#card_AddressZip').val(),
address_city: $j('#card_AddressCity').val(),
address_country: $j('#card_AddressCountry').val(),
name: $j('#card_Name').val()
}, stripeResponseHandler);

View File

@ -11,9 +11,9 @@
{% endblock %}
{% block doccontent %}
<h2>Unglue.it Draft Terms of Use</h2>
<h2>Unglue.it Terms of Use</h2>
<p>Date of last revision: May 14, 2012</p>
<p>Date of last revision: October 2, 2013</p>
<a href="#acceptance">Acceptance of Terms</a><br />
<a href="#registration">Registration</a><br />
@ -21,7 +21,8 @@
<a href="#content">Content and License</a><br />
<a href="#thirdparty">Third Party Content</a><br />
<a href="#fundraising">Campaigns: Fund-Raising and Commerce</a><br />
<a href="#supporting">Supporting a Campaign</a><br />
<a href="#supporting">Supporting a Pledge Campaign</a><br />
<a href="#supportingb2u">Supporting a Buy-To-Unglue Campaign</a><br />
<a href="#rightsholders">Campaigns: Additional Terms for Rights Holders</a><br />
<a href="#termination">Termination</a><br />
<a href="#modification">Modification of Terms</a><br />
@ -37,7 +38,7 @@
<a id="acceptance"><h3>Acceptance of Terms</h3></a>
<p>Welcome to Unglue.it, the website and online service of Gluejar, Inc. (the “Company”, "Unglue.it" "we," or "us"). Unglue.it is a crowd funding platform that facilitates the distribution and licensing of copyrighted literary works. The holder(s) of rights to a copyrighted literary work (the “Rights Holder”) can use the Unglue.it Service to accept and collect contributions in exchange for the release of the work, in digital form, under a Creative Commons License. Persons who wish to contribute (“Supporters”) towards the Campaign Goal set by the Rights Holder can do so using Unglue.it. The mechanism by which Rights Holders collect Contributions from Supporters using the Service is known as an “Unglue.it Campaign.” </p>
<p>Welcome to Unglue.it, the website and online service of Gluejar, Inc. (the “Company”, "Unglue.it" "we," or "us"). Unglue.it is a crowd funding and revenue platform that facilitates the distribution and licensing of copyrighted literary works. The mechanism by which Rights Holders collect Contributions and license revenue from Ungluers using the Service is known as a “Campaign.” A Campaign is either a "Pledge Campaign" or a "Buy-to-Unglue Campaign". In a Pledge Campaign, the holder(s) of rights to a copyrighted literary work (the “Rights Holder”) can use the Unglue.it Service to accept and collect contributions in exchange for the release of the work, in digital form, under a Creative Commons License. In a Buy-to-Unglue Campaign, the Rights Holder can use the Unglue.it Service to sell licenses of the work in exchange for a specified advance of the date specified for release under the Creative Commons License.</p>
<p>This terms of use agreement (the "Agreement") governs the use of the Unglue.it website (the “Website”) and the service owned and operated by Gluejar (collectively with the Website, the “Service”) by all persons and/or entities who visit the Website and/or use the Service (“you”.) This Agreement also incorporates the Privacy Policy available at <a href="https://Unglue.it/privacy">Unglue.it/privacy</a>, and all other operating rules, policies and procedures that may be published from time to time on the Website by Company, each of which is incorporated by reference and each of which may be updated by Company from time to time. You accept Companys posting of any changes to this Agreement on the Website as sufficient notice of such change. In addition, some services offered through the Service may be subject to additional terms promulgated by Company from time to time, which may be posted on the Website or sent to you via email or otherwise; your use of such services is subject to those additional terms, which are incorporated into these Terms of Use by this reference. By using this site in any manner, you agree to be bound by this Agreement, whether or not you are a registered user of our Service.
@ -45,11 +46,11 @@
<a id="registration"><h3>Registration</h3></a>
<p>You do not have to register an account in order to visit Unglue.it. To access certain features of the Service, however, including wishlisting and pledging, you will need to register with Unglue.it. You shall not (i) select or use as a Username a name of another person with the intent to impersonate that person; (ii) use as a Username a name subject to any rights of a person other than you without appropriate authorization; or (iii) use as a Username a name that is otherwise offensive, vulgar or obscene. Company reserves the right to refuse registration of, or cancel a Username and domain in its sole discretion. You are solely responsible for activity that occurs on your account and shall be responsible for maintaining the confidentiality of your Company password. You shall never use another users account without such other users express permission. You will immediately notify Company in writing of any unauthorized use of your account, or other account related security breach of which you are aware.</p>
<p>You do not have to register an account in order to visit Unglue.it. To access certain features of the Service, however, including listing and pledging, you will need to register with Unglue.it. You shall not (i) select or use as a Username a name of another person with the intent to impersonate that person; (ii) use as a Username a name subject to any rights of a person other than you without appropriate authorization; or (iii) use as a Username a name that is otherwise offensive, vulgar or obscene. Company reserves the right to refuse registration of, or cancel a Username and domain in its sole discretion. You are solely responsible for activity that occurs on your account and shall be responsible for maintaining the confidentiality of your Company password. You shall never use another users account without such other users express permission. You will immediately notify Company in writing of any unauthorized use of your account, or other account related security breach of which you are aware.</p>
<a id="use"><h3>Use of the Service</h3></a>
<p>Except as allowed by a Platform Services Agreement for Rights Holders, the Service is provided only for your personal, non-commercial use. You are solely responsible for all of your activity in connection with the Service and for any consequences (whether or not intended) of your posting or uploading of any material on the Website.</p>
<p>Except as allowed by a Platform Services Agreement for Rights Holders, the Service is provided only for your personal, non-commercial use, and for use by libraries and similar non-profit entities. You are solely responsible for all of your activity in connection with the Service and for any consequences (whether or not intended) of your posting or uploading of any material on the Website.</p>
<p>By way of example, and not as a limitation, you shall not (and shall not permit any third party to) use the Service in order to:</p>
<ul class="terms">
@ -81,55 +82,63 @@
<a id="fundraising"><h3>Campaigns: Fund-Raising and Commerce</h3></a>
<p>Unglue.it is a venue for fund-raising and commerce. Unglue.it allows Rights Holders to list Campaigns and receive Contributions from Supporters. All funds are collected for Rights Holders by third party payment processors such as Amazon Payments or Paypal. </p>
<p>Unglue.it is a venue for fund-raising and commerce. Unglue.it allows Rights Holders to list Campaigns and receive Contributions and License Fees from Ungluers. All funds are collected for Rights Holders by third party payment processors such as Stripe. </p>
<p>Unglue.it shall not be liable for your interactions with any organizations and/or individuals found on or through the Service. This includes, but is not limited to, delivery of goods and services, and any other terms, conditions, warranties or representations associated with campaigns on Unglue.it. Unglue.it is not responsible for any damage or loss incurred as a result of any such dealings. All dealings are solely between you and such organizations and/or individuals. Unglue.it is under no obligation to become involved in disputes between Supporters and Rights Holders, or between site members and any third party. In the event of a dispute, you release Unglue.it, its officers, employees, agents and successors in rights from claims, damages and demands of every kind, known or unknown, suspected or unsuspected, disclosed or undisclosed, arising out of or in any way related to such disputes and our Service.</p>
<p>Unglue.it shall not be liable for your interactions with any organizations and/or individuals found on or through the Service. This includes, but is not limited to, delivery of goods and services, and any other terms, conditions, warranties or representations associated with campaigns on Unglue.it. Unglue.it is not responsible for any damage or loss incurred as a result of any such dealings. All dealings are solely between you and such organizations and/or individuals. Unglue.it is under no obligation to become involved in disputes between Ungluers and Rights Holders, or between site members and any third party. In the event of a dispute, you release Unglue.it, its officers, employees, agents and successors in rights from claims, damages and demands of every kind, known or unknown, suspected or unsuspected, disclosed or undisclosed, arising out of or in any way related to such disputes and our Service.</p>
<a id="supporting"><h3>Supporting a Campaign</h3></a>
<a id="supporting"><h3>Supporting a Pledge Campaign</h3></a>
<p>Becoming a member of Unglue.it is free of charge. However, Unglue.it may provide you the opportunity to make contributions or pledges (collectively, “Contributions”) to Campaigns listed on the Service. You may contribute to any active Campaign in any amount you choose, subject to limitation imposed by payment processors such as PayPal or Amazon Payments. You may contribute to as many Campaigns as you like. By making a pledge, you authorize Company to collect the amount pledged from your designated account without further notice or authorization once a Campaign Goal is reached, at which time a pledge becomes a contribution. </p>
<p>Becoming a registered user of Unglue.it is free of charge. However, Unglue.it may provide you the opportunity to make contributions or pledges (collectively, “Contributions”) to Pledge Campaigns listed on the Service. You may contribute to any active Pledge Campaign in any amount you choose, up to the specified maximum. You may contribute to as many Campaigns as you like. By making a pledge, you authorize Company to collect the amount pledged from your designated account without further notice or authorization once a Campaign Goal is reached, at which time a pledge becomes a contribution. </p>
<p>You are not required to contribute to any Campaign. You understand that making a Contribution to a Campaign does not give you any rights in or to that Campaign or its associated work(s), including without limitation any ownership, control, or distribution rights. You understand that the Rights Holder shall be free to collect other Contributions to the Campaign, enter into contracts with third parties in connection with the Campaign, and otherwise direct the Campaign in its sole discretion without any notice to you. You further understand that nothing in this Agreement or otherwise limits Company's right to enter into agreements or business relationships relating to Campaigns or to the literary works that are the subject of Campaigns (“Subject Works.”) Unglue.it does not guarantee that any Campaigns goal will be met. As part of a Campaign, Rights Holders may offer As part of a Campaign, Rights Holders may offer you thank-you gifts, perks, rewards or other signs of gratitude (“Premiums.”) Any Premiums offered to you are between you and the Rights Holder only, and Unglue.it does not guarantee that Rewards will be delivered or satisfactory to you. You understand that your pledge may be declined by Company, by the Payment Processor (defined below) or by the Rights Holder at their sole discretion. Unglue.it makes no representations whatsoever in connection with the use of any Contributions or the outcome of any Campaign.</p>
<p>You are not required to contribute to any Pledge Campaign. You understand that making a Contribution to a Pledge Campaign does not give you any rights in or to that Campaign or its associated work(s), including without limitation any ownership, control, or distribution rights. You understand that the Rights Holder shall be free to collect other Contributions to the Campaign, enter into contracts with third parties in connection with the Campaign, and otherwise direct the Campaign in its sole discretion without any notice to you. You further understand that nothing in this Agreement or otherwise limits Company's right to enter into agreements or business relationships relating to Campaigns or to the literary works that are the subject of Campaigns (“Subject Works.”) Unglue.it does not guarantee that any Pledge Campaigns goal will be met. As part of a Campaign, Rights Holders may offer you thank-you gifts, perks, rewards or other signs of gratitude (“Premiums.”) Any Premiums offered to you are between you and the Rights Holder only, and Unglue.it does not guarantee that Premiums will be delivered or satisfactory to you. You understand that your pledge may be declined by Company, by the Payment Processor (defined below) or by the Rights Holder at their sole discretion. Unglue.it makes no representations whatsoever in connection with the use of any Contributions or the outcome of any Campaign.</p>
<p>Once a Contribution is made, it is nonrefundable. In the event of a suspended or withdrawn campaign, pledges will be allowed to expire according to their original time limits. If a suspended campaign is resolved and reactivated within a pledges time limit, that pledge will remain active.</p>
<p>You acknowledge and agree that all your Contributions are between you, the Rights Holder, and the Processor only, and that Unglue.it is not responsible for Contribution transactions, including without limitation any personal or payment information you provide to the Processor.</p>
<p>You acknowledge and agree that all your Contributions are between you and the Rights Holder only, and that Unglue.it is not responsible for Contribution transactions, including without limitation any personal or payment information you provide to the Payment Processor.</p>
<p>Unglue.it is not a registered charity and Contributions are not charitable donations for tax purposes. Company makes no representations whatsoever regarding the tax deductibility of any Contribution. You are encouraged consult your tax advisor in connection with your Contribution.</p>
<p>You acknowledge and understand that the Company uses third party payment processing services, such as Paypal or Amazon Payments, to collect the Contributions from you and/or for the distribution of Contributions to the Rights Holder or otherwise pursuant to the terms of this Agreement (a “Payment Processor”) and that your Contribution may be subject to terms and conditions imposed on you by the Payment Processor. The Company reserves the right, in its sole discretion, to select Payment Processors for this purpose and/or to change the Payment Processor without notice to you. </p>
<p>You acknowledge and understand that the Company uses third party payment processing services, such as Stripe, to collect the Contributions from you and/or for the distribution of Contributions to the Rights Holder or otherwise pursuant to the terms of this Agreement (a “Payment Processor”) and that your Contribution may be subject to terms and conditions imposed on you by the Payment Processor. The Company reserves the right, in its sole discretion, to select Payment Processors for this purpose and/or to change the Payment Processor without notice to you. </p>
<p>You understand that funds pledged are not debited from your account until the Unglue.it Campaign to which the Supporter has contributed has concluded and the Campaign Goal has been met. You further appreciate that Rights Holders act in reliance on your pledge in determining whether their Campaign Goal has been met. You agree to maintain a sufficient balance in the account from which your contribution is to be paid to cover the full amount of the pledged Contribution at the conclusion of a successful Unglue.it Campaign.</p>
<p>You understand that funds pledged to a Pledge Campaign are not debited from your account until the Campaign to which the Ungluer has contributed has concluded and the Campaign Goal has been met. You further appreciate that Rights Holders act in reliance on your pledge in determining whether their Campaign Goal has been met. You agree to maintain a sufficient balance in the account from which your contribution is to be paid to cover the full amount of the pledged Contribution at the conclusion of a successful Campaign.</p>
<p>You understand that the Service is simply a platform for the conduct of Unglue.it Campaigns. When you make a pledge, and/or request a Premium using the Service or otherwise, the Rights Holder is solely responsible for delivery of any and all Premiums, goods and services, and any other terms, conditions, warranties or representations made to the Supporter in connection with an Unglue.it Campaign (“Fulfillment.”) You hereby release the Company and its officers, employees, agents, licensees and assignees from any and all loss, damage or other liability that may arise out of the Supporters participation in an Unglue.it Campaign based on insufficient Fulfillment or otherwise.</p>
<p>You understand that the Service is simply a platform for the conduct of Pledge Campaigns. When you make a pledge, and/or request a Premium using the Service or otherwise, the Rights Holder is solely responsible for delivery of any and all Premiums, goods and services, and any other terms, conditions, warranties or representations made to the Ungluer in connection with a Campaign (“Fulfillment.”) You hereby release the Company and its officers, employees, agents, licensees and assignees from any and all loss, damage or other liability that may arise out of the Ungluers participation in an Campaign based on insufficient Fulfillment or otherwise.</p>
<p>You understand and agree that delivery of a Premium, and/or distribution of a Creative Commons licensed work, may not occur until a period of time after the conclusion of a successful Unglue.it Campaign. Such a delay may occur, for example, when production or conversion of the Premium or digital work is not completed before the conclusion of the campaign.</p>
<p>You understand and agree that delivery of a Premium, and/or distribution of a Creative Commons licensed work, may not occur until a period of time after the conclusion of a successful Pledge Campaign. Such a delay may occur, for example, when production or conversion of the Premium or digital work is not completed before the conclusion of the campaign.</p>
<p>You authorize the Company to hold funds for up to ninety (90) days following the conclusion of an Unglue.it Campaign, pending proof of fulfillment by the Rights Holder.</p>
<p>You authorize the Company to hold funds for up to ninety (90) days following the conclusion of a Pledge Campaign, pending proof of fulfillment by the Rights Holder.</p>
<a id="supportingb2u"><h3>Supporting a Buy-To-Unglue Campaign</h3></a>
<p>You understand that you may purchase limited distribution licenses for works that are the subject of Buy-To-Unglue Campaigns. You further understand your obligation to obey the terms of the license embedded in each work so licensed. </p>
<p>You understand that fees for the licenses you purchase will be immediately charged to your account via a third party payment processor, and that you will be given an opportunity to download or access digital files containing the work.</p>
<p>You understand that if you purchase a Library License, the owner of the license must be a non-profit library or similar institution participating in Unglue.it. </p>
<p>The Unglue.it website may offer you the opportunity to designate a library that participates in Unglue.it. You understand that such opportunity is at the complete discretion of Unglue.it and the participating Library. You further agree to observe the rules and obligations which the library may set as a condition for accessing library-licensed works.</p>
<a id="rightsholders"><h3>Campaigns: Additional Terms for Rights Holders</h3></a>
<p>
The Company's mission is to make copyrighted literary works freely and readily available to all who wish to read them in digital form, while ensuring that authors, publishers and other copyright owners are compensated for their efforts and investment in creating and developing such works. </p>
<p>The Company invites and encourages Rights Holders to propose Works for Creative Commons licensing via Unglue.it Campaigns. Rights Holders have to apply to the Company to initiate campaigns and, upon acceptance, the Rights Holder must enter into a Platform Services Agreement with the Company prior to starting an Unglue.it Campaign.</p>
<p>The Company invites and encourages Rights Holders to propose Works for Creative Commons licensing via Campaigns. Rights Holders have to apply to the Company to initiate campaigns and, upon acceptance, the Rights Holder must enter into a Platform Services Agreement with the Company prior to starting a Campaign.</p>
<p>Rights Holders who have executed a Platform Services Agreement may claim works and may initiate and conduct Campaigns as described in the Rights Holder Tools page at <a href="https://unglue.it/rightsholders/">https://unglue.it/rightsholders/</a>.</p>
<p>There is no charge for Rights Holders to launch and fund a Campaign using the Service. However, the Company will withhold a “Sales Commission” of 6% of gross aggregate Contributions (or $60, whichever is greater) upon the completion of a successful Campaign. The Rights Holder is responsible for providing a Standard Ebook File at their own expense, as described in a Platform Services Agreement. </p>
<p>There is no charge for Rights Holders to launch a Campaign using the Service. However, the Company will withhold a “Sales Commission” as specified in the Platform Services Agreement. The Rights Holder is responsible for providing a Standard Ebook File at their own expense. </p>
<p>The Rights Holder hereby authorizes the Company to use the Service to display and market the Subject Work, to collect Contributions or cause Contributions to be collected from Supporters on behalf of the Rights Holder, and to retain, reserve and/or distribute the Contributions to the Rights Holder, to the Company, to Designated Vendors (as defined below) or otherwise pursuant to the terms of this Agreement. </p>
<p>The Rights Holder hereby authorizes the Company to use the Service to display and market the Subject Work, to collect Contributions and License Fees or cause them to be collected from Ungluers on behalf of the Rights Holder, and to retain, reserve and/or distribute the Contributions to the Rights Holder, to the Company, to Designated Vendors (as defined below) or otherwise pursuant to the terms of this Agreement. </p>
<p>The Rights Holder acknowledges and understands that the Company uses one or more third party payment processing services to collect Contributions and/or for the distribution of Contributions to the Rights Holder or otherwise pursuant to the terms of this Agreement (the “Payment Processor.”) The Company reserves the right, in its sole discretion, to select Payment Processors for this purpose and to change Payment Processors at any time, with or without notice to the Rights Holder. The Rights Holder hereby consents to any and all modifications of any of the terms and conditions of this Agreement as may be required or requested by the Payment Processor from time to time as a condition of continuing service to the Company or otherwise. The Rights Holder understands and agrees that the Company may hold funds for up to 90 days following the conclusion of an Unglue.it Campaign, pending proof of fulfillment by the Rights Holder, and that Payment Processors may withhold funds for various reasons according to their own terms of service.</p>
<p>The Rights Holder acknowledges and understands that the Company uses one or more third party payment processing services to collect Contributions and/or for the distribution of Contributions to the Rights Holder or otherwise pursuant to the terms of this Agreement (the “Payment Processor.”) The Company reserves the right, in its sole discretion, to select Payment Processors for this purpose and to change Payment Processors at any time, with or without notice to the Rights Holder. The Rights Holder hereby consents to any and all modifications of any of the terms and conditions of this Agreement as may be required or requested by the Payment Processor from time to time as a condition of continuing service to the Company or otherwise. The Rights Holder understands and agrees that the Company may hold funds for up to 90 days after collection, and that Payment Processors may withhold funds for various reasons according to their own terms of service.</p>
<p>Paypal is one of the Payment Processors that the Company may use from time to time as part of the Service. In order to launch a Campaign, Rights Holders must have a Paypal account and agree to Paypal's terms and conditions. </p>
<p>The duration of any single Unglue.it Campaign shall be determined by the Rights Holder, provided that no single Unglue.it Campaign shall be longer than one hundred eighty (180) days.</p>
<p>The duration of any single Pledge Campaign shall be determined by the Rights Holder, provided that no single Campaign shall be longer than one hundred eighty (180) days.</p>
<p>No Premium may be offered on the Website that constitutes an illegal, prohibited or restricted item in the United States. Items that are prohibited or restricted by the Company include, but are not limited to, alcoholic beverages, firearms, knives or other weapons, drugs, drug-like substances and paraphernalia, counterfeit currency and stamps, credit cards, electronic surveillance equipment, hazardous materials, medical devices, or any other item that is illegal. The Company reserves the right to remove Premium items from the Website in its sole discretion and without notice to the Rights Holder.</p>
<p>The Rights Holder shall not, whether as a Premium or otherwise, use the Service to offer any financial incentive to potential Supporters. The prohibition against financial incentives expressly includes, but is not limited to, a share of profits or ownership interest in any entity, interest payable on any Contributions, or any Premium that would require registration under the securities laws of any country or state, including but not limited to the state or federal securities laws and regulations of the United States.</p>
<p>The Rights Holder shall not, whether as a Premium or otherwise, use the Service to offer any financial incentive to potential Ungluers. The prohibition against financial incentives expressly includes, but is not limited to, a share of profits or ownership interest in any entity, interest payable on any Contributions, or any Premium that would require registration under the securities laws of any country or state, including but not limited to the state or federal securities laws and regulations of the United States.</p>
<p>The Standard Ebook File as referenced in the Platform Service Agreement shall meet the following set of criteria:</p>
<p>The Standard Ebook File shall meet the following set of criteria:</p>
<ul class="terms">
<li>Unless otherwise permitted in writing by Unglue.it, the file shall use the EPUB standard format format according to best practice at time of submission. Exceptions will be made for content requiring more page layout than available in prevailing EPUB implementations.</li>
<li>The file shall be compliant where ever reasonable with the QED inspection checklist specified at <a href="http://www.publishinginnovationawards.com/featured/qed">http://www.publishinginnovationawards.com/featured/qed </a> </li>
@ -137,31 +146,48 @@ The Company's mission is to make copyrighted literary works freely and readily a
<li>The file shall contain front matter which includes the following:
<ul class="terms">
<li>a list of ISBNs of other editions of the work</li>
<li> <i>For Pledge Camaigns only</i><ol>
<li>the Creative Commons license selected for the campaign, formatted in accordance with best practices at <a href="http://wiki.creativecommons.org/Marking/Creators">http://wiki.creativecommons.org/Marking/Creators</a>, and a statement that for the purposes of the license, "Non-Commercial" use shall include, but not be limited to, the distribution of the Work by a commercial entity without charge.</li>
<li>an acknowledgement of supporters of the work, formatted in accordance with the premium descriptions on the Campaign page.</li>
<li>an acknowledgement of Ungluers of the work, formatted in accordance with the premium descriptions on the Campaign page.</li>
<li>The Unglue.it logo</li>
<li>the text “CC edition release enabled by Unglue.it users” (including the hyperlink to the site)</li>
<li>The Rights Holder must offer the schedule of Standard Premiums as described at at ( <a href="https://unglue.it/rightsholders/">https://unglue.it/rightsholders/</a>) in effect at the time of launching an Unglue.it Campaign.</li>
</ul></li>
<li>The Rights Holder must offer the schedule of Standard Premiums as described at at ( <a href="https://unglue.it/rightsholders/">https://unglue.it/rightsholders/</a>) in effect at the time of launching a Pledge Campaign.</li>
</ol>
</li>
<li><i>For Buy-To-Unglue Campaigns</i>, the Unglue.it platform will embed a personalized licensed statement into front matter for each delivered file</li>
</ul>
<li>The cover graphic shall match any description given in the Campaign.</li>
<li>Any graphics which must be excluded from the released ebook shall be specified in the description given in the campaign.
</ul>
<p>To provide confirmation of Fulfillment and become eligible to receive Contributions made in a successful Campaign, the Rights Holder shall either make available to the Company a Standard Ebook File for the work, or the Rights Holder shall designate a third party vendor from a list of vendors approved by the Company (the “Designated Vendor”) to create the Converted eBook at a rate that has been established between the Designated Vendor and the Rights Holder (the “Conversion Cost.”) The Rights Holder shall provide the Company with written notice of the name and contact information for the Designated Vendor, the Conversion Cost, and any supporting documentation or other verification as may be reasonably requested by the Company.</p>
<p>To provide confirmation of Fulfillment and become eligible to receive Contributions made in a successful Pledge Campaign, the Rights Holder shall either make available to the Company a Standard Ebook File for the work, or the Rights Holder shall designate a third party vendor from a list of vendors approved by the Company (the “Designated Vendor”) to create the Converted eBook at a rate that has been established between the Designated Vendor and the Rights Holder (the “Conversion Cost.”) The Rights Holder shall provide the Company with written notice of the name and contact information for the Designated Vendor, the Conversion Cost, and any supporting documentation or other verification as may be reasonably requested by the Company.</p>
<p>In the event that the Company releases Supporter information to the Rights Holder, or invites Supporters to share such information with the Rights Holder, Rights Holders agree to treat such information in a manner consistent with the Companys <a href="https://unglue.it/privacy/">Privacy Policy</a>.</p>
<p>In the event that the Company releases Ungluer information to the Rights Holder, or invites Ungluers to share such information with the Rights Holder, Rights Holders agree to treat such information in a manner consistent with the Companys <a href="https://unglue.it/privacy/">Privacy Policy</a>.</p>
<p>Once an Unglue.it Campaign has been launched, neither the Subject Work nor any of the Premiums may be revoked or modified, except that either may be supplemented provided that the Digital License Fee is not increased. The Rights Holder understands that a pledge does not become a contribution, and that no pledged monies are collected from Supporters, until the Campaign Goal is reached. The Rights Holder further understands that any pledge may be declined or any contribution returned or recovered for any reason or for no reason at the sole discretion of the Company and/or the Payment Processor.</p>
<p>Once a Pledge Campaign has been launched, neither the Subject Work nor any of the Premiums may be revoked or modified, except that either may be supplemented provided that the Campaign Goal is not increased. The Rights Holder understands that a pledge does not become a contribution, and that no pledged monies are collected from Ungluers, until the Campaign Goal is reached. The Rights Holder further understands that any pledge may be declined or any contribution returned or recovered for any reason or for no reason at the sole discretion of the Company and/or the Payment Processor.</p>
<p>Contributions shall not be collected by the Company from Supporters until the Campaign is successfully completed and the Campaign Goal met or exceeded. In the event that any of the promised Contributions cannot be collected by the Company or its Payment Processor after the date of the successful conclusion of the Campaign, the Rights Holder understands that neither the Company nor the Payment Processor shall have any obligation whatsoever in connection with the collection of such monies. The Rights Holder understands and knowingly accepts the risk that the actual Contributions collected or capable of collection may be less than the total Contributions promised by the Supporters individually or in the aggregate. The Rights Holder understands that it is obligated to release the Converted eBook and to ship the promised Premiums even if the actual Contributions collected are less than the Campaign Goal.</p>
<p>Contributions to a Pledge Campaign shall not be collected from Ungluers until the Campaign is successfully completed and the Campaign Goal met or exceeded. In the event that any of the promised Contributions cannot be collected by the Company or its Payment Processor after the date of the successful conclusion of the Campaign, the Rights Holder understands that neither the Company nor the Payment Processor shall have any obligation whatsoever in connection with the collection of such monies. The Rights Holder understands and knowingly accepts the risk that the actual Contributions collected or capable of collection may be less than the total Contributions promised by the Ungluers individually or in the aggregate. The Rights Holder understands that it is obligated to release the Converted eBook and to ship the promised Premiums even if the actual Contributions collected are less than the Campaign Goal.</p>
<p>Immediately upon the date of the conclusion of a successful Unglue.it Campaign, the Rights Holder agrees to and hereby does grant to the Company the right (but not the obligation) to place the Subject Work in the Internet Archive [archive.org] or such other open digital libraries as the Company may select in its sole discretion, and to distribute the Subject Work on the Website, whether directly or indirectly, provided that the copyright notice and mark of the applicable CC License is at all times clearly displayed in association with the Subject Work.</p>
<p>A Buy-To-Unglue campaign is deemed successful on its Effective Ungluing Date. The Effective Ungluing Date is determined as follows:
<ol>
<li> Before the launch of a Buy-To-Unglue Campaign, the Rights Holder selects an "Initial Ungluing Date". Once the campaign is launched, the Initial Ungluing Date cannot be changed, and the Rights Holder Commits to the Release of the work on that date, even if no licensing revenue is earned. can't be changed. The Initial Ungluing Date be any date before January 1, 2100.</li>
<li>Before the launch of a Buy-To-Unglue Campaign, the Rights Holder selects a campaign goal. After Campaign launch , the goal can be lowered, but never raised.</li>
<li>After launch, the Effective Ungluing Date is determined by the following formulae:
<pre>
(days per dollar) = [(initial ungluing date) - (campaign launch date)] / (campaign goal)
(current ungluing date) = (initial ungluing date) - (gross revenue)*(days per dollar)
</pre></li></ol>
<p> The Rights Holder is responsible for setting the license fees for individual licenses and for library licenses. These fees can be increased or decreased during the course of the Campaign.</p>
<p>Immediately upon the date of the conclusion of a successful Campaign, the Rights Holder agrees to and hereby does grant to the Company the right (but not the obligation) to place the Subject Work in the Internet Archive [archive.org] or such other open digital libraries as the Company may select in its sole discretion, and to distribute the Subject Work at no charge on the Website, whether directly or indirectly, provided that the copyright notice and mark of the applicable CC License is at all times clearly displayed in association with the Subject Work.</p>
<p>Rights Holders are solely responsible for paying all fees and applicable taxes associated with their use of the Service. No Sales Commission will be refunded for any reason, even in the event that a Campaign is removed from the Website by the Company. </p>
<p>Rights Holders may initiate refunds at their own discretion. Unglue.it is not responsible for issuing refunds for funds that have been collected by Rights Holders.</p>
<p>No later than seven (7) days from the receipt by the Company of the Rights Holders Confirmation of Fulfillment or, where applicable, satisfactory Fulfillment Verification, the Company shall transfer into an approved account designated by the Rights Holder for this purpose, all monies actually received from the Supporters in connection with the Unglue.it Campaign for the Subject Work (the “Contributions”), minus the following:</p>
<p>No later than seven (7) days from the receipt by the Company of the Rights Holders Confirmation of Fulfillment or, where applicable, satisfactory Fulfillment Verification, the Company shall transfer into an approved account designated by the Rights Holder for this purpose, all monies actually received from the Ungluers in connection with the Pledge Campaign for the Subject Work (the “Contributions”), minus the following:</p>
<ol>
<li> any transaction fees deducted or otherwise charged to the Company by the Payment Processor;</li>
<li> any transaction fees deducted or other charges imposed by the Rights Holders respective banks, credit card companies or other financial institutions in connection with the Contributions;</li>
@ -170,7 +196,9 @@ The Company's mission is to make copyrighted literary works freely and readily a
<li> any Conversion Costs payable to any Designated Vendor. </li>
</ol>
<p>Though Unglue.it cannot be held liable for the actions of a Rights Holder, Rights Holders are nevertheless wholly responsible for fulfilling obligations both implied and stated in any Campaign listing they create. Unglue.it reserves the right to cancel a Campaign, refund any or all Contributions, and cancel any or all Supporters pledges at any time for any reason. Unglue.it reserves the right to cancel, interrupt, suspend, or remove a Campaign listing at any time for any reason.</p>
<p>For Buy-to-Unglue Campaigns, the Company shall pay the Rights Holder quarterly (or more frequently at the discretion of the Company) in arrears, payable on the fifteenth day of the month following the close of each calendar quarter, such payment to cover the previous calendar quarter. For example, payments due in connection with transactions that occur January 1 through March 31 will be paid to the Rights Holder on April 15 of the same year. Each payment shall be accompanied by a statement detailing sales and licensing data, revenues received, return data, reserve and Distribution Fees withheld. Notwithstanding the above, quarterly payments may be deferred until the following pay period in the event that the amount payable to the Rights Holder for any given pay period is less than $100.</p>
<p>Though Unglue.it cannot be held liable for the actions of a Rights Holder, Rights Holders are nevertheless wholly responsible for fulfilling obligations both implied and stated in any Campaign listing they create. Unglue.it reserves the right to cancel a Campaign, refund any or all Contributions, and cancel any or all Ungluers pledges at any time for any reason. Unglue.it reserves the right to cancel, interrupt, suspend, or remove a Campaign listing at any time for any reason.</p>
<p>Notwithstanding anything to the contrary set forth in or implied by this Agreement, all payment obligations undertaken by the Company in connection with any Campaign are expressly subject to the Platform Services Agreement entered into between the Rights Holder and the Company. </p>
@ -178,7 +206,7 @@ The Company's mission is to make copyrighted literary works freely and readily a
<a id="termination"><h3>Termination</h3></a>
<p>The Company may immediately terminate this Agreement in its sole discretion at any time. Upon termination, you agree that the Company may immediately de-activate your account and bar you from accessing any portions of the Service requiring an account. If you wish to terminate your account, you may do so by following the instructions on the Website. Any fees and Sales Commissions paid pursuant to this Agreement prior to termination are non-refundable. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.</p>
<p>The Company may immediately terminate this Agreement in its sole discretion at any time. Upon termination, you agree that the Company may immediately de-activate your account and bar you from accessing any portions of the Service requiring an account. If you wish to terminate your account, you may do so by following the instructions on the Website. Any fees and Sales Commissions paid pursuant to this Agreement prior to termination are non-refundable. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability. In particular, the Rights Holder must release of the Works pursuant to a CC License on or before the determined Ungluing Date, even if the Unglued Date occurs after the termination of this Agreement.</p>
<a id="modification"><h3>Modification of Terms</h3></a>

View File

@ -296,7 +296,7 @@
, has agreed to release <i>{{work.title}}</i> to the world as a Creative Commons licensed ebook (<a href="{{ work.last_campaign.license_url }}">{{ work.last_campaign.license }}</a>) if ungluers can join together to raise ${{ work.last_campaign.target|floatformat:0|intcomma }} by {{ work.last_campaign.deadline }}.
You can help!</p>
{% else %}
<h3 class="tabcontent-title">A sales campaign is running to unglue <i>{{work.title}}</i>!</h3>
<h3 class="tabcontent-title">A Buy-to-Unglue Campaign is running to unglue <i>{{work.title}}</i>!</h3>
<p>The rights holder, {% for claim in work.claim.all %}
{% if claim.status == 'active' %}
{{ claim.rights_holder.rights_holder_name }}

View File

@ -37,7 +37,8 @@ from regluit.frontend.views import (
send_to_kindle,
send_to_kindle_graceful,
MARCUngluifyView,
MARCConfigView
MARCConfigView,
CCDateView
)
urlpatterns = patterns(
@ -63,6 +64,7 @@ urlpatterns = patterns(
url(r"^rightsholders/claim/$", "claim", name="claim"),
url(r"^rh_admin/$", "rh_admin", name="rh_admin"),
url(r"^campaign_admin/$", "campaign_admin", name="campaign_admin"),
url(r"^faq/ccdate/$",CCDateView.as_view(), name="ccdate"),
url(r"^faq/$", FAQView.as_view(), {'location':'faq', 'sublocation':'all'}, name="faq"),
url(r"^faq/(?P<location>\w*)/$", FAQView.as_view(), {'sublocation':'all'}, name="faq_location"),
url(r"^faq/(?P<location>\w*)/(?P<sublocation>\w*)/$", FAQView.as_view(), name="faq_sublocation"),

View File

@ -111,7 +111,8 @@ from regluit.frontend.forms import (
PressForm,
KindleEmailForm,
MARCUngluifyForm,
MARCFormatForm
MARCFormatForm,
DateCalculatorForm
)
from regluit.payment import baseprocessor, stripelib
@ -232,6 +233,8 @@ def home(request, landing=False):
)[:10]
latest_pledges = Transaction.objects.filter(
anonymous=False
).exclude(
type=0 #incomplete
).only(
'date_created', 'user', 'campaign'
).order_by(
@ -580,7 +583,6 @@ def new_edition(request, work_id, edition_id, by=None):
'form': form, 'edition': edition,
})
def manage_campaign(request, id):
campaign = get_object_or_404(models.Campaign, id=id)
campaign.not_manager=False
@ -2087,6 +2089,25 @@ class FAQView(TemplateView):
sublocation = self.kwargs["sublocation"]
return {'location': location, 'sublocation': sublocation}
class CCDateView(FormView):
template_name = 'calculator.html'
form_class = DateCalculatorForm
def form_valid(self, form):
form.instance._current_total=form.cleaned_data['revenue']
form.instance.status='DEMO'
form.instance.update_left()
form.instance.set_dollar_per_day()
return self.render_to_response(self.get_context_data(form=form))
def get_initial(self):
return {'target':10000, 'cc_date_initial': date_today()+timedelta(days=1461),'revenue':0, 'type':BUY2UNGLUE, 'status':'DEMO'}
def get_context_data(self, **kwargs):
cd = super(CCDateView,self).get_context_data(**kwargs)
cd.update({'location': 'campaigns', 'sublocation': 'ccdate'})
return cd
class GoodreadsDisplayView(TemplateView):
template_name = "goodreads_display.html"
def get_context_data(self, **kwargs):

View File

@ -373,10 +373,11 @@ class EPUB(zipfile.ZipFile):
reference = ET.Element("reference", attrib={"title": href, "href": href, "type": reftype})
if position is None or position>len(self.opf[2]):
self.opf[2].append(itemref)
self.opf[3].append(reference)
if self.info["guide"]:
self.opf[3].append(reference)
else:
self.opf[2].insert(position, itemref)
if len(self.opf[3]) >= position+1:
if self.info["guide"] and len(self.opf[3]) >= position+1:
self.opf[3].insert(position, reference)
def writetodisk(self, filename):

View File

@ -17,6 +17,11 @@ class EpubTests(unittest.TestCase):
test_file_content = urllib2.urlopen('http://www.hxa.name/articles/content/EpubGuide-hxa7241.epub')
self.epub2file.write(test_file_content.read())
self.epub2file.seek(0)
# get an epub with no guide element
self.epub2file2 = NamedTemporaryFile(delete=False)
test_file_content2 = urllib2.urlopen('http://www.gutenberg.org/ebooks/2701.epub.noimages')
self.epub2file2.write(test_file_content2.read())
self.epub2file2.seek(0)
def test_instantiation(self):
@ -35,6 +40,15 @@ class EpubTests(unittest.TestCase):
epub.addpart(part, "testpart.xhtml", "application/xhtml+xml", 2)
self.assertEqual(len(epub.opf[2]),9) #spine items
def test_addpart_noguide(self):
epub2=EPUB(self.epub2file2,mode='a')
self.assertEqual(len(epub2.opf),3)
self.assertEqual(epub2.info['guide'],None)
num_spine_items = len(epub2.opf[2])
part = StringIO('<?xml version="1.0" encoding="utf-8" standalone="yes"?>')
epub2.addpart(part, "testpart.xhtml", "application/xhtml+xml", 2)
self.assertEqual(len(epub2.opf[2]), num_spine_items +1) #spine items
def test_addmetadata(self):
epub=EPUB(self.epub2file,mode='a')
epub.addmetadata('test', 'GOOD')

File diff suppressed because one or more lines are too long

View File

@ -283,4 +283,13 @@ div.pledge-container {
.yikes {
color: @alert;
font-weight: bold;
}
.std_form, .std_form input, .std_form select {
line-height: 30px;
font-size: 15px;
}
.call-to-action {
color: @call-to-action;
}