Merge branch 'master' into charge_failed
commit
6ab521faa1
|
@ -263,3 +263,30 @@ def handle_wishlist_added(supporter, work, **kwargs):
|
|||
emit_notifications.delay()
|
||||
|
||||
wishlist_added.connect(handle_wishlist_added)
|
||||
|
||||
deadline_impending = Signal(providing_args=["campaign"])
|
||||
|
||||
def handle_wishlist_near_deadline(campaign, **kwargs):
|
||||
"""
|
||||
send two groups - one the nonpledgers, one the pledgers
|
||||
set the pledged flag differently in the context
|
||||
"""
|
||||
pledgers = campaign.ungluers()['all']
|
||||
nonpledgers = campaign.work.wished_by().exclude(id__in=[p.id for p in pledgers])
|
||||
|
||||
notification.queue(pledgers, "wishlist_near_deadline", {
|
||||
'campaign': campaign,
|
||||
'domain': settings.BASE_URL,
|
||||
'pledged': True,
|
||||
}, True)
|
||||
|
||||
notification.queue(nonpledgers, "wishlist_near_deadline", {
|
||||
'campaign': campaign,
|
||||
'domain': settings.BASE_URL,
|
||||
'pledged': False,
|
||||
}, True)
|
||||
|
||||
from regluit.core.tasks import emit_notifications
|
||||
emit_notifications.delay()
|
||||
|
||||
deadline_impending.connect(handle_wishlist_near_deadline)
|
||||
|
|
|
@ -12,6 +12,7 @@ from django.conf import settings
|
|||
from regluit.core import bookloader, models
|
||||
from regluit.core import goodreads, librarything
|
||||
from regluit.core.models import Campaign
|
||||
from regluit.core.signals import deadline_impending
|
||||
from regluit.utils.localdatetime import now, date_today
|
||||
|
||||
from django.core.mail import send_mail
|
||||
|
@ -97,5 +98,16 @@ def report_new_ebooks(created=None): #created= creation date
|
|||
works = models.Work.objects.filter(editions__ebooks__created__range = period).distinct()
|
||||
for work in works:
|
||||
notification.send_now(work.wished_by(), "wishlist_unglued_book_released", {'work':work}, True)
|
||||
|
||||
@task
|
||||
def notify_ending_soon():
|
||||
c_active = Campaign.objects.filter(status='Active')
|
||||
for c in c_active:
|
||||
if c.deadline - now() < timedelta(7) and c.deadline - now() >= timedelta(6):
|
||||
"""
|
||||
if the campaign is still active and there's only a week left until it closes, send reminder notification
|
||||
"""
|
||||
deadline_impending.send(sender=None, campaign=c)
|
||||
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
{% load humanize %}{% if campaign.left > 0 %} The campaign to unglue a book you've wishlisted, {{ campaign.work.title}}, is almost out of time. We need to raise ${{ campaign.left|intcomma }} more by {{ campaign.deadline }} in order to give this book to the world.
|
||||
|
||||
{% if pledged %}
|
||||
Your pledge of {{ amount|intcomma }} is helping {{ campaign.work.title }} to reach its goal, but we can only unglue this book if the campaign succeeds. You can help your pledge go farther by sharing the campaign (https://{{ site.domain }}{% url work work_id=campaign.work.id %}) with your friends through your favorite media: tweet, Facebook, Tumblr, blog, G+, Pinterest, email, carrier pigeon, or good old-fashioned conversation.
|
||||
Your pledge is helping {{ campaign.work.title }} to reach its goal, but we can only unglue this book if the campaign succeeds. You can help your pledge go farther by sharing the campaign ({{ domain }}{% url work work_id=campaign.work.id %}) with your friends through your favorite media: tweet, Facebook, Tumblr, blog, G+, Pinterest, email, carrier pigeon, or good old-fashioned conversation.
|
||||
{% else %}
|
||||
We need your pledge to reach this target. Any amount helps. You can chip in towards giving this book to the world at https://{{ site.domain }}{% url pledge work_id=campaign.work.id %} .
|
||||
If you've been meaning to get around to pledging, now's your chance. Any amount helps. You can chip in towards giving this book to the world at {{ domain }}{% url pledge work_id=campaign.work.id %} .
|
||||
|
||||
You can also help by sharing the campaign (https://{{ site.domain }}{% url work work_id=campaign.work.id %}) with your friends through your favorite media: tweet, Facebook, Tumblr, blog, G+, Pinterest, email, carrier pigeon, or good old-fashioned conversation.
|
||||
You can also help by sharing the campaign ({{ domain }}{% url work work_id=campaign.work.id %}) with your friends through your favorite media: tweet, Facebook, Tumblr, blog, G+, Pinterest, email, carrier pigeon, or good old-fashioned conversation.
|
||||
{% endif %}
|
||||
|
||||
Thank you!
|
||||
|
@ -14,9 +14,9 @@
|
|||
The campaign to unglue a book you've wishlisted, {{ campaign.work.title}}, is on track to succeed! It has met its target price of {{ campaign.target|intcomma }} and will close soon.
|
||||
|
||||
{% if pledged %}
|
||||
Your pledge of ${{ amount|intcomma }} is helping us give this book to the world. Thank you! When the campaign closes, we'll be in touch about how and when you'll receive your premiums.
|
||||
Your pledge is helping us give this book to the world. Thank you! When the campaign closes, we'll be in touch about how and when you'll receive your premiums.
|
||||
{% else %}
|
||||
If you wanted to support this campaign, this is your last chance. Pledge by midnight (Eastern US time) if you want to help the campaign or receive any premiums: https://{{ site.domain }}{% url pledge work_id=campaign.work.id %}
|
||||
If you wanted to support this campaign, this is your last chance. Pledge by midnight (Eastern US time) if you want to help the campaign or receive any premiums: {{ domain }}{% url pledge work_id=campaign.work.id %}
|
||||
{% endif %}
|
||||
|
||||
Thanks to ungluers like you, we'll soon be able to give this book to the world together. Hooray!
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block comments_graphical %}
|
||||
The campaign for {{ campaign.work.title }} is almost over.
|
||||
The campaign to unglue {{ campaign.work.title }} is almost over.
|
||||
{% endblock %}
|
||||
|
||||
{% block comments_textual %}
|
||||
|
@ -13,8 +13,9 @@
|
|||
|
||||
{% if pledged %}
|
||||
Your pledge is helping us reach that goal. Will you help again by sharing this campaign with your friends?
|
||||
|
||||
{% else %}
|
||||
You can help us give this book to the world by <a href="{% url pledge work_id=campaign.work.id %}">pledging</a> or by sharing this campaign with your friends.
|
||||
If you've been meaning to pledge, <a href="{% url pledge work_id=campaign.work.id %}">now's your chance</a>. You can also help by sharing this campaign with your friends.
|
||||
{% endif %}
|
||||
|
||||
{% url work campaign.work.id as work_url %}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{{campaign.work.title}} is running out of time
|
||||
Almost out of time to unglue {{campaign.work.title}}
|
|
@ -278,6 +278,12 @@ EBOOK_NOTIFICATIONS_JOB = {
|
|||
"args": ()
|
||||
}
|
||||
|
||||
NOTIFY_ENDING_SOON_JOB = {
|
||||
"task": "regluit.core.tasks.notify_ending_soon",
|
||||
"schedule": crontab(hour=1, minute=0),
|
||||
"args": ()
|
||||
}
|
||||
|
||||
# by default, in common, we don't turn any of the celerybeat jobs on -- turn them on in the local settings file
|
||||
|
||||
# amazon or paypal for now.
|
||||
|
|
|
@ -138,6 +138,7 @@ CKEDITOR_UPLOAD_PATH = '/var/www/static/media/'
|
|||
# update the statuses of campaigns
|
||||
CELERYBEAT_SCHEDULE['update_active_campaign_statuses'] = UPDATE_ACTIVE_CAMPAIGN_STATUSES
|
||||
CELERYBEAT_SCHEDULE['report_new_ebooks'] = EBOOK_NOTIFICATIONS_JOB
|
||||
CELERYBEAT_SCHEDULE['notify_ending_soon'] = NOTIFY_ENDING_SOON_JOB
|
||||
|
||||
# set -- sandbox or production Amazon FPS?
|
||||
#AMAZON_FPS_HOST = "fps.sandbox.amazonaws.com"
|
||||
|
|
Loading…
Reference in New Issue