1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-12 06:29:23 +00:00
seahub/contacts/views.py

135 lines
4.6 KiB
Python
Raw Normal View History

2012-05-04 08:30:07 +00:00
# encoding: utf-8
import simplejson as json
2012-07-30 11:47:11 +00:00
from django.http import HttpResponse, HttpResponseBadRequest, \
HttpResponseRedirect
2012-05-04 08:30:07 +00:00
from django.shortcuts import render_to_response, Http404
2012-02-11 03:12:54 +00:00
from django.core.urlresolvers import reverse
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.core.exceptions import ObjectDoesNotExist
2012-05-04 08:30:07 +00:00
from django.forms.models import modelformset_factory
from django.contrib import messages
2012-02-11 03:12:54 +00:00
2012-07-30 11:47:11 +00:00
from models import Contact, ContactAddForm, ContactEditForm
2012-07-30 12:44:32 +00:00
from utils import render_error
2012-05-04 08:30:07 +00:00
2012-06-25 12:42:19 +00:00
from seaserv import ccnet_rpc, ccnet_threaded_rpc
2012-09-27 09:52:04 +00:00
from seahub.views import is_registered_user
2012-09-06 03:07:04 +00:00
from seahub.settings import SITE_ROOT
2012-02-11 03:12:54 +00:00
@login_required
def contact_list(request):
2012-05-04 08:30:07 +00:00
contacts = Contact.objects.filter(user_email=request.user.username)
2012-09-27 09:52:04 +00:00
registered_contacts = []
unregistered_contacts = []
for c in contacts:
if is_registered_user(c.contact_email):
registered_contacts.append(c)
else:
unregistered_contacts.append(c)
2012-07-30 11:47:11 +00:00
form = ContactAddForm({'user_email':request.user.username})
edit_init_data = {'user_email':request.user.username,
2012-09-27 09:52:04 +00:00
'contact_email':'',
'contact_name':'',
'note':''}
edit_form = ContactEditForm(edit_init_data)
2012-02-11 03:12:54 +00:00
return render_to_response('contacts/contact_list.html', {
'contacts': contacts,
2012-09-27 09:52:04 +00:00
'registered_contacts': registered_contacts,
'unregistered_contacts': unregistered_contacts,
'form': form,
'edit_form': edit_form,
2012-02-11 03:12:54 +00:00
}, context_instance=RequestContext(request))
@login_required
2012-07-30 11:47:11 +00:00
def contact_add_post(request):
"""
Handle ajax post to add a contact.
"""
result = {}
content_type = 'application/json; charset=utf-8'
form = ContactAddForm(request.POST)
if form.is_valid():
2012-09-27 09:52:04 +00:00
contact_email = form.cleaned_data['contact_email']
2012-07-30 11:47:11 +00:00
contact = Contact()
contact.user_email = form.cleaned_data['user_email']
2012-09-27 09:52:04 +00:00
contact.contact_email = contact_email
2012-07-30 11:47:11 +00:00
contact.contact_name = form.cleaned_data['contact_name']
contact.note = form.cleaned_data['note']
contact.save()
result['success'] = True
2012-09-27 09:52:04 +00:00
messages.success(request, u"您已成功添加 %s 为联系人" % contact_email)
2012-07-30 11:47:11 +00:00
return HttpResponse(json.dumps(result), content_type=content_type)
else:
return HttpResponseBadRequest(json.dumps(form.errors),
content_type=content_type)
@login_required
def contact_add(request):
"""
Handle normal request to add a contact.
"""
if request.method != 'POST':
raise Http404
form = ContactAddForm(request.POST)
if form.is_valid():
contact_email = form.cleaned_data['contact_email']
contact = Contact()
contact.user_email = form.cleaned_data['user_email']
contact.contact_email = contact_email
contact.contact_name = form.cleaned_data['contact_name']
contact.note = form.cleaned_data['note']
contact.save()
messages.success(request, u"您已成功添加 %s 为联系人" % contact_email)
else:
messages.error(request, '操作失败')
referer = request.META.get('HTTP_REFERER', None)
if not referer:
referer = SITE_ROOT
return HttpResponseRedirect(referer)
2012-02-11 03:12:54 +00:00
2012-05-04 08:30:07 +00:00
@login_required
def contact_edit(request):
2012-07-30 11:47:11 +00:00
"""
Ajax post to edit contact info.
2012-07-30 11:47:11 +00:00
"""
result = {}
content_type = 'application/json; charset=utf-8'
form = ContactEditForm(request.POST)
if form.is_valid():
user_email = form.cleaned_data['user_email']
contact_email = form.cleaned_data['contact_email']
contact_name = form.cleaned_data['contact_name']
note = form.cleaned_data['note']
contact = Contact.objects.get(user_email=user_email, contact_email=contact_email)
contact.contact_name = contact_name
contact.note = note
contact.save()
result['success'] = True
2012-09-27 09:52:04 +00:00
messages.success(request, u'操作成功')
return HttpResponse(json.dumps(result), content_type=content_type)
2012-05-04 08:30:07 +00:00
else:
return HttpResponseBadRequest(json.dumps(form.errors),
content_type=content_type)
2012-05-04 08:30:07 +00:00
2012-02-11 03:12:54 +00:00
@login_required
def contact_delete(request):
2012-05-04 08:30:07 +00:00
user_email = request.user.username
contact_email = request.GET.get('email')
Contact.objects.filter(user_email=user_email, contact_email=contact_email).delete()
2012-09-27 09:52:04 +00:00
messages.success(request, u'删除成功')
2012-05-04 08:30:07 +00:00
return HttpResponseRedirect(reverse("contact_list"))