def create_user(self, form_values): logged_in_employee = Subscriber.objects.get(user=self.user) if not UserGroupManager.is_company_admin(self.user): return self.respond(is_saved=False, auth_errors='Permission Denied') user_form = UserCreationForm(form_values) subscriber_form = SubscriberCreationForm(form_values) subscriber_form.is_company_admin = UserGroupManager.is_company_admin(self.user) subscriber_form.logged_in_employee = logged_in_employee if user_form.is_valid() and subscriber_form.is_valid(): user = user_form.save(commit=False) user.email = subscriber_form.cleaned_data['email'] user.first_name = subscriber_form.cleaned_data['first_name'] user.last_name = subscriber_form.cleaned_data['last_name'] user.is_active = True user.is_staff = False user.save() user_groups = [Group.objects.get(pk=subscriber_form.cleaned_data['role'])] user.groups.add(*user_groups) subscriber = Subscriber( user=user, client=logged_in_employee.client ) subscriber.save() return self.respond(is_saved=True, subscriber=subscriber.serialize()) return self.respond( is_saved=False, user_form_errors=user_form.errors, subscriber_form_errors=subscriber_form.errors )
def do_registration(self, form_values): client_form = ClientForm(form_values) user_form = UserCreationForm(form_values) subscriber_form = SubscriberCreationForm(form_values) if client_form.is_valid() and user_form.is_valid() and subscriber_form.is_valid(): client = client_form.save(commit=False) client.payment_status = 0 # no payment, not so far. client.save() user = user_form.save(commit=False) user.email = subscriber_form.cleaned_data['email'] user.first_name = subscriber_form.cleaned_data['first_name'] user.last_name = subscriber_form.cleaned_data['last_name'] user.is_active = True user.is_staff = False user.save() user_groups = [Group.objects.get(name__exact=GROUP_NAME_MAP['COMPANY_ADMIN'])] user.groups.add(*user_groups) subscriber = Subscriber( user=user, client=client ) subscriber.save() return self.respond(is_saved=True) return self.respond( is_saved=False, client_form_errors=client_form.errors, user_form_errors=user_form.errors, subscriber_form_errors=subscriber_form.errors )
def index(request): if request.method == 'POST': email = request.POST['email'] name = request.POST['name'] mobile_number = request.POST["mobile_number"] try: Subscriber.objects.get(email_address=email) user_exists = True except: user_exists = False if user_exists: data = {'status': 0} return JsonResponse(data) if len(mobile_number) == 10: try: number = int(mobile_number) if re.match( r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email): subscriber = Subscriber() subscriber.email_address = email subscriber.name = name subscriber.mobile_number = '+91' + mobile_number subscriber.save() data = { 'status': 1, 'email': email, 'name': name, 'mobile_number': mobile_number } return JsonResponse(data) else: data = {'status': 3} return JsonResponse(data) except ValueError: data = {'status': 2} return JsonResponse(data) else: data = {'status': 2} return JsonResponse(data) return render(request, 'Subscribe/index.html')
def validate(request, code): try: validation = Validation.objects.get(code=code) if validation.action == 'subscribe': try: subscriber = Subscriber.objects.get(email=validation.email) subscriber.entities.clear() except Subscriber.DoesNotExist: subscriber = Subscriber(email=validation.email) subscriber.save() entities = loads(validation.entities) for key in entities: if entities[key]: subscriber.entities.add(District.objects.get(pk=key)) subscriber.save() validation.delete() elif validation.action == 'unsubscribe': try: subscriber = Subscriber.objects.get(email=validation.email) subscriber.delete() except Subscriber.DoesNotExist: pass # don't tell the user validation.delete() else: raise Exception( "Unknown action '%s' for validation" % validation.action) unsubscribe_path = reverse( 'wbc.news.views.unsubscribe', args=['.']).strip('.') return render(request, 'news/validate.html', { 'success': True, 'action': validation.action, 'unsubscribe_link': settings.SITE_URL + unsubscribe_path }) except Validation.DoesNotExist: return render(request, 'news/validate.html', {})
def subscribe(): try: email = request.json['email'] try: if Subscriber.objects.get(email=email): return make_response( jsonify({"email": email + ' is already subscribed'}), 400) except Subscriber.DoesNotExist: pass subscribe = Subscriber(email=email) subscribe.save() return make_response( jsonify( {"success": "Thank you for subscribing to COVID-19 alerts"}), 201) except KeyError: abort(400)
def subscribe(request): class SubscriptionForm(forms.Form): email = forms.EmailField() form = SubscriptionForm(request.GET) if form.is_valid(): subscriber = Subscriber() subscriber.email = form.cleaned_data['email'] subscriber.campaign_cid = request.campaign_id subscriber.save() ctx = { 'email': subscriber.email, 'guid': subscriber.guid, 'confirmation_url': 'http://%s%s' % ( Site.objects.get_current().domain, reverse('subscription:confirm', kwargs={'guid': subscriber.guid}), ), } mail(subscriber.email, 'subscription/confirmation_email.html', ctx, subject='GameMine. E-mail confirmation') return JsonResponse({'success': True}) return JsonResponse({'success': False})
def add_subscriber_view(request): if request.GET: response = {'errors': 0} name = request.GET.get('name', '') if name == '': response['errors'] = 1 response['name_error'] = "Введите имя" email = request.GET.get('email', '') if email == '': response['errors'] = 1 response['email_error'] = "Введите e-mail" else: try: Subscriber.objects.get(email=email) response['errors'] = 1 response['email_error'] = "Такой e-mail уже подписан" except Subscriber.DoesNotExist: pass if response['errors'] == 0: subscriber = Subscriber(name=name, email=email) subscriber.save() api = PyUniSend('5wy7awr4cunj36qds3e565bi4xi5wmzy57kzw9wo') # 5715758, 5715742 result = api.subscribe(list_ids='5715758', fields={ 'email': subscriber.email, 'Name': subscriber.name.encode("UTF-8") }, double_optin=1) print result return HttpResponse(json.dumps(response)) raise Http404()
def create(self, request): term = '' guid = None email = '' leaseid = '' try: if request.POST.get('term') and request.POST['term']: term = request.POST['term'] if request.POST.get('email') and request.POST['email']: email = request.POST['email'] if request.POST.get('guid') and request.POST['guid']: guid = request.POST['guid'] if request.POST.get('leaseid') and request.POST['leaseid']: leaseid = request.POST['leaseid'] if term==None or email==None or int(term) < 0 or int(term) > 365: return HttpResponse(json.dumps({'status':'error', 'msg':'Term and email required.Term has to be less than 365 days'}), status=400) if guid == None: resource = Resource() #guid = uuid.uuid4 #resource.guid = guid resource.callbackurl = '' resource.callbackauth = '' resource.save() print('resource saved') guid = resource.guid try: print('all_resources='+repr(Resource.objects.all())) resource = Resource.objects.get(guid=guid) except Resource.DoesNotExist: resource = None return HttpResponse(json.dumps({ 'status': 'error', 'msg': 'Resource could not be created', 'lease':'', }), status=500) try: subscriber = Subscriber.objects.get(email=email) except Subscriber.DoesNotExist: subscriber = None pass if subscriber == None: subscriber = Subscriber() subscriber.email = email subscriber.save() subscriber = Subscriber.objects.get(email=email) if not leaseid: lease = ResourceLease() print('lease.resource='+repr(resource)) lease.resource = resource lease.subscriber = subscriber lease.term = int(term) from datetime import timedelta lease.expires = datetime.datetime.now() + timedelta(days=int(term)) lease.status = 'A' lease.save() print('lease.id'+str(lease.id)) leaseid = str(lease.id) try: lease = ResourceLease.objects.get(id=leaseid) except ResourceLease.DoesNotExist: lease = None return HttpResponse(json.dumps({ 'status': 'error', 'msg': 'Resource could not be created', 'lease':'', }), status=500) queryset = ResourceSubscribers.objects.filter(resource=resource) recipients = [] for item in queryset: recipients.append(item.subscriber.email) if email not in recipients: recipients.append(email) ressub = ResourceSubscribers() ressub.resource = resource ressub.subscriber = subscriber ressub.save() return HttpResponse(json.dumps({'status':'success', 'guid':str(guid), 'leaseid':str(leaseid), 'subscribers':recipients})) except: import sys exc_type, exc_value, exc_traceback = sys.exc_info() import traceback msg = repr(traceback.format_exception(exc_type, exc_value, exc_traceback)) logger.warn(msg) return HttpResponse(json.dumps({ 'status': 'error', 'msg': msg, 'lease':'', }), status=500) finally: pass
def subscribeUser(): results = { 'borough': "", 'number': '', 'animal': None, 'prey' : None } BODY_PART_DICT = { 'la': "Left Arm", 'ra': "Right Arm", 'll': "Left Leg", "rl": "Right Leg", "t": "Tail" } def getFullSubscriber(sub): return { "number": sub.subscriber.number, "animal": { "name": sub.animal.name }, "body_part": { "name": sub.body_part.name }, "division":{ "name": sub.division.name } } ''' def get_neighborhood_wl(sub): #Get div div = SubscriberDivision.select().where(SubscriberDivision.subscriber == sub).get().division full_wl = FullSubscriber.select().where(FullSubscriber.division==div) return full_wl ''' def getPredPrey(x): fm = { "animal": x.animal.name, "division": x.division.name, "location": x.location.address, "body_part":x.body_part.name } print fm return fm if request.method == "POST": try: # Check if number exists check = None try: check = Subscriber.get(Subscriber.number == request.form['number']) except: pass if check: return render_template('error.html', error="Number already picked. Try another one.") sub = Subscriber(number=request.form['number']) sub.save() an = Animal.get(Animal.name==request.form['animal']) sa = SubscriberAnimal(subscriber=sub, animal=an) sa.save() bodypart = BodyPart.get(BodyPart.name==request.form['body_part']) sb = SubscriberBodyPart(subscriber=sub, body_part=bodypart) sb.save() div= Division.get(Division.name==request.form['borough']) sd = SubscriberDivision(subscriber=sub, division=div) sd.save() fs = FullSubscriber(subscriber=sub, animal=an, body_part=bodypart, division=div) fs.save() except peewee.IntegrityError: return render_template("error.html", error="Duplicate Phone Number. Pick Another One.") prey = [x.preyAnimal for x in PredPrey.select(PredPrey, Animal).join(Animal).where(PredPrey.predAnimal == fs.animal)] preyMurders = [] for p in prey: q = FullMurder.select(FullMurder, Animal, Division, Location, BodyPart).join(Animal).switch(FullMurder).join(Division).switch(FullMurder).join(Location).switch(FullMurder).join(BodyPart).where(FullMurder.animal == p and FullMurder.division == fs.division) preyMurders.extend([x for x in q]) watchlist = FullSubscriber.select(FullSubscriber, Subscriber, Animal, BodyPart, Division).join(Subscriber).switch(FullSubscriber).join(Animal).switch(FullSubscriber).join(BodyPart).switch(FullSubscriber).join(Division).where(FullSubscriber.division == fs.division and FullSubscriber.subscriber != fs.subscriber) results['prey'] = [getPredPrey(pm) for pm in preyMurders] results['watchlist'] = [getFullSubscriber(sub) for sub in watchlist] results['subFull'] = getFullSubscriber(fs) results['borough'] = fs.division.name results['number'] = fs.subscriber.number if request.method == 'GET': sub = None print request.args.get('number') phonenumber = request.args.get('number') try: sub = Subscriber.get(Subscriber.number== phonenumber) except: return render_template('error.html', error='Number does not exist. Subscribe by going to subscribe page and registering!') fs = FullSubscriber.get(FullSubscriber.subscriber == sub) prey = [x.preyAnimal for x in PredPrey.select(PredPrey, Animal).join(Animal).where(PredPrey.predAnimal == fs.animal)] preyMurders = [] for p in prey: q = FullMurder.select(FullMurder, Animal, Division, Location, BodyPart).join(Animal).switch(FullMurder).join(Division).switch(FullMurder).join(Location).switch(FullMurder).join(BodyPart).where(FullMurder.animal == p and FullMurder.division == fs.division) preyMurders.extend([x for x in q]) watchlist = FullSubscriber.select(FullSubscriber, Subscriber, Animal, BodyPart, Division).join(Subscriber).switch(FullSubscriber).join(Animal).switch(FullSubscriber).join(BodyPart).switch(FullSubscriber).join(Division).where(FullSubscriber.subscriber != fs.subscriber, FullSubscriber.division == fs.division) results['prey'] = [getPredPrey(pm) for pm in preyMurders] results['watchlist'] = [getFullSubscriber(sub) for sub in watchlist] results['subFull'] = getFullSubscriber(fs) results['borough'] = fs.division.name results['number'] = fs.subscriber.number return render_template("subscriber_results.html", results=results)