def edit_comment(request, daily_id, comment_id=None): u"""コメント編集 コメントの編集/新規作成を行います :param request: :param daily_id:コメントが投稿されている日報のid :param comment_id:(編集の場合)編集対象のコメントのid :return:編集されたコメントの投稿されている日報詳細/コメント編集フォーム(編集失敗の場合) """ dictionary = init_dictionary(request=request) dictionary.update(daily=get_or_create_daily(daily_id=daily_id)) dictionary.update(comment=get_or_create_comment(user=request.user, comment_id=comment_id)) if request.user != dictionary['comment'].user: return redirect('login') flag, dictionary['comment_form'] = edit_comment_record( request, dictionary['daily'], dictionary['comment']) if request.method == 'POST' and flag: return redirect('dailyreport:view_daily_detail', daily_id=dictionary['daily'].id) elif flag is False: if 'create' in request.POST: del dictionary['comment'] return render_to_response('dailyreport/comment_edit.html', dictionary, context_instance=RequestContext(request)) return render_to_response('dailyreport/comment_edit.html', dictionary, context_instance=RequestContext(request))
def edit_daily(request, daily_id=None): u"""日報編集(U) 日報を編集し、編集後の日報詳細を表示する 表示対象は以下の通り 日報 日報の作成日または当日(新規作成時)に実施されたタスク 日報の作成日または当日(新規作成時)に作成されたタスク dictionary: 日報 日報編集用フォーム idが指定されている場合は日報を取得後、フォームとする idが未指定の場合には、新規日報のインスタンスを作成し、フォームとする 日報の作成日または当日(新規作成時)に実施されたタスク(implement_date) 日報の作成日または当日(新規作成時)に作成されたタスク(create_date) :param request: ユーザー情報の取得 :param daily_id: 編集対象の日報id(未指定の場合新規作成と判断) :return: 日報詳細画面(成功時かつプレビュー/公開の場合)、タスク管理画面(成功時かつタスク編集へ移動する場合) """ dictionary = init_dictionary(request=request, daily_id=daily_id) dictionary.update( daily=get_or_create_daily(user=request.user, daily_id=daily_id)) if request.user != dictionary['daily'].user: return redirect('login') flag, dictionary['report_form'] = edit_daily_record( request=request, daily=dictionary['daily']) 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 daily_id: dictionary.update(implement_task=get_task_from_implement_date( dictionary['daily'].user, dictionary['daily'].create_date)) dictionary.update(create_task=get_task_from_create_date( dictionary['daily'].user, dictionary['daily'].create_date)) else: dictionary.update(implement_task=get_task_from_implement_date( request.user, timezone.now().date())) dictionary.update( create_task=get_task_from_create_date(request.user, timezone.now().date())) if request.method == 'POST': if 'gototask' in request.POST and flag: return redirect('dailyreport:edit_task') elif flag: return redirect('dailyreport:view_daily_detail', daily_id=dictionary['report_form'].id) else: return render_to_response('dailyreport/daily_edit.html', dictionary, context_instance=RequestContext(request)) return render_to_response('dailyreport/daily_edit.html', dictionary, context_instance=RequestContext(request))
def delete_daily(request, daily_id): u"""日報削除(D) 日報の削除を行います 日報の投稿ユーザーでないユーザーがアクセスした場合、ログインページにリダイレクトされます 正常に削除できた場合は(ユーザーの)日報一覧画面へリダイレクトされます :param request:ユーザー情報の取得 :param daily_id:削除対象日報id :return:日報一覧ページ """ if delete_daily_record(request, get_or_create_daily(request.user, daily_id)): return redirect('dailyreport:view_user_daily', user_id=request.user.id) else: return redirect('login')
def view_daily_detail(request, daily_id): u"""日報詳細(R) 日報の詳細を取得し、レンダリングを指示します 表示対象は以下の通り ある日報のレコード 日報の作成日に実施されたタスク 日報の作成日に作成されたタスク dictionary: 日報 日報の作成日に実施されたタスク(implement_date) 日報の作成日に作成されたタスク(create_date) 日報に紐付けられたコメント一覧 コメント入力フォーム 当日分のタスク一覧(フォーム形式) 明日以降分のタスク一覧(フォーム形式) :param request: ユーザー情報の取得 :param daily_id: 表示対象の日報取得 :return: 日報詳細画面 """ dictionary = init_dictionary(request=request, daily_id=daily_id) dictionary.update(daily=get_or_create_daily(daily_id=daily_id)) dictionary.update(comments=get_comments_from_daily(dictionary['daily'])) 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()))) dictionary.update(implement_task=get_task_from_implement_date( user=dictionary['daily'].user, date=dictionary['daily'].create_date)) dictionary.update(create_task=get_task_from_create_date( user=dictionary['daily'].user, date=dictionary['daily'].create_date)) flag, dictionary['comment_form'] = edit_comment_record( request=request, daily=dictionary['daily'], comment=get_or_create_comment(request.user)) #2016/10/18 川崎追加。JubatusのQiita記事推薦結果をrcに保存。 #ここにごちゃごちゃと書くべき処理ではないため、リファクタした方がよい temp = dictionary["daily"] yuba_title = temp.title yuba_content = temp.report_y + temp.report_w + temp.report_t rc = recommend_Qiita(yuba_title, yuba_content) dictionary.update(recommend=rc) print("-----------------------") from pprint import pprint pprint(rc) return render_to_response('dailyreport/daily_detail.html', dictionary, context_instance=RequestContext(request))
def edit_daily(request, daily_id=None): u"""日報編集(U) 日報を編集し、編集後の日報詳細を表示する 表示対象は以下の通り 日報 日報の作成日または当日(新規作成時)に実施されたタスク 日報の作成日または当日(新規作成時)に作成されたタスク dictionary: 日報 日報編集用フォーム idが指定されている場合は日報を取得後、フォームとする idが未指定の場合には、新規日報のインスタンスを作成し、フォームとする 日報の作成日または当日(新規作成時)に実施されたタスク(implement_date) 日報の作成日または当日(新規作成時)に作成されたタスク(create_date) :param request: ユーザー情報の取得 :param daily_id: 編集対象の日報id(未指定の場合新規作成と判断) :return: 日報詳細画面(成功時かつプレビュー/公開の場合)、タスク管理画面(成功時かつタスク編集へ移動する場合) """ dictionary = init_dictionary(request=request, daily_id=daily_id) dictionary.update(daily=get_or_create_daily(user=request.user, daily_id=daily_id)) if request.user != dictionary['daily'].user: return redirect('login') flag, dictionary['report_form'] = edit_daily_record(request=request, daily=dictionary['daily']) 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 daily_id: dictionary.update(implement_task=get_task_from_implement_date( dictionary['daily'].user, dictionary['daily'].create_date)) dictionary.update(create_task=get_task_from_create_date( dictionary['daily'].user, dictionary['daily'].create_date)) else: dictionary.update(implement_task=get_task_from_implement_date(request.user, timezone.now().date())) dictionary.update(create_task=get_task_from_create_date(request.user, timezone.now().date())) if request.method == 'POST': if 'gototask' in request.POST and flag: return redirect('dailyreport:edit_task') elif flag: return redirect('dailyreport:view_daily_detail', daily_id=dictionary['report_form'].id) else: return render_to_response('dailyreport/daily_edit.html', dictionary, context_instance=RequestContext(request)) return render_to_response('dailyreport/daily_edit.html', dictionary, context_instance=RequestContext(request))
def view_daily_detail(request, daily_id): u"""日報詳細(R) 日報の詳細を取得し、レンダリングを指示します 表示対象は以下の通り ある日報のレコード 日報の作成日に実施されたタスク 日報の作成日に作成されたタスク dictionary: 日報 日報の作成日に実施されたタスク(implement_date) 日報の作成日に作成されたタスク(create_date) 日報に紐付けられたコメント一覧 コメント入力フォーム 当日分のタスク一覧(フォーム形式) 明日以降分のタスク一覧(フォーム形式) :param request: ユーザー情報の取得 :param daily_id: 表示対象の日報取得 :return: 日報詳細画面 """ dictionary = init_dictionary(request=request, daily_id=daily_id) dictionary.update(daily=get_or_create_daily(daily_id=daily_id)) dictionary.update(comments=get_comments_from_daily(dictionary['daily'])) 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()))) dictionary.update(implement_task=get_task_from_implement_date( user=dictionary['daily'].user, date=dictionary['daily'].create_date)) dictionary.update(create_task=get_task_from_create_date( user=dictionary['daily'].user, date=dictionary['daily'].create_date)) flag, dictionary['comment_form'] = edit_comment_record( request=request, daily=dictionary['daily'], comment=get_or_create_comment(request.user)) return render_to_response('dailyreport/daily_detail.html', dictionary, context_instance=RequestContext(request))
def edit_comment(request, daily_id, comment_id=None): u"""コメント編集 コメントの編集/新規作成を行います :param request: :param daily_id:コメントが投稿されている日報のid :param comment_id:(編集の場合)編集対象のコメントのid :return:編集されたコメントの投稿されている日報詳細/コメント編集フォーム(編集失敗の場合) """ dictionary = init_dictionary(request=request) dictionary.update(daily=get_or_create_daily(daily_id=daily_id)) dictionary.update(comment=get_or_create_comment(user=request.user, comment_id=comment_id)) if request.user != dictionary['comment'].user: return redirect('login') flag, dictionary['comment_form'] = edit_comment_record(request, dictionary['daily'], dictionary['comment']) if request.method == 'POST' and flag: return redirect('dailyreport:view_daily_detail', daily_id=dictionary['daily'].id) elif flag is False: if 'create' in request.POST: del dictionary['comment'] return render_to_response('dailyreport/comment_edit.html', dictionary, context_instance=RequestContext(request)) return render_to_response('dailyreport/comment_edit.html', dictionary, context_instance=RequestContext(request))
def view_daily_detail(request, daily_id): u"""日報詳細(R) 日報の詳細を取得し、レンダリングを指示します 表示対象は以下の通り ある日報のレコード 日報の作成日に実施されたタスク 日報の作成日に作成されたタスク dictionary: 日報 日報の作成日に実施されたタスク(implement_date) 日報の作成日に作成されたタスク(create_date) 日報に紐付けられたコメント一覧 コメント入力フォーム 当日分のタスク一覧(フォーム形式) 明日以降分のタスク一覧(フォーム形式) :param request: ユーザー情報の取得 :param daily_id: 表示対象の日報取得 :return: 日報詳細画面 """ dictionary = init_dictionary(request=request, daily_id=daily_id) dictionary.update(daily=get_or_create_daily(daily_id=daily_id)) dictionary.update(comments=get_comments_from_daily(dictionary['daily'])) 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()) )) dictionary.update(implement_task=get_task_from_implement_date( user=dictionary['daily'].user, date=dictionary['daily'].create_date)) dictionary.update(create_task=get_task_from_create_date( user=dictionary['daily'].user, date=dictionary['daily'].create_date)) flag, dictionary['comment_form'] = edit_comment_record( request=request, daily=dictionary['daily'], comment=get_or_create_comment(request.user)) return render_to_response('dailyreport/daily_detail.html', dictionary, context_instance=RequestContext(request))