2012-05-04 08:30:07 +00:00
|
|
|
# encoding: utf-8
|
2012-07-20 08:23:59 +00:00
|
|
|
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
|
2012-07-12 03:42:21 +00:00
|
|
|
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
|
|
|
|
from utils import go_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-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-07-30 11:47:11 +00:00
|
|
|
form = ContactAddForm({'user_email':request.user.username})
|
2012-02-11 03:12:54 +00:00
|
|
|
return render_to_response('contacts/contact_list.html', {
|
|
|
|
'contacts': contacts,
|
2012-07-20 08:23:59 +00:00
|
|
|
'form': 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.
|
|
|
|
"""
|
2012-07-12 03:42:21 +00:00
|
|
|
|
2012-07-30 11:47:11 +00:00
|
|
|
if not request.is_ajax() and not request.method == 'POST':
|
|
|
|
raise Http404
|
|
|
|
|
|
|
|
result = {}
|
|
|
|
content_type = 'application/json; charset=utf-8'
|
|
|
|
|
|
|
|
form = ContactAddForm(request.POST)
|
|
|
|
if form.is_valid():
|
|
|
|
contact = Contact()
|
|
|
|
contact.user_email = form.cleaned_data['user_email']
|
|
|
|
contact.contact_email = form.cleaned_data['contact_email']
|
|
|
|
contact.contact_name = form.cleaned_data['contact_name']
|
|
|
|
contact.note = form.cleaned_data['note']
|
|
|
|
contact.save()
|
|
|
|
|
|
|
|
result['success'] = True
|
|
|
|
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
|
|
|
|
|
|
|
|
group_id = request.GET.get('group_id', '0')
|
|
|
|
try:
|
|
|
|
group_id_int = int(group_id)
|
|
|
|
except ValueError:
|
|
|
|
return go_error('小组ID必须为整数')
|
|
|
|
|
|
|
|
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, '操作失败')
|
|
|
|
return HttpResponseRedirect(reverse("group_info", args=(group_id,)))
|
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
|
|
|
"""
|
|
|
|
Edit contact info.
|
|
|
|
"""
|
|
|
|
|
2012-05-04 08:30:07 +00:00
|
|
|
if request.method == 'POST':
|
2012-07-30 11:47:11 +00:00
|
|
|
form = ContactEditForm(request.POST)
|
2012-05-04 08:30:07 +00:00
|
|
|
if form.is_valid():
|
2012-07-30 11:47:11 +00:00
|
|
|
user_email = form.cleaned_data['user_email']
|
2012-05-04 08:30:07 +00:00
|
|
|
contact_email = form.cleaned_data['contact_email']
|
|
|
|
contact_name = form.cleaned_data['contact_name']
|
|
|
|
note = form.cleaned_data['note']
|
2012-07-30 11:47:11 +00:00
|
|
|
try:
|
|
|
|
contact = Contact.objects.get(user_email=user_email,
|
|
|
|
contact_email=contact_email)
|
|
|
|
except Contact.DoesNotExist:
|
|
|
|
return go_error(request, '用户不存在')
|
2012-05-04 08:30:07 +00:00
|
|
|
else:
|
|
|
|
contact.contact_name = contact_name
|
|
|
|
contact.note = note
|
|
|
|
contact.save()
|
2012-07-30 11:47:11 +00:00
|
|
|
return HttpResponseRedirect(reverse('contact_list'))
|
2012-05-04 08:30:07 +00:00
|
|
|
else:
|
2012-07-30 11:47:11 +00:00
|
|
|
contact_email = request.GET.get('email', '')
|
2012-05-04 08:30:07 +00:00
|
|
|
c = Contact.objects.filter(user_email=request.user.username,
|
|
|
|
contact_email=contact_email)
|
|
|
|
if not c:
|
2012-07-30 11:47:11 +00:00
|
|
|
return go_error(request, '用户不存在')
|
2012-05-04 08:30:07 +00:00
|
|
|
else:
|
|
|
|
init_data = {'user_email':request.user.username,
|
|
|
|
'contact_email':contact_email,
|
|
|
|
'contact_name':c.get().contact_name,
|
|
|
|
'note':c.get().note}
|
2012-07-30 11:47:11 +00:00
|
|
|
form = ContactEditForm(init_data)
|
|
|
|
|
2012-05-04 08:30:07 +00:00
|
|
|
return render_to_response('contacts/contact_edit.html', {
|
|
|
|
'form': form,
|
|
|
|
}, context_instance=RequestContext(request))
|
|
|
|
|
|
|
|
|
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()
|
|
|
|
|
|
|
|
return HttpResponseRedirect(reverse("contact_list"))
|