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
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 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
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))