예제 #1
0
def rent(request, pk):
    # get_object_or_404을 쓰지 않은 이유 : book=pk 에 해당하는 다수 row 를 가져오지 못하기 때문
    # rent = get_object_or_404(RentHistory, book=pk)
    rent = RentHistory.objects.filter(book=pk)
    for i in rent:
        # 사용자가 이미 대출했었고 반납되지 않은 책을 선택했을 시,
        if i.user == request.user and i.rent_status == False:
            messages.info(request,
                          '{}까지 열람 가능한 동일 도서가 있습니다.'.format(i.rent_end))
            slack_message = '*{}까지 열람 가능한 동일 도서가 있습니다.*'.format(i.rent_end)
            slack_notify(slack_message, '#general', username='******')
            return redirect('ebook:list_check')

    rent_start = date.today()
    rent_end = date.today() + timedelta(days=7)  # 대출 기간은 7일
    db_insert = RentHistory(rent_start=rent_start,
                            rent_end=rent_end,
                            rent_status=False,
                            book_id=pk,
                            user=request.user)
    db_insert.save()

    messages.info(request, '대여성공! 열람 가능한 기간은 {}까지 입니다.'.format(rent_end))
    slack_message = '*대여성공! 열람 가능한 기간은 {}까지 입니다.*'.format(rent_end)
    slack_notify(slack_message, '#general', username='******')
    return redirect('ebook:list_check')
예제 #2
0
def report(request):
    if request.method == 'POST':
        report_user_pk = request.POST.get('user')
        report1 = request.POST.get('report1')
        report2 = request.POST.get('report2')
        report3 = request.POST.get('report3')
        content = request.POST.get('content')

        report_user = get_object_or_404(MyUser,pk=report_user_pk)
        print(report_user.nickname)
        if report1 == None:
            report1 = False
        if report2 == None:
            report2 = False
        if report3 == None:
            report3 = False

        report = Report.objects.create(
            user = report_user,
            report1 = report1,
            report2 = report2,
            report3 = report3,
            content = content
        )
        # slack에 신고 접수 알림 보내기
        attachments = [{
            "color": "#FF0000",
            "title": "신고접수 알림",
            "text": "{}".format(report.content)
            }]
        slack_message = "[신고접수] {}에 대한 신고가 접수되었습니다.".format(report_user.nickname)
        slack_notify(slack_message,"#random",username='******',attachments=attachments)

        return redirect('chat')
예제 #3
0
def return_book(request, pk):
    book = get_object_or_404(Book, pk=pk)
    if book.rent_info.user == request.user:
        book.return_book()
        messages.info(request, '반납성공!')
        slack_notify("[도서반납] {}".format(book.title),
                     '#return_book',
                     username='******')
    else:
        messages.error(request, '문제가 발생했습니다.')
    return redirect('mybook')
예제 #4
0
def register_save(request):
    isbn = request.POST['isbn']
    message, book = register_book(isbn)
    messages.info(request, message)
    if book:
        attachments = [{
            "color": "#36a64f",
            "title": "신규도서",
            "title_link": "http://127.0.0.1:7000/books/list/",
            "fallback": "신규도서 알림",
            "text": "{}".format(book.title)
        }]
        slack_notify(channel='#new_book',
                     username='******',
                     attachments=attachments)
    return redirect('books:register')
예제 #5
0
 def form_valid(self, form):
     messages.info(self.request, '도서 등록 완료')
     slack_message = '*도서 등록 완료*'
     slack_notify(slack_message, '#general', username='******')
     return super(EbookCVText, self).form_valid(form)