예제 #1
0
def newsletter_add(request):
    if request.method == "POST":
        adr = request.POST["email"]
        e = None
        if len(adr) > 6:
            form = NewsletterForm(data=request.POST)
            if form.is_valid():
                try:
                    e = NewsletterEmails.objects.get(email=adr)
                    message = _(u"Email already added.")
                    type = "error"
                except NewsletterEmails.DoesNotExist:
                    try:
                        e = NewsletterEmails(email=adr)
                    except DoesNotExist:
                        pass
                    message = _(u"Email added.")
                    type = "success"
                    e.save()
            else:
                message = _(u"Bad address.")
                type = "error"
        else:
            message = _(u"Too short address.")
            type = "error"

    if request.is_ajax():
        result = simplejson.dumps({"message": message, "type": type}, cls=LazyEncoder)
        return HttpResponse(result, mimetype="application/javascript")
예제 #2
0
파일: views.py 프로젝트: kushiahu/djangomx
def subscribe_request(request):
    """ Adds a new subscription to mailchimp list. """
    if request.POST:
        mail_chimp = mailchimp.Mailchimp(
            settings.SECRETS['mailchimp_api_key']
        )
        form = NewsletterForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            subscription = Subscription(email=email)
            subscription.save()
            try:
                mail_chimp.lists.subscribe(
                    settings.SECRETS['mailchimp_list_id'],
                    {'email': email},
                    double_optin=False,
                    send_welcome=True
                )
            except mailchimp.ListAlreadySubscribedError:
                return {
                    'success': False, 'error': 'Email is already subscribed'
                }
            return {'success': True}
        else:
            return {
                'success': False,
                'error': form.errors.get('email')
            }
    return {'success': False, 'error': 'Request not valid'}
예제 #3
0
def newsletter_add(request):
    if request.method == "POST":
        adr = request.POST['email']
        e = None
        if len(adr) > 6:
            form = NewsletterForm(data=request.POST)
            if form.is_valid():
                try:
                    e = NewsletterEmails.objects.get(email=adr)
                    message = _(u"Email already added.")
                    type = "error"
                except NewsletterEmails.DoesNotExist:
                    try:
                        e = NewsletterEmails(email=adr)
                    except DoesNotExist:
                        pass
                    message = _(u"Email added.")
                    type = "success"
                    e.save()
            else:
                message = _(u"Bad address.")
                type = "error"
        else:
            message = _(u"Too short address.")
            type = "error"

    if request.is_ajax():
        result = simplejson.dumps({
            "message": message,
            "type": type,
        },
                                  cls=LazyEncoder)
        return HttpResponse(result, mimetype='application/javascript')
예제 #4
0
 def post(self, request, *args, **kwargs):
     """ Create the newsletter entry.
     Note that if there a duplicate entry, form.is_valid will return False
     so there's no need to catch an IntegrityError here.
     """
     form = NewsletterForm(request.POST)
     if form.is_valid():
         form.save()
     return super(NewsletterView, self).get(request, *args, **kwargs)
예제 #5
0
 def post(self, request, *args, **kwargs):
     """ Create the newsletter entry.
     Note that if there a duplicate entry, form.is_valid will return False
     so there's no need to catch an IntegrityError here.
     """
     form = NewsletterForm(request.POST)
     if form.is_valid():
         form.save()
     return super(NewsletterView, self).get(request, *args, **kwargs)
예제 #6
0
def newsletter(request):
    latest_news = NewsItem.objects.all()[0]
    if request.method == 'POST':
        #Attempting to register
        form = NewsletterForm(request.POST)
        if form.is_valid():
            signup = Newsletter(name = form.cleaned_data['name'],
                                email = form.cleaned_data['email'])
            signup.save()
            return redirect('/newsletter/signup-successful/')
    else:
        form = NewsletterForm()
    
    return render_to_response('newsletter.html',
                              {'form': form,
                               'latest_news': latest_news},
                              context_instance=RequestContext(request))
예제 #7
0
def home():
	g.user = current_user
	form = NewsletterForm(request.form)
	if g.user.is_authenticated():
		return redirect(url_for('query'))
	else:
		if request.method == 'POST' and form.validate():
			gc = gspread.Client(auth=('*****@*****.**', '0pen1mpact'))
			gc.login()
			wks = gc.open("user-sign-up").sheet1
			values_list = wks.col_values(1)
			timestamp = datetime.utcnow().strftime('%d-%m-%y')
			wks.append_row([form.email.data, timestamp])
			# flash("You signed up to our beta launch")
			return render_template('home.html', user=g.user)

	return render_template('home.html', user=g.user, form=form)
예제 #8
0
def list_newsletters():
    """List all examples"""
    newsletters = Newsletter.all()
    form = NewsletterForm()
    if form.validate_on_submit():
        newsletter = Newsletter(
	    title = form.title.data,
            description = form.description.data,
            link = form.link.data,
            added_by = users.get_current_user()
	)
        try:
            newsletter.put()
	    newsletter_id = newsletter.key().id()
            flash(u'Newsletter %s successfully saved.' % newsletter_id, 'success')
            return redirect(url_for('list_newsletters'))
        except CapabilityDisabledError:
            flash(u'App Engine Datastore is currently in read-only mode.', 'info')
            return redirect(url_for('list_newsletters'))
    return render_template('list_newsletters.html', newsletters=newsletters, form=form)
예제 #9
0
def newsletter_subscription():
    form = NewsletterForm(request.form)

    if form.validate_on_submit():
        # check if email is unique
        email = Newsletter.query.filter_by(email=form.email.data).first()

        if not email:
            # save email
            email = Newsletter(email=form.email.data)
            email.save()
            flash("Thank you for subscribing to our newsletter", "success")
        else:
            flash("You are already subscribed to our newsletter", "error")
    else:
        for errors in form.errors.values():
            for error in errors:
                flash(f'{error}', "error")
                break
            break
    return redirect(url_for('.index'))
예제 #10
0
def index():
    user = g.user
    form_news = NewsletterForm()
    form_busca = SearchForm()
    form = LoginForm()
    doacoes = Doacao.query.count()
    concluidas = Doacao.query.filter_by(status_id=3).count()
    tags = Doacao.query.all()
    itens = ''
    for tag in tags:
        itens += tag.tags + ','
    for categoria in tags:
        itens += categoria.categoria + ','
    tags = itens.split(',')

    if form_news.validate_on_submit():
        news = Newsletter(nome=form_news.nome.data,
                          email=form_news.email.data)
        db.session.add(news)
        db.session.commit()
        return redirect(url_for('index'))
    if form_busca.validate_on_submit():
        return redirect(url_for('search_results', query=form_busca.search.data))
    if form.validate_on_submit():
        ong = Ong.query.filter_by(nickname=form.login.data,
                                  senha=md5(form.senha_login.data).hexdigest()
                                  ).first_or_404()
        login_user(ong)
        return redirect(request.args.get('next') or
                        url_for('ong_dashboard', ong=ong.nickname))
    return render_template('index.html',
                           form_news=form_news,
                           form_busca=form_busca,
                           form=form,
                           user=user,
                           doacoes=doacoes,
                           concluidas=concluidas
                           , tags=tags
                           )
예제 #11
0
def faq():
    form = NewsletterForm(request.form)
    return render_template('frontend/how_it_works.html', form=form)
예제 #12
0
def index():
    form = NewsletterForm(request.form)

    return render_template('frontend/index.html', form=form)