コード例 #1
0
ファイル: views.py プロジェクト: aya-taka/Introduction_mysite
def search_user_by_keyword(request):
    u"""ユーザー検索
    ユーザーをキーワード検索
    検索対象:
        username, first_name, last_name
    :param request:検索リクエスト
    :return:キーワードを含むユーザー一覧
    """
    dictionary = init_dictionary(request=request)
    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid():
            dictionary.update(users=User.objects.all().filter(
                Q(username__contains=form.cleaned_data['keyword'])
                | Q(first_name__contains=form.cleaned_data['keyword'])
                | Q(last_name__contains=form.cleaned_data['keyword'])).
                              order_by('first_name'))
            dictionary.update(user_search_form=form)

            return render_to_response('dailyreport/user_list.html',
                                      dictionary,
                                      context_instance=RequestContext(request))
        else:
            return redirect('dailyreport:view_all_user_list')
    else:
        dictionary.update(users=User.objects.all().order_by('id'))
        dictionary.update(user_search_form=SearchForm())

    return render_to_response('dailyreport/user_list.html',
                              dictionary,
                              context_instance=RequestContext(request))
コード例 #2
0
def search_user_by_keyword(request):
    u"""ユーザー検索
    ユーザーをキーワード検索
    検索対象:
        username, first_name, last_name
    :param request:検索リクエスト
    :return:キーワードを含むユーザー一覧
    """
    dictionary = init_dictionary(request=request)
    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid():
            dictionary.update(users=User.objects.all().filter(
                Q(username__contains=form.cleaned_data['keyword']) |
                Q(first_name__contains=form.cleaned_data['keyword']) |
                Q(last_name__contains=form.cleaned_data['keyword'])).order_by('first_name'))
            dictionary.update(user_search_form=form)

            return render_to_response(
                'dailyreport/user_list.html', dictionary, context_instance=RequestContext(request))
        else:
            return redirect('dailyreport:view_all_user_list')
    else:
        dictionary.update(users=User.objects.all().order_by('id'))
        dictionary.update(user_search_form=SearchForm())

    return render_to_response('dailyreport/user_list.html', dictionary, context_instance=RequestContext(request))
コード例 #3
0
 def test_invalid(self):
     u"""
         現行では、空文字での検索を許容しています
         追記:最新ではスペースのみなどの検索キーワードを認めません
     :return:
     """
     param = dict()
     form = SearchForm(param)
     self.assertFalse(form.is_valid())
コード例 #4
0
 def test_invalid(self):
     u"""
         現行では、空文字での検索を許容しています
         追記:最新ではスペースのみなどの検索キーワードを認めません
     :return:
     """
     param = dict()
     form = SearchForm(param)
     self.assertFalse(form.is_valid())
コード例 #5
0
ファイル: views.py プロジェクト: aya-taka/Introduction_mysite
def search_daily_by_keyword(request):
    u"""日報検索
    日報をキーワードによって検索します
    検索条件
    ・キーワード数:1~(複数キーワードのand対応)
    ・検索対象:ユーザー名/日報タイトル/日報本文(y/w/t)
    :param request: 検索キーワードの取得
    :return: キーワードをすべて含む日報の一覧
    """
    dictionary = init_dictionary(request=request)
    dictionary.update(task_form=create_task_form_in_queryset(
        get_task_from_implement_date(request.user,
                                     timezone.now().date())))
    dictionary.update(task_form_next=create_task_form_in_queryset(
        get_next_task(request.user,
                      timezone.now().date())))

    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid() and form.cleaned_data['keyword'] is not '':
            queries = [
                Q(user__first_name__contains=word)
                | Q(user__last_name__contains=word) | Q(title__contains=word)
                | Q(report_y__contains=word) | Q(report_w__contains=word)
                | Q(report_t__contains=word)
                for word in form.cleaned_data['keyword'].split()
            ]
            query = queries.pop()
            for item in queries:
                query |= item
            dictionary.update(dailys=Daily.objects.filter(
                release=True).filter(query).order_by('-create_date'))
            dictionary.update(search_form=form)
            dictionary.update(keyword=form.cleaned_data['keyword'])
            dictionary.update(is_paginated=False)
            return render_to_response('dailyreport/daily_list.html',
                                      dictionary,
                                      context_instance=RequestContext(request))

        return redirect('dailyreport:view_daily_list')
コード例 #6
0
ファイル: views.py プロジェクト: aya-taka/Introduction_mysite
def view_user_list(request):
    u"""ユーザー一覧
    登録しているユーザー全員を表示
    :param request:初期情報
    :return:全ユーザーの一覧
    """
    dictionary = init_dictionary(request=request)
    dictionary.update(users=User.objects.all().order_by('first_name'))
    dictionary.update(user_search_form=SearchForm())

    return render_to_response('dailyreport/user_list.html',
                              dictionary,
                              context_instance=RequestContext(request))
コード例 #7
0
def search_daily_by_keyword(request):
    u"""日報検索
    日報をキーワードによって検索します
    検索条件
    ・キーワード数:1~(複数キーワードのand対応)
    ・検索対象:ユーザー名/日報タイトル/日報本文(y/w/t)
    :param request: 検索キーワードの取得
    :return: キーワードをすべて含む日報の一覧
    """
    dictionary = init_dictionary(request=request)
    dictionary.update(task_form=create_task_form_in_queryset(
        get_task_from_implement_date(request.user, timezone.now().date())
    ))
    dictionary.update(task_form_next=create_task_form_in_queryset(
        get_next_task(request.user, timezone.now().date())
    ))

    if request.method == 'GET':
        form = SearchForm(request.GET)
        if form.is_valid() and form.cleaned_data['keyword'] is not '':
            queries = [Q(user__first_name__contains=word) |
                       Q(user__last_name__contains=word) |
                       Q(title__contains=word) |
                       Q(report_y__contains=word) |
                       Q(report_w__contains=word) |
                       Q(report_t__contains=word) for word in form.cleaned_data['keyword'].split()]
            query = queries.pop()
            for item in queries:
                query |= item
            dictionary.update(dailys=Daily.objects.filter(release=True).filter(query).order_by('-create_date'))
            dictionary.update(search_form=form)
            dictionary.update(keyword=form.cleaned_data['keyword'])
            dictionary.update(is_paginated=False)
            return render_to_response(
                'dailyreport/daily_list.html', dictionary, context_instance=RequestContext(request))

        return redirect('dailyreport:view_daily_list')
コード例 #8
0
def init_dictionary(request=None, daily_id=None):
    u"""辞書型初期化メソッド
    テンプレートに送る情報を初期化します
    本メソッド中で追加するのはbase.htmlやtaskbar.htmlで使用される共通データ部分です

    :param request: リクエスト情報
    :param daily_id: 日報情報
    :return: 初期情報を登録した辞書型
    """
    dictionary = dict(search_form=SearchForm())
    dictionary.update(request=request)
    dictionary.update(daily_id=daily_id)
    dictionary.update(task_search_form=TaskSearchForm())

    return dictionary
コード例 #9
0
 def test_invalid_space(self):
     param = dict(keyword=' ')
     form = SearchForm(param)
     self.assertFalse(form.is_valid())
コード例 #10
0
 def test_valid(self):
     param = dict(keyword='test_keyword')
     form = SearchForm(param)
     self.assertTrue(form.is_valid())
コード例 #11
0
 def test_invalid_space(self):
     param = dict(keyword=' ')
     form = SearchForm(param)
     self.assertFalse(form.is_valid())
コード例 #12
0
 def test_valid(self):
     param = dict(keyword='test_keyword')
     form = SearchForm(param)
     self.assertTrue(form.is_valid())