def _invite_enroll(request, party_id, invite_key): party = get_object_or_404(Party, id = party_id) party_client = get_object_or_404(PartiesClients, invite_key = invite_key) party_client.is_check = False client = party_client.client if request.method == 'POST': form = EnrollForm(request.POST) if form.is_valid(): #保存client的姓名 name = form.cleaned_data['name'] if name: client.name = name client.save() # if client.invite_type == 'email': # if request.POST.get('name'): # client.name = request.POST.get('name') # else: # if not client.name: # client.name = client.email # else: # if request.POST.get('name'): # client.name = request.POST.get('name') # else: # if not client.name: # client.name = client.phone if 'yes' in request.POST: #如果点击参加 if party.limit_count != 0:#有人数限制 if len(PartiesClients.objects.filter(party = party, apply_status = 'apply')) >= party.limit_count: return TemplateResponse(request, 'message.html', {'message': 'late'}) party_client.apply_status = u'apply' leave_message = form.cleaned_data['leave_message'] if leave_message: party_client.leave_message = party_client.leave_message + '\n' + leave_message + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) party_client.save() #向组织者的所有MoblieDevice发送推送 push_notification_when_enroll(party_client, 'apply') _send_apply_confirm_message(party_client) return TemplateResponse(request, 'message.html', {'message': u'apply'}) else: party_client.apply_status = u'reject' leave_message = form.cleaned_data['leave_message'] if leave_message: party_client.leave_message = party_client.leave_message + '\n' + leave_message + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) party_client.save() #向组织者的所有MoblieDevice发送推送 push_notification_when_enroll(party_client, 'reject') return TemplateResponse(request, 'message.html', {'message': 'reject'}) else: data = { 'client': client, 'party': party, 'client_count': _get_client_count(party), 'form' : form, 'key' : request.GET.get('key', '') } return TemplateResponse(request, 'parties/enroll.html', data) else: userprofile = party.creator.get_profile() party.creator.username = userprofile.true_name if userprofile.true_name else party.creator.username apply_status = PartiesClients.objects.get(invite_key = request.GET.get('key', '')).apply_status data = { 'client': client, 'party': party, 'client_count': _get_client_count(party), 'form' : EnrollForm(), 'key' : request.GET.get('key', ''), 'apply_status' : apply_status } return TemplateResponse(request, 'parties/enroll.html', data)
def _public_enroll(request, party_id): party = get_object_or_404(Party, id = party_id) creator = party.creator if request.method == 'POST': if party.invite_type == 'phone': form = PublicPhoneEnrollForm(request.POST) elif party.invite_type == 'email': form = PublicEmailEnrollForm(request.POST) else : return TemplateResponse(request, 'message.html', {'message': 'nopublicenroll'}) if form.is_valid(): name = form.cleaned_data['name'] if party.invite_type == 'phone': phone = form.cleaned_data['phone_or_email'] client, create = Client.objects.get_or_create(creator = creator, phone = phone, defaults = {'invite_type':'public'}) else : email = form.cleaned_data['phone_or_email'] client, create = Client.objects.get_or_create(creator = creator, email = email, defaults = {'invite_type':'public'}) #有人数限制 if party.limit_count != 0 : if PartiesClients.objects.filter(party = party, apply_status = 'apply').count() >= party.limit_count: return TemplateResponse(request, 'message.html', {'message': 'late'}) # if Client.objects.filter(creator = creator).filter(party = party).filter(email = email).exclude(email = '').count() == 0 \ # and Client.objects.filter(creator = creator).filter(party = party).filter(phone = phone).exclude(phone = '').count() == 0: # if party.limit_count != 0:#有人数限制 # if PartiesClients.objects.filter(party = party, apply_status = 'apply').count() >= party.limit_count: # return TemplateResponse(request, 'message.html', {'message': u'来晚了,下次早点吧'}) # client = Client.objects.create(name = name, creator = creator, email = email, phone = phone, invite_type = 'public') # party_client = PartiesClients.objects.create(client = client, party = party, apply_status = u'apply', is_check = False, leave_message = form.cleaned_data['leave_message']) # #向组织者的所有MoblieDevice发送推送 # push_notification_when_enroll(party_client, 'apply') # if create: # client.invite_type = 'public' # client.save() client.name = name client.save() party_client, create = PartiesClients.objects.get_or_create(client = client, party = party, defaults = {'apply_status':'apply', 'is_check':False}) if not create: party_client.apply_status = 'apply' party_client.is_check = False party_client.save() _send_apply_confirm_message(party_client) leave_message = form.cleaned_data['leave_message'] if leave_message: party_client.leave_message = party_client.leave_message + '\n' + leave_message + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) party_client.is_check = False party_client.save() push_notification_when_enroll(party_client, 'apply') if request.META['PATH_INFO'][0:3] == '/m/': return TemplateResponse(request, 'm/message.html', {'title':u'报名成功', 'message': 'publicenrollsucess'}) else: return TemplateResponse(request, 'message.html', {'message': 'publicenroll'}) else: data = { 'party': party, 'client_count': _get_client_count(party), 'form':form } return TemplateResponse(request, 'parties/enroll.html', data) else: form = PublicEnrollForm() invite_message = '' if party.invite_type == 'email': invite_message = 'email' elif party.invite_type == 'phone': invite_message = 'phone' else : return TemplateResponse(request, 'message.html', {'message': 'nopublicenroll'}) userprofile = party.creator.get_profile() party.creator.username = userprofile.true_name if userprofile.true_name else party.creator.username data = { 'party': party, 'client_count': _get_client_count(party), 'form':form, 'invite_message':invite_message } return TemplateResponse(request, 'parties/enroll.html', data)