Пример #1
0
def on_cannot_refund_email(sender, **kwargs):
  userfund = kwargs["userfund"]
  today = datetime.datetime.now().date()
  if userfund.remind_date: # user was reminded previously
    delay = 2 ** userfund.remind_count # exponential backoff avoid spamming
    next_remind_date = userfund.remind_date + datetime.timedelta(days=delay)
    if today < next_remind_date:
      return # to soon to remind user
  emails = [email.get_emailaddress_or_404(userfund.user)]
  subject = "userfund/email/cannot_refund_subject.txt"
  message = "userfund/email/cannot_refund_message.txt"
  email.send(emails, subject, message, kwargs)
  userfund.remind_count = userfund.remind_count + 1
  userfund.remind_date = today
  userfund.save()
Пример #2
0
def on_cannot_refund_email(sender, **kwargs):
    userfund = kwargs["userfund"]
    today = datetime.datetime.now().date()
    if userfund.remind_date:  # user was reminded previously
        delay = 2**userfund.remind_count  # exponential backoff avoid spamming
        next_remind_date = userfund.remind_date + datetime.timedelta(
            days=delay)
        if today < next_remind_date:
            return  # to soon to remind user
    emails = [email.get_emailaddress_or_404(userfund.user)]
    subject = "userfund/email/cannot_refund_subject.txt"
    message = "userfund/email/cannot_refund_message.txt"
    email.send(emails, subject, message, kwargs)
    userfund.remind_count = userfund.remind_count + 1
    userfund.remind_date = today
    userfund.save()
Пример #3
0
def dashboard(request):
  user = request.user
  ongoing = ['PENDING', 'ACTIVE', 'MEDIATION']
  archived = ['FINISHED', 'CANCELLED', 'DELETED']

  invested = UserFund.objects.filter(user=user)
  invested = invested.exclude(cashed_funds_received=Decimal("0.0"))
  filters = Q(created_by=user) | Q(userfunds__in=invested)
  bounties = set(Bounty.objects.filter(filters).order_by('-deadline')) # XXX set

  claims = user.claims.select_related("bounty").all().order_by('-created_on')
  args = { 
    "primary_email" : email.get_emailaddress_or_404(user),
    "bounties_ongoing" : filter(lambda b: b.state in ongoing, bounties), 
    "bounties_archived" : filter(lambda b: b.state in archived, bounties), 
    "claims_ongoing" : filter(lambda c: c.bounty.state in ongoing, claims), 
    "claims_archived" : filter(lambda c: c.bounty.state in archived, claims), 
  }
  return render_response(request, 'accounts/dashboard.html', args)
Пример #4
0
def dashboard(request):
    user = request.user
    ongoing = ['PENDING', 'ACTIVE', 'MEDIATION']
    archived = ['FINISHED', 'CANCELLED', 'DELETED']

    invested = UserFund.objects.filter(user=user)
    invested = invested.exclude(cashed_funds_received=Decimal("0.0"))
    filters = Q(created_by=user) | Q(userfunds__in=invested)
    bounties = set(
        Bounty.objects.filter(filters).order_by('-deadline'))  # XXX set

    claims = user.claims.select_related("bounty").all().order_by('-created_on')
    args = {
        "primary_email": email.get_emailaddress_or_404(user),
        "bounties_ongoing": filter(lambda b: b.state in ongoing, bounties),
        "bounties_archived": filter(lambda b: b.state in archived, bounties),
        "claims_ongoing": filter(lambda c: c.bounty.state in ongoing, claims),
        "claims_archived": filter(lambda c: c.bounty.state in archived,
                                  claims),
    }
    return render_response(request, 'accounts/dashboard.html', args)
Пример #5
0
def on_refunded_email(sender, **kwargs):
    emails = [email.get_emailaddress_or_404(kwargs["userfund"].user)]
    subject = "userfund/email/refunded_subject.txt"
    message = "userfund/email/refunded_message.txt"
    email.send(emails, subject, message, kwargs)
Пример #6
0
def on_payout_email(sender, **kwargs):
  emails = [email.get_emailaddress_or_404(kwargs["claim"].user)]
  subject = "claim/email/payout_subject.txt"
  message = "claim/email/payout_message.txt"
  email.send(emails, subject, message, kwargs)
Пример #7
0
def on_successful_email_winning_claimant(sender, **kwargs):
  emails = [email.get_emailaddress_or_404(kwargs["claim"].user)]
  subject = "claim/email/winning_claimant_subject.txt"
  message = "claim/email/winning_claimant_message.txt"
  email.send(emails, subject, message, kwargs)
Пример #8
0
def _investor_emails(claim):
  is_investor = lambda uf: uf.user == claim.bounty.created_by or uf.received
  userfunds = filter(is_investor, claim.bounty.userfunds.all())
  return map(lambda uf: email.get_emailaddress_or_404(uf.user), userfunds)
Пример #9
0
def on_refunded_email(sender, **kwargs):
  emails = [email.get_emailaddress_or_404(kwargs["userfund"].user)]
  subject = "userfund/email/refunded_subject.txt"
  message = "userfund/email/refunded_message.txt"
  email.send(emails, subject, message, kwargs)