|
|
|
from logging import getLogger
|
|
|
|
from huey import crontab
|
|
|
|
from huey.contrib.djhuey import periodic_task
|
|
|
|
from django.conf import settings
|
|
|
|
from core.helpers.email_template import EmailTemplate
|
|
|
|
from items.models import Item
|
|
|
|
from items.tasks.common import get_items_past_days
|
|
|
|
|
|
|
|
|
|
|
|
logger = getLogger('django.server')
|
|
|
|
|
|
|
|
@periodic_task(crontab(minute='0', hour='0', day='*/2'))
|
|
|
|
def notify_seller_of_item_bids():
|
|
|
|
items = Item.objects.all()
|
|
|
|
for item in items:
|
|
|
|
if len(item.bids.all()) > 0:
|
|
|
|
logger.info(f'[INFO] Item #{item.id} has some bids. Notifying the seller.')
|
|
|
|
email_template = EmailTemplate(
|
|
|
|
item=item,
|
|
|
|
scenario='item_has_bids',
|
|
|
|
role='seller'
|
|
|
|
)
|
|
|
|
email_template.send()
|
|
|
|
|
|
|
|
@periodic_task(crontab(minute='0', hour='0', day='*/3'))
|
|
|
|
def notify_seller_of_stale_items():
|
|
|
|
stale_days = settings.ESCROW_PERIOD_DAYS - 7
|
|
|
|
items = get_items_past_days(stale_days)
|
|
|
|
for item in items:
|
|
|
|
logger.info(f'[INFO] Found stale item #{item.id} (older than {stale_days} days).')
|
|
|
|
if item.bids:
|
|
|
|
email_template = EmailTemplate(
|
|
|
|
item=item,
|
|
|
|
scenario='item_stale_with_bids',
|
|
|
|
role='seller'
|
|
|
|
)
|
|
|
|
email_template.send()
|