def edit_existing_user(user, dict):
    userinfo = user.getUserInfo()
    userinfo.screenName = dict['screenName']
    userinfo.website = dict['website']
    userinfo.about = dict['about']
    userinfo.realName = dict['realName']
    userinfo.receiveEmail_issue_comments = dict.has_key('receiveEmail_issue_comments')
    userinfo.receiveEmail_issue_work = dict.has_key('receiveEmail_issue_work')
    userinfo.receiveEmail_issue_offer = dict.has_key('receiveEmail_issue_offer')
    userinfo.receiveEmail_issue_payment = dict.has_key('receiveEmail_issue_payment')
    userinfo.receiveEmail_announcements = dict.has_key('receiveEmail_announcements')
    userinfo.brazilianPaypal = dict.has_key('brazilianPaypal')
    userinfo.hide_from_userlist = dict.has_key('hide_from_userlist')
    userinfo.preferred_language_code = dict['preferred_language_code']
    if(settings.BITCOIN_ENABLED):
        userinfo.bitcoin_receive_address = dict['bitcoin_receive_address']
    newEmail = dict['primaryEmail']
    newPaypalEmail = dict.get('paypalEmail')
    if(not newPaypalEmail):
        newPaypalEmail = newEmail
    changedPaypalEmail = newPaypalEmail != userinfo.paypalEmail
    primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail)
    paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail)
    if changedPaypalEmail:
        userinfo.paypal_verified = False
    userinfo.save()
    paypal_services.accepts_paypal_payments(user)
    return paypalActivation, primaryActivation
def edit_existing_user(user, dict):
    userinfo = user.getUserInfo()
    userinfo.screenName = dict['screenName']
    userinfo.website = dict['website']
    userinfo.about = dict['about']
    userinfo.realName = dict['realName']
    userinfo.receiveEmail_issue_comments = dict.has_key(
        'receiveEmail_issue_comments')
    userinfo.receiveEmail_issue_work = dict.has_key('receiveEmail_issue_work')
    userinfo.receiveEmail_issue_offer = dict.has_key(
        'receiveEmail_issue_offer')
    userinfo.receiveEmail_issue_payment = dict.has_key(
        'receiveEmail_issue_payment')
    userinfo.receiveEmail_announcements = dict.has_key(
        'receiveEmail_announcements')
    userinfo.brazilianPaypal = dict.has_key('brazilianPaypal')
    userinfo.hide_from_userlist = dict.has_key('hide_from_userlist')
    userinfo.preferred_language_code = dict['preferred_language_code']
    if (settings.BITCOIN_ENABLED):
        userinfo.bitcoin_receive_address = dict['bitcoin_receive_address']
    newEmail = dict['primaryEmail']
    newPaypalEmail = dict.get('paypalEmail')
    if (not newPaypalEmail):
        newPaypalEmail = newEmail
    changedPaypalEmail = newPaypalEmail != userinfo.paypalEmail
    primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail)
    paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail)
    if changedPaypalEmail:
        userinfo.paypal_verified = False
    userinfo.save()
    paypal_services.accepts_paypal_payments(user)
    return paypalActivation, primaryActivation
示例#3
0
def _need_to_verify_paypal_account(user, issue):
    paypal_verified = paypal_services.accepts_paypal_payments(user)
    if paypal_verified:
        return False
    for offer in issue.getOffers():
        if offer.currency == 'USD':
            return True
    return False
def _need_to_verify_paypal_account(user, issue):
    paypal_verified = paypal_services.accepts_paypal_payments(user)
    if paypal_verified:
        return False
    for offer in issue.getOffers():
        if offer.currency == 'USD':
            return True
    return False
示例#5
0
def edit_existing_user(user, dict):
    userinfo = user.getUserInfo()
    new_username = dict.get('username')
    if new_username and not is_valid_username(new_username):
        raise FSException(
            'Sorry, this username is invalid (usernames must not contain special characters).'
        )
    first_time = userinfo.date_last_updated == userinfo.date_created
    if first_time:
        new_username = dict['username']
        if new_username != user.username:
            change_username(user, new_username)
    now = timezone.now()
    userinfo.website = dict['website']
    userinfo.about = dict['about']
    userinfo.realName = dict['realName']
    userinfo.receiveEmail_issue_comments = dict.has_key(
        'receiveEmail_issue_comments')
    userinfo.receiveEmail_issue_work = dict.has_key('receiveEmail_issue_work')
    userinfo.receiveEmail_issue_offer = dict.has_key(
        'receiveEmail_issue_offer')
    userinfo.receiveEmail_issue_payment = dict.has_key(
        'receiveEmail_issue_payment')
    userinfo.receiveEmail_announcements = dict.has_key(
        'receiveEmail_announcements')
    userinfo.brazilianPaypal = dict.has_key('brazilianPaypal')
    userinfo.hide_from_userlist = dict.has_key('hide_from_userlist')
    userinfo.preferred_language_code = dict['preferred_language_code']
    userinfo.date_last_updated = now
    if settings.BITCOIN_ENABLED:
        btcaddr = dict['bitcoin_receive_address']
        if btcaddr and not bitcoin_validation.validate(btcaddr):
            raise FSException('Invalid Bitcoin Receive Address')
        userinfo.bitcoin_receive_address = btcaddr
    newEmail = dict['primaryEmail']
    newPaypalEmail = dict.get('paypalEmail')
    if not newPaypalEmail:
        newPaypalEmail = newEmail
    changedPaypalEmail = newPaypalEmail != userinfo.paypalEmail
    primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail)
    paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail)
    if changedPaypalEmail:
        userinfo.paypal_verified = False
    userinfo.save()
    paypal_services.accepts_paypal_payments(user)
    return paypalActivation, primaryActivation
def edit_existing_user(user, dict):
    userinfo = user.getUserInfo()
    new_username = dict.get('username')
    if new_username and not is_valid_username(new_username):
        raise FSException('Sorry, this username is invalid (usernames must not contain special characters).')
    first_time = userinfo.date_last_updated == userinfo.date_created
    if first_time:
        new_username = dict['username']
        if new_username != user.username:
            change_username(user, new_username)
    now = timezone.now()
    userinfo.website = dict['website']
    userinfo.about = dict['about']
    userinfo.realName = dict['realName']
    userinfo.receiveEmail_issue_comments = dict.has_key('receiveEmail_issue_comments')
    userinfo.receiveEmail_issue_work = dict.has_key('receiveEmail_issue_work')
    userinfo.receiveEmail_issue_offer = dict.has_key('receiveEmail_issue_offer')
    userinfo.receiveEmail_issue_payment = dict.has_key('receiveEmail_issue_payment')
    userinfo.receiveEmail_announcements = dict.has_key('receiveEmail_announcements')
    userinfo.brazilianPaypal = dict.has_key('brazilianPaypal')
    userinfo.hide_from_userlist = dict.has_key('hide_from_userlist')
    userinfo.preferred_language_code = dict['preferred_language_code']
    userinfo.date_last_updated = now
    if settings.BITCOIN_ENABLED:
        btcaddr = dict.get('bitcoin_receive_address')
        if btcaddr and not bitcoin_validation.validate(btcaddr):
            raise FSException('Invalid Bitcoin Receive Address')
        userinfo.bitcoin_receive_address = btcaddr
    newEmail = dict['primaryEmail']
    newPaypalEmail = dict.get('paypalEmail')
    if not newPaypalEmail:
        newPaypalEmail = newEmail
    changedPaypalEmail = newPaypalEmail != userinfo.paypalEmail
    primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail)
    paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail)
    if changedPaypalEmail:
        userinfo.paypal_verified = False
    userinfo.save()
    paypal_services.accepts_paypal_payments(user)
    return paypalActivation, primaryActivation
示例#7
0
def payOfferForm(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    is_brazilian = offer.sponsor.getUserInfo().brazilianPaypal

    solutions_accepting_payments = offer.issue.getSolutionsAcceptingPayments()
    if not solutions_accepting_payments:
        messages.error(
            request, 'No developers are accepting payments for this issue yet')
        return redirect(offer.issue.get_view_link())

    solutions_dict = []
    for solution in solutions_accepting_payments:
        programmer_userinfo = solution.programmer.getUserInfo()
        try:
            accepts_paypal = paypal_services.accepts_paypal_payments(
                solution.programmer)
        except BaseException as e:
            traceback.print_exc()
            messages.error(request, 'Error communicating with Paypal: %s' % e)
            mail_services.notify_admin(
                'Error determining if user accepts paypal',
                traceback.format_exc())
            return redirect(offer.issue.get_view_link())
        solutions_dict.append({
            'id':
            solution.id,
            'status':
            solution.status,
            'programmerUsername':
            solution.programmer.username,
            'acceptsPaypal':
            accepts_paypal,
            'acceptsBitcoin':
            True and programmer_userinfo.bitcoin_receive_address,
            'imglink':
            solution.programmer.gravatar_url_small()
        })
    currency_options = _currency_options(offer)
    return render_to_response(
        'core2/pay_offer_angular.html', {
            'offer': offer,
            'count': len(solutions_dict),
            'currency_options': currency_options,
            'currency_options_json': json.dumps(currency_options),
            'is_brazilian': is_brazilian,
            'solutions_json': json.dumps(solutions_dict)
        },
        context_instance=RequestContext(request))
def _payWithPaypalForm(request, offer):
    solutions_accepting_payments = offer.issue.getSolutionsAcceptingPayments()

    solutions_with_paypal = []
    solutions_without_paypal = []
    for solution in solutions_accepting_payments:
        try: 
            accepts_paypal = paypal_services.accepts_paypal_payments(solution.programmer)
        except BaseException as e:
            traceback.print_exc()
            messages.error(request, 'Error communicating with Paypal: %s' % e)
            mail_services.notify_admin('Error determining if user accepts paypal', traceback.format_exc())
            return redirect(offer.get_view_link())
        if accepts_paypal:
            solutions_with_paypal.append(solution)
        else:
            solutions_without_paypal.append(solution)

    if len(solutions_with_paypal) == 0:
        messages.error(request, "The programmer(s) who solved this issue do not have a verified Paypal account yet, so you cannot pay them at this time.\n"+
                                "Please leave a comment for them, asking them to update their profile page with an email of a verified Paypal account, then come back here again.")
        return redirect(offer.get_view_link())
    if len(solutions_without_paypal) > 0:
        names = ', '.join(map(lambda solution:solution.programmer.getUserInfo().screenName, solutions_without_paypal))
        messages.warning(request, "The following programmer(s) do not have a verified Paypal account yet: %s\n" % names+
                                  "Therefore, you won't be able to make a payment to them at this time.\n"+
                                  "If you want, you can leave a comment for them, asking them to update their profile page with an email of a verified Paypal account, then come back here again.")

    convert_rate = 1
    currency_symbol = "US$"
    alert_brazil = False
    if(offer.sponsor.getUserInfo().brazilianPaypal):
        convert_rate = paypal_services.usd_2_brl_convert_rate()
        currency_symbol = "R$"
        alert_brazil = True

    shared_price = convert_rate * float(offer.price) / len(solutions_with_paypal)
    shared_price = twoplaces(Decimal(str(shared_price)))

    return render_to_response('core/pay_offer.html',
        {'offer':offer,
         'solutions_accepting_payments' : solutions_with_paypal,
         'shared_price' : shared_price,
         'convert_rate' : convert_rate,
         'currency_symbol' : currency_symbol,
         'alert_brazil' : alert_brazil,
         },
        context_instance = RequestContext(request))
def payOfferForm(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    is_brazilian = offer.sponsor.getUserInfo().brazilianPaypal

    solutions_accepting_payments = offer.issue.getSolutionsAcceptingPayments()
    if not solutions_accepting_payments:
        messages.error(request, "No developers are accepting payments for this issue yet")
        return redirect(offer.issue.get_view_link())

    solutions_dict = []
    for solution in solutions_accepting_payments:
        programmer_userinfo = solution.programmer.getUserInfo()
        try:
            accepts_paypal = paypal_services.accepts_paypal_payments(solution.programmer)
        except BaseException as e:
            traceback.print_exc()
            messages.error(request, "Error communicating with Paypal: %s" % e)
            mail_services.notify_admin("Error determining if user accepts paypal", traceback.format_exc())
            return redirect(offer.issue.get_view_link())
        solutions_dict.append(
            {
                "id": solution.id,
                "status": solution.status,
                "programmerScreenName": programmer_userinfo.screenName,
                "acceptsPaypal": accepts_paypal,
                "acceptsBitcoin": True and programmer_userinfo.bitcoin_receive_address,
                "imglink": solution.programmer.gravatar_url_small(),
            }
        )
    currency_options = _currency_options(offer)
    return render_to_response(
        template_folder(request) + "pay_offer_angular.html",
        {
            "offer": offer,
            "count": len(solutions_dict),
            "currency_options": currency_options,
            "currency_options_json": json.dumps(currency_options),
            "is_brazilian": is_brazilian,
            "solutions_json": json.dumps(solutions_dict),
        },
        context_instance=RequestContext(request),
    )
def payOfferForm(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    is_brazilian = offer.sponsor.getUserInfo().brazilianPaypal

    solutions_accepting_payments = offer.issue.getSolutionsAcceptingPayments()
    if not solutions_accepting_payments:
        messages.error(request, 'No developers are accepting payments for this issue yet')
        return redirect(offer.get_view_link())

    solutions_dict = []
    for solution in solutions_accepting_payments:
        programmer_userinfo = solution.programmer.getUserInfo()
        try:
            accepts_paypal = paypal_services.accepts_paypal_payments(solution.programmer)
        except BaseException as e:
            traceback.print_exc()
            messages.error(request, 'Error communicating with Paypal: %s' % e)
            mail_services.notify_admin('Error determining if user accepts paypal', traceback.format_exc())
            return redirect(offer.get_view_link())
        solutions_dict.append({
            'id': solution.id,
            'status': solution.status,
            'programmerScreenName': programmer_userinfo.screenName,
            'acceptsPaypal': accepts_paypal,
            'acceptsBitcoin': True and programmer_userinfo.bitcoin_receive_address,
            'imglink': solution.programmer.gravatar_url_small()
        })
    currency_options = _currency_options(offer)
    return render_to_response(template_folder(request) + 'pay_offer_angular.html',
                              {
                                  'offer': offer,
                                  'count': len(solutions_dict),
                                  'currency_options': currency_options,
                                  'currency_options_json': json.dumps(currency_options),
                                  'is_brazilian': is_brazilian,
                                  'solutions_json': json.dumps(solutions_dict)
                              },
                              context_instance=RequestContext(request))
def _payWithPaypalForm(request, offer):
    solutions_accepting_payments = offer.issue.getSolutionsAcceptingPayments()

    solutions_with_paypal = []
    solutions_without_paypal = []
    for solution in solutions_accepting_payments:
        try:
            accepts_paypal = paypal_services.accepts_paypal_payments(
                solution.programmer)
        except BaseException as e:
            traceback.print_exc()
            messages.error(request, 'Error communicating with Paypal: %s' % e)
            mail_services.notify_admin(
                'Error determining if user accepts paypal',
                traceback.format_exc())
            return redirect(offer.get_view_link())
        if accepts_paypal:
            solutions_with_paypal.append(solution)
        else:
            solutions_without_paypal.append(solution)

    if len(solutions_with_paypal) == 0:
        messages.error(
            request,
            "The programmer(s) who solved this issue do not have a verified Paypal account yet, so you cannot pay them at this time.\n"
            +
            "Please leave a comment for them, asking them to update their profile page with an email of a verified Paypal account, then come back here again."
        )
        return redirect(offer.get_view_link())
    if len(solutions_without_paypal) > 0:
        names = ', '.join(
            map(lambda solution: solution.programmer.getUserInfo().screenName,
                solutions_without_paypal))
        messages.warning(
            request,
            "The following programmer(s) do not have a verified Paypal account yet: %s\n"
            % names +
            "Therefore, you won't be able to make a payment to them at this time.\n"
            +
            "If you want, you can leave a comment for them, asking them to update their profile page with an email of a verified Paypal account, then come back here again."
        )

    convert_rate = 1
    currency_symbol = "US$"
    alert_brazil = False
    if (offer.sponsor.getUserInfo().brazilianPaypal):
        convert_rate = paypal_services.usd_2_brl_convert_rate()
        currency_symbol = "R$"
        alert_brazil = True

    shared_price = convert_rate * float(
        offer.price) / len(solutions_with_paypal)
    shared_price = twoplaces(Decimal(str(shared_price)))

    return render_to_response('core/pay_offer.html', {
        'offer': offer,
        'solutions_accepting_payments': solutions_with_paypal,
        'shared_price': shared_price,
        'convert_rate': convert_rate,
        'currency_symbol': currency_symbol,
        'alert_brazil': alert_brazil,
    },
                              context_instance=RequestContext(request))