def send_sms(self): self.status = 'PRO' self.save() users = MailerUsers.objects.select_related().filter(mailer=self) self.counter = 0 for user in users: sms_result = p_sms('+7%s' % phone_formater(user.user.phone_mobile), str(self.body)) sms_id, sms_status = sms_result.split('=') if sms_status == 'accepted': user.status = 'SNT' user.sent_at = datetime.datetime.now() else: user.status = 'ERR' self.status = 'ERR' user.save() self.save() if self.status != 'ERR': self.status = 'SNT' else: self.status = 'ERD' self.save() return
def phone_validate(request): template='accounts_phone-validate.html' data=dict() data['phone'] = phone_formater(request.user.phone_mobile) if request.method == 'POST': if request.POST.get('code_sms'): random_var = randint(1000, 9999) sms_result = send_sms('+7%s' % data['phone'], str(random_var)) sms_id, sms_status = sms_result.split('=') if sms_status == 'accepted': try: q_status = PhoneStatus.objects.get(user = request.user) q_status.phone_num = data['phone'] q_status.phrase = random_var q_status.sms_id = sms_id q_status.sms_status = sms_status q_status.save() except PhoneStatus.DoesNotExist: q_status = PhoneStatus( user = request.user, phone_num = data['phone'], phrase = random_var, sms_id = sms_id, sms_status = sms_status ) q_status.save() data['code_go'] = True else: page_message(request, 71, None, 'error') return HttpResponseRedirect('/profile/') data['code_go'] = True if request.POST.get('code_submit'): code = request.POST.get('code_input') q_status = PhoneStatus.objects.get(user = request.user) if q_status.phrase == code: q_user = CustomUser.objects.get(id = request.user.id) q_status = PhoneStatus.objects.get(user = request.user) q_user.phone_mobile_status = True q_user.save() # q_status.delete() page_message(request, 72, None, 'info') return HttpResponseRedirect('/profile/') else: page_message(request, 73, None, 'error') data['code_go'] = True else : if request.user.phone_mobile_status: return HttpResponseRedirect('/profile/') if len(data['phone']) <= 9: data['phone_error'] = True try: q_status = PhoneStatus.objects.get(user = request.user) if len(q_status.phrase) >=1: data['code_go'] = True except PhoneStatus.DoesNotExist: pass t = loader.get_template(template) c = RequestContext(request,data, processors=[custom_proc]) return HttpResponse(t.render(c))