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)
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)
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)
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)
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))
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))
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
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)
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))