Exemple #1
0
 def test_valid_suggestion_form(self):
 	"""
 	Test suggestion form with the valid input
 	"""
     form_data = {'name' : 'test user', 'email' : '*****@*****.**', 'content' : 'this is a test suggestion.'}
     form = SuggestionForm(data=form_data)
     self.assertEqual(form.is_valid(), True)
Exemple #2
0
def suggest(resource_id):
    """Create a suggestion for a resource."""
    form = SuggestionForm()
    if resource_id is None:
        name = None
        resource = None
    else:
        resource = Resource.query.get(resource_id)
        if resource is None:
            abort(404)
        name = resource.name
    if form.validate_on_submit():
        suggestion = Suggestion(
            resource_id=resource_id,
            suggestion_text=form.suggestion_text.data,
            contact_name=form.contact_name.data,
            contact_email=form.contact_email.data,
            contact_phone_number=form.contact_phone_number.data,
            submission_time=datetime.now(pytz.timezone('US/Eastern'))
        )
        db.session.add(suggestion)
        try:
            db.session.commit()
            flash('Thanks for the suggestion!', 'success')
            return redirect(url_for('main.index'))
        except IntegrityError:
            db.session.rollback()
            flash('Database error occurred. Please try again.', 'error')
    return render_template('suggestion/suggest.html', form=form, name=name)
Exemple #3
0
def suggestion():
    form = SuggestionForm(request.form) 
    if request.method == 'POST' and form.validate():
        suggestion = models.Suggestion(str(uuid.uuid4()),str(session['uuid']),form.title.data,form.suggestion.data,'new','new', datetime.datetime.now())
        models.db.session.add(suggestion)
        models.db.session.commit()
        return redirect('/suggestion') 
    return render_template('suggest.html', form=form)     
def add_suggestion():
    form = SuggestionForm(request.form)
    if request.method == 'POST' and form.validate():
        suggestion = Suggestion(title=form.title.data,
                                description=form.description.data, user_id=current_user.get_id())
        db.session.add(suggestion)
        db.session.commit()
        return redirect(url_for('add_suggestion'))
    return render_template('suggest.html', form=form)
Exemple #5
0
    def test_invalid_suggestion_form(self):
    	"""
    	Test suggestion form with invalid inputs. 
    	The first one test detecting blank field. The second one test for invalid email.
    	"""
        form_data_blank_name = {'name' : '', 'email' : '*****@*****.**', 'content' : 'this is a test suggestion.'}
        form = SuggestionForm(data=form_data_blank_name)
        self.assertEqual(form.is_valid(), False)

        form_data_incorrect_email = {'name' : 'test user', 'email' : 'test.com', 'content' : 'this is a test suggestion.'}
        form = SuggestionForm(data=form_data_incorrect_email)
        self.assertEqual(form.is_valid(), False)
Exemple #6
0
def suggest(request):
    if request.method == 'POST':
        form = SuggestionForm(request.POST)
        if form.is_valid():
            send_mail(request.user.profile.real_name + 'report',
                      form.cleaned_data['description'],
                      request.user.email,
                      ['*****@*****.**',])
            return render_to_response('home/suggest_suc.html')
    form = SuggestionForm()
    return render_to_response('home/suggest.html', {'form': form,},
                              context_instance=RequestContext(request))
Exemple #7
0
def create_suggestion(request):

    if request.method == 'POST':
        form = SuggestionForm(request.POST)

        if form.is_valid():
            instance = form.save(commit=False)
            instance.suggested_by = request.user
            instance.save()

            return HttpResponseRedirect(reverse('suggestion_list'))

    else:
        form = SuggestionForm()

    return render_to_response('sdvapp/suggestion_create.html',
                              {'form' : form},
                              context_instance=RequestContext(request))
Exemple #8
0
def make_suggestion(list_id):
    if current_user.get_id() == None:
        flash("Please login to make suggestions.", "danger")
        return redirect("/login")
    curr_list = List.query.get_or_404(list_id)
    if current_user.id == curr_list.users.id:
        flash("Recommending an anime to yourself?", "warning")
        return redirect(f"/lists/{curr_list.id}")
    search = request.args.get('q')
    form = SuggestionForm()
    if not search:
        anime = None
    else:
        resp = requests.get(
            f'https://api.jikan.moe/v3/search/anime?q={search}&limit=8')
        anime = resp.json()
        form.anime.choices = [(a['mal_id'], a['title'])
                              for a in anime['results']]
    if form.validate_on_submit():
        if pf.is_profane(form.comment.data) == True:
            flash('Please avoid using profanity!', 'danger')
        else:
            send_anime_recommendation(anime, form.anime.data,
                                      form.comment.data, current_user.username,
                                      curr_list)
            flash(
                f'{curr_list.users.username} will see your recommendation in their inbox!',
                'success')
            send_email(
                'Someone has recommended an anime to you',
                curr_list.users.email,
                'Check out your inbox to see what has been sent to you!')
            return redirect(f'/lists/{curr_list.id}')
    return render_template('suggest-form.html',
                           form=form,
                           curr_list=curr_list,
                           anime=anime)
    def extra_context(self):
        sort_by = self.request.GET.get(self.prefix + self.sort_by_field,
                                       'score')

        if sort_by == 'score':
            sort_by = None
            # this is how we tell haystack to "sort by relevance"?

        models = self.form.cleaned_data['models']
        if len(models) == 1 and models[0] == 'binder.intranetuser':
            table_class = UserSearchTable
        else:
            table_class = SearchTable

        results_table = table_class(self.results,
                                    prefix=self.prefix,
                                    page_field=self.page_field,
                                    order_by=sort_by)
        current_page = self.request.GET.get(results_table.prefixed_page_field,
                                            1)
        results_table.paginate(page=current_page)

        context = {
            'is_real_search': (self.form.is_valid()
                               and len(self.form.cleaned_data) > 0),
            'count':
            getattr(self.form, 'count', None),
            'results_table':
            results_table,
            'request':
            self.request,
            # 'result_headers': list(admin_list.result_headers(self)),
        }

        # don't bother making a suggestion if there's no query
        query = self.form.cleaned_data.get('q')
        if query and query != self.form.get_suggestion():
            context['suggestform'] = SuggestionForm(
                data={'suggestion': self.form.get_suggestion()})

        return context
Exemple #10
0
def suggestion(request):
	if request.method == 'POST': 
		form = SuggestionForm(request.POST)
		if form.is_valid():
			form.save()
			return HttpResponseRedirect('/restaurant/') 

	elif request.user.is_authenticated():
		#automatically fill out name and email for logged in user
		form = SuggestionForm(initial = {'name': request.user.username, 'email': request.user.email})
	else:
		form = SuggestionForm()
	context = {}
	context.update(csrf(request))
	context['form'] = form
	return render(request, 'restaurant/suggestion.html', context)
Exemple #11
0
def add_suggestion(request, template='generic/add_suggestion.html'):
    """ Vista para añadir una sugerencia
        
            :param form: formulario con los datos
            :type form: :class:`geoalert.forms.RemindForm`
            :param address: direccion obtenida de la posicion
            :type: :class:`string`
            
            :returns: :class:`geoalert.models.Suggestion`
    """
    from forms import SuggestionForm
    f = SuggestionForm()
    # tambien devolvemos las listas posibles
    from geolist.models import ListSuggestion
    lists = ListSuggestion.objects.get_by_user(user=request.user,
                                               querier=request.user,
                                               all=True)
    lists = [l.to_dict(resolve=False) for l in lists]
    return render_to_response(template, {
        'f': f,
        'lists': lists,
    },
                              context_instance=RequestContext(request))