This commit is contained in:
j 2010-02-16 15:40:53 +05:30
parent f2b97de2b1
commit 1862befc8f
2 changed files with 41 additions and 4 deletions

View file

@ -29,7 +29,7 @@ import utils
from daemon import send_bg_message from daemon import send_bg_message
from oxuser.models import getUserJSON from oxuser.models import getUserJSON
from oxuser.views import api_login, api_logout, api_register, api_recover, api_preferences from oxuser.views import api_login, api_logout, api_register, api_contact, api_recover, api_preferences
def api(request): def api(request):

View file

@ -10,6 +10,7 @@ from django.shortcuts import render_to_response, get_object_or_404, get_list_or_
from django.template import RequestContext, loader, Context from django.template import RequestContext, loader, Context
from django.utils import simplejson as json from django.utils import simplejson as json
from django.conf import settings from django.conf import settings
from django.core.mail import send_mail, BadHeaderError
from oxdjango.shortcuts import render_to_json_response, json_response from oxdjango.shortcuts import render_to_json_response, json_response
from oxdjango.decorators import login_required_json from oxdjango.decorators import login_required_json
@ -36,13 +37,15 @@ def api_login(request):
if user.is_active: if user.is_active:
login(request, user) login(request, user)
user_json = models.getUserJSON(user) user_json = models.getUserJSON(user)
response = json_response({'user': user_json}, text='You are logged in.') response = json_response({'user': user_json},
text='You are logged in.')
else: else:
response = json_response(status=401, response = json_response(status=401,
text='Your account is disabled.') text='Your account is disabled.')
else: else:
response = json_response(status=401, errors = json_errors(form)
text='Your username and password were incorrect.') response = json_response(errors,
status=401, text='Your username and password were incorrect.')
else: else:
response = json_response(status=400, text='invalid data') response = json_response(status=400, text='invalid data')
@ -150,6 +153,40 @@ def recover(request, key):
return redirect('/#settings') return redirect('/#settings')
return redirect('/') return redirect('/')
class ContactForm(forms.Form):
email = forms.EmailField()
subject = forms.TextInput()
message = forms.TextInput()
def api_contact(request):
'''
param data
{'email': string, 'message': string}
return {'status': {'code': int, 'text': string}}
'''
data = json.loads(request.POST['data'])
form = ContactForm(data, request.FILES)
if form.is_valid():
email = data['email']
template = loader.get_template('contact_email.txt')
context = RequestContext(request, {
'sitename': settings.SITENAME,
'email': email,
'message': data['message'],
})
message = template.render(context)
subject = '%s contact: %s' % (settings.SITENAME, data['subject'])
response = json_response(text='message sent')
try:
send_mail(subject, message, email, [settings.DEFAULT_FROM_EMAIL, ])
except BadHeaderError:
response = json_response(status=400, text='invalid data')
else:
response = json_response(status=400, text='invalid data')
return render_to_json_response(response)
@login_required_json @login_required_json
def api_preferences(request): def api_preferences(request):
''' '''