Пример #1
0
    def get_queryset(self):
        data = Project.objects.all()

        form = SearchForm(data=self.request.GET)
        if form.is_valid():
            search = form.cleaned_data['search']
            if search:
                data = data.filter(
                    Q(name__icontains=search)
                    | Q(description__icontains=search))

        return data.order_by('-date_start')
Пример #2
0
    def get_queryset(self):
        data = Tasks.objects.all()

        form = SearchForm(data=self.request.GET)
        if form.is_valid():
            search = form.cleaned_data['search']
            if search:
                data = data.filter(
                    Q(summary__icontains=search)
                    | Q(description__icontains=search))

        return data.order_by('-task_create')
def book_search_view(request, *args, **kwargs):
    form = SearchForm(data=request.GET)
    if form.is_valid():
        text = form.cleaned_data['search']
        if len(text) > 0:
            books = Books.objects.filter(name_author__contains=text, status="active").order_by("-created_at")
            print(text)
            print(books)
            return render(request, 'index.html', context={'books': books})
        else:
            return redirect('index')
    return redirect('index')
Пример #4
0
 def get_context_data(self, *, object_list=None, **kwargs):
     context = super().get_context_data(**kwargs)
     nom_nom = self.get_object()
     form = SearchForm(data=self.request.GET)
     data = Coin.objects.filter(Q(currency__pk=nom_nom.currency.pk) & Q(nominal=nom_nom.nominal))
     if form.is_valid():
         search = form.cleaned_data['search']
         if search:
             data = data.filter(Q(year_of_issue__icontains=search))
         kwargs['search'] = search
     context['form'] = form
     context['coins'] = data.order_by('year_of_issue')
     return context
Пример #5
0
def musicians_list_view(request):
    musicians = Musician.objects.filter(position__gt=0)
    form = SearchForm(request.GET)
    if form.is_valid():
        search_query = form.cleaned_data['search']
        if search_query:
            musicians = musicians.filter(author__icontains=search_query)
    musicians = musicians.order_by('position', 'author')
    return render(request,
                  'musicians_list.html',
                  context={
                      'musicians': musicians,
                      'form': form
                  })
Пример #6
0
def index_view(request, *args, **kwargs):
    if request.method == 'GET':
        form = SearchForm()
        if request.GET:
            r = request.GET.get('query')
            records = Record.objects.order_by('-created_at').filter(
                author__contains=r, status='active')
        else:
            records = Record.objects.order_by('-created_at').filter(
                status='active')
        return render(request,
                      'index.html',
                      context={
                          'records': records,
                          'form': form
                      })
Пример #7
0
def index():
    form = SearchForm()
    if form.validate_on_submit():
        method = form.methods.data
        content = form.content.data
        if method == 1:
            return redirect(
                url_for('result.result_title', content=content, page=1))
        elif method == 2:
            return redirect(
                url_for('result.result_author', content=content, page=1))
        elif method == 3:
            return redirect(url_for('result.result_ISBN', content=content))
        else:
            return None
    return render_template('index.html', form=form)
Пример #8
0
 def get_context_data(self, *, object_list=None, **kwargs):
     form = SearchForm(data=self.request.GET)
     user = User.objects.get(pk=self.request.user.pk)
     collection_coins = Coin_in_Collection.objects.filter(owner=user)
     offers = []
     for coin in collection_coins:
         if coin.offers:
             for offer in coin.offers.all():
                 offers.append(offer)
     if form.is_valid():
         search = form.cleaned_data['search']
         kwargs['search'] = search
     kwargs['form'] = form
     kwargs['offers'] = offers
     kwargs['user'] = user
     return super().get_context_data(object_list=object_list, **kwargs)
Пример #9
0
def index():
    search = SearchForm()
    if search.validate_on_submit():
        sent = str(search.search.data)
        word_list = sent.split()
        results = []
        for x in word_list:
            places = retrievePlaces(x)
            if places is not None:
                for place in places:
                    results.append(place)
        return render_template('results.html',
                               results=results,
                               name=search.search.data)
    return render_template('index.html',
                           form=search,
                           current_user=current_user)
Пример #10
0
 def get_search_form(self):
     return SearchForm(self.request.GET)
Пример #11
0
def index_view(request):
    notes = Note.objects.all().filter(
        status=DEFAULT_STATUS).order_by('-created_at')
    search_form = SearchForm()
    context = {'notes': notes, 'search_form': search_form}
    return render(request, 'index.html', context)
 def get(self, request, **kwargs):
     self.form = SearchForm(request.GET)
     self.search_data = self.get_search_data()
     return super(IndexViewProject, self).get(request, **kwargs)
Пример #13
0
    def search_query(request, query, page_number=1):
        #Nous allons dans cette fonction lancer les méthodes pour obtenir les résultats
        #de la recherche d'un utilisateur pour pouvoir les afficher selon le nombre de pages
        form = SearchForm()
        page = page_number
        previous_page = page - 1
        next_page = page + 1
        envoi = True
        try:
            #Création des threads :
            # 1) Trouver les séries liés à la recheche
            # 2) Trouver le nombre total de résultats de la recherche
            # 3) Trouver le nombre de pages de la recherche
            respT = SearchThread(Search.get_serie_by_name_with_space, query,
                                 page)
            number_resultsT = SearchThread(Search.get_number_of_result, query,
                                           page)
            number_pagesT = SearchThread(Search.get_number_of_pages, query,
                                         page)
            #Lancement des threads
            respT.start()
            number_resultsT.start()
            number_pagesT.start()
            #Attente jusqu'à la fin de l'exécution de tous les threads
            respT.join()
            number_resultsT.join()
            number_pagesT.join()
            #Récupération des résultats des threads
            resp = respT.result()
            number_results = number_resultsT.result()
            number_pages = number_pagesT.result()

        #Si il y a une erreur dans la recherche : exception, on renvoie la page d'erreur
        except:
            error_message = "The search did not succeed."
            return render(request, 'webapp/error.html', locals())

        #Gestion des favoris: idem
        try:
            this_user = request.user.profil
            if this_user.favorites == '[]':
                dict_soon = {}
                dict_now = {}
            else:
                dict_soon = {}
                dict_now = {}
                for item in this_user.favorites[1:-1].split(','):
                    item = int(item)
                    this_serie = Serie.objects.get(id=item)
                    if this_serie.alert < 4 and this_serie.alert > 1:
                        dict_soon[item] = this_serie
                    elif this_serie.alert < 2:
                        dict_now[item] = this_serie
        except:
            dict_soon = {}
            dict_now = {}
        nb_soon = len(dict_soon)
        nb_now = len(dict_now)
        nb_total = nb_soon + nb_now

        #On redirige les éléments calculés vers le modèle html qui va l'afficher (cf code HTML)
        return render(request, 'webapp/search_result.html', locals())
Пример #14
0
    def search(request):
        #On s'assure de la validité de la recherche entrée sinon on renvoie le formulaire de recherche
        if request.method == 'POST':
            form = SearchForm(request.POST)
            if form.is_valid():
                query = form.cleaned_data.get('query')
                envoi = True
                return redirect('/search/' + query + '/1')
        else:
            form = SearchForm()

        #Mise à jour des séries favorites
        #Tout d'abord nous récupérons le profil de l'utilisateur avec this_user
        this_user = request.user.profil
        #S'il n'a pas de séries favorites rien n'est mis à jour
        if this_user.favorites == '[]':
            dict_series = {}
        #Sinon nous traitons à la fois la mise à jour des informations sur ses séries favorites et les notifications
        else:
            #Nous récupérons au bon format (nombre) les ids des séries favorites de l'utilisateur
            favorite_seriesid = [
                int(item) for item in this_user.favorites[1:-1].split(',')
            ]
            #Nous créons une liste qui va contenir nos threads lancés pour chaque ids
            threads = []
            #Pour chaque ids, nous créons un thread qui va récupérer les informations de l'épisode avec un appel à l'API
            #Puis nous lançons le thread et l'enregistrons dans threads
            for ids in favorite_seriesid:
                update_serie = SearchThread(Search.get_attributes_for_serie,
                                            ids)
                update_serie.start()
                threads.append(update_serie)
            #Nous attendons que tous les threads se soient exécutés
            for thread in threads:
                thread.join()
            #Nous récupérons tous les résultats des threads dans dict_séries qui contient toutes les informations actualisées des séries favorites de l'utilisateur
            dict_series = [thread.result() for thread in threads]
            #Nous actualisons ensuite notre base de donnée en faisant appel à update_serie
            for el in dict_series:
                if el != None:
                    this_serie = Serie.objects.get(id=el['id'])
                    this_serie = this_serie.update_serie(
                        el['nb_episodes'], el['nb_seasons'],
                        el['last_episode_date'], el['last_episode'],
                        el['next_episode_date'], el['next_episode'],
                        el['seasons'], el['video'], el['alert'])
                    this_serie.save()

            #Gestion des notifications: idem
            try:
                dict_soon = {}
                dict_now = {}
                for item in favorite_seriesid:
                    this_serie = Serie.objects.get(id=item)
                    if this_serie.alert < 4 and this_serie.alert > 1:
                        dict_soon[item] = this_serie
                    elif this_serie.alert < 2:
                        dict_now[item] = this_serie
            except:
                dict_soon = {}
                dict_now = {}
            nb_soon = len(dict_soon)
            nb_now = len(dict_now)
            nb_total = nb_soon + nb_now

        #On redirige les éléments calculés vers le modèle html qui va l'afficher (cf code HTML)
        return render(request, 'webapp/search_result.html', locals())
Пример #15
0
def book_view(request, *args, **kwargs):
    guest_book = GuestBook.objects.filter(
        status='active').order_by('-date_of_creation')
    form = SearchForm()
    context = {'guest_book': guest_book, 'form': form}
    return render(request, 'index.html', context)
Пример #16
0
 def get(self, request, **kwargs):
     self.search_form = SearchForm(request.GET)
     self.search_value = self.get_search_value()
     return super().get(request, kwargs)
Пример #17
0
def main():
    form = SearchForm()
    if form.validate_on_submit():
        return render_template('index.html', page_title="Good", form=form)
    return render_template('index.html', page_title="Форму обошли", form=form)
Пример #18
0
def search_form(request):
    form = SearchForm(request.GET)
    return {'search_form': form}
 def get(self, request, **kwargs):
     self.form = SearchForm(request.GET)
     self.search_data = self.get_search_data()
     return super().get(request, **kwargs)
Пример #20
0
def before_request():
    g.search_form = SearchForm()
    g.tags = Tag.query.limit(20).all()
    g.is_login = hasattr(current_user, 'id')  # 是否登录