NewsBlur/apps/profile/views.py

102 lines
3.3 KiB
Python
Raw Normal View History

from django.contrib.auth.decorators import login_required
from django.views.decorators.http import require_POST
2010-10-16 18:52:52 -04:00
from django.http import HttpResponse, HttpResponseRedirect
from django.core.urlresolvers import reverse
from utils import json
2010-10-16 18:52:52 -04:00
from paypal.standard.forms import PayPalPaymentsForm
from utils.user_functions import ajax_login_required
@login_required
@require_POST
@json.json_view
def set_preference(request):
code = 1
preference_name = request.POST['preference']
preference_value = request.POST['value']
preferences = json.decode(request.user.profile.preferences)
preferences[preference_name] = preference_value
request.user.profile.preferences = json.encode(preferences)
request.user.profile.save()
response = dict(code=code)
return response
@login_required
@json.json_view
def get_preference(request):
code = 1
preference_name = request.POST['preference']
preferences = json.decode(request.user.profile.preferences)
response = dict(code=code, payload=preferences.get(preference_name))
return response
@login_required
@require_POST
@json.json_view
def set_view_setting(request):
code = 1
feed_id = request.POST['feed_id']
feed_view_setting = request.POST['feed_view_setting']
view_settings = json.decode(request.user.profile.view_settings)
view_settings[feed_id] = feed_view_setting
request.user.profile.view_settings = json.encode(view_settings)
request.user.profile.save()
response = dict(code=code)
return response
@login_required
@json.json_view
def get_view_setting(request):
code = 1
feed_id = request.POST['feed_id']
view_settings = json.decode(request.user.profile.view_settings)
response = dict(code=code, payload=view_settings.get(feed_id))
return response
@login_required
@require_POST
@json.json_view
def set_collapsed_folders(request):
code = 1
collapsed_folders = request.POST['collapsed_folders']
request.user.profile.collapsed_folders = collapsed_folders
request.user.profile.save()
response = dict(code=code)
return response
2010-10-16 18:52:52 -04:00
@ajax_login_required
2010-10-16 18:52:52 -04:00
def paypal_form(request):
paypal_dict = {
"cmd": "_xclick-subscriptions",
2010-10-16 23:02:02 -04:00
# "business": "samuel@ofbrooklyn.com",
"business": "samuel_1287279745_biz@conesus.com",
2010-10-16 18:52:52 -04:00
"a3": "12.00", # price
"p3": 1, # duration of each unit (depends on unit)
"t3": "Y", # duration unit ("M for Month")
"src": "1", # make payments recur
"sra": "1", # reattempt payment on payment error
"no_note": "1", # remove extra notes (optional)
"item_name": "NewsBlur Premium Account",
"notify_url": "http://dev.newsblur.com/profile/paypal_ipn/",
"return_url": "http://dev.newsblur.com/profile/paypal_return/",
"cancel_return": "http://dev.newsblur.com/",
"custom": request.user.username,
2010-10-16 18:52:52 -04:00
}
# Create the instance.
form = PayPalPaymentsForm(initial=paypal_dict, button_type="subscribe")
# Output the button.
2010-10-16 23:00:58 -04:00
return HttpResponse(form.sandbox(), mimetype='text/html')
@login_required
def activate_premium(request):
return HttpResponseRedirect(reverse('index'))