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