Esempio n. 1
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)     
Esempio n. 2
0
    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
Esempio n. 3
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))
Esempio n. 4
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)