Ejemplo n.º 1
0
def write(request):
    board = Board()

    try:
        groupno = int(request.POST['groupno'])
        orderno = int(request.POST['orderno'])
        depth = int(request.POST['depth'])
        Board.objects.filter(groupno=groupno). \
            filter(orderno__gte=orderno + 1). \
            update(orderno=F('orderno') + 1)

        board.title = request.POST['title']
        board.content = request.POST['content']
        board.user_id = request.POST['user_id']
        board.groupno = groupno
        board.orderno = orderno + 1
        board.depth = depth + 1

    except Exception as e:
        board.title = request.POST['title']
        board.content = request.POST['content']
        board.user_id = request.POST['user_id']
        board.groupno = groupno_max() + 1

    board.save()
    return HttpResponseRedirect('/board')
Ejemplo n.º 2
0
def board_write(request):
    parents_id = request.POST['parentsNo']
    board = Board()
    if parents_id == "":
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        max_groupno = 0 if value["max_groupno"] is None else value["max_groupno"]
        board.groupno = max_groupno + 1
        board.orderno = 1
        board.depth = 0
    else:
        value = Board.objects.filter(id=parents_id)

        # orderno를 하나씩 밀어주기
        Board.objects.filter(orderno__gte=value[0].orderno + 1).update(orderno=F('orderno') + 1)

        board.groupno = value[0].groupno
        board.orderno = value[0].orderno + 1
        board.depth = value[0].depth + 1

    board.user_id = int(request.session['authuser']['id'])
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 3
0
def reply(request):
    boardid = request.GET['id']
    parent_board = Board.objects.get(id=boardid)
    newreply = Board()
    newreply.group_no = parent_board.group_no

    #group = Board.objects.all().filter(group_no=parent_board.group_no)

    if parent_board.order_no == 1:
        # 제일 윗 글에 답글 달 때
        max_order_no = Board.objects.filter(
            group_no=parent_board.group_no).aggregate(Max('order_no'))
        newreply.order_no = max_order_no['order_no__max'] + 1
        newreply.depth = 1
    else:
        # 답글이 여러개 일 때
        if parent_board.depth >= 1:
            # 답글에 답글이 없을 때
            oth_reply = Board.objects.all().filter(
                order_no__gt=parent_board.order_no)
            oth_reply.update(order_no=F('order_no') + 1)
            newreply.order_no = parent_board.order_no + 1
            newreply.depth = parent_board.depth + 1

    newreply.userid_id = request.GET['userid']
    newreply.title = request.POST['title']
    newreply.content = request.POST['content']
    newreply.save()

    pagenum = request.session['pagenum']

    return HttpResponseRedirect("/board/list?page={}".format(pagenum))
Ejemplo n.º 4
0
def list(request):
    board = Board()
    board.user.id = request.POST.get('user.id')
    board.tilte = request.POST['title']
    board.content = request.POST['content']

    return render(request, 'board/list.html')
Ejemplo n.º 5
0
def insert(request):
    if 'authuser' not in request.session:
        return HttpResponseRedirect('/board')

    board = Board()

    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User(**request.session['authuser'])

    # 그룹번호 1부터 시작
    groupno = int(request.POST['groupno'])
    if groupno == 0:
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        groupno = 1 if value[
            'max_groupno'] is None else value['max_groupno'] + 1
    board.groupno = groupno

    orderno = 0 if request.POST['groupno'] == '0' else int(
        request.POST['orderno'])
    Board.objects.filter(groupno=groupno).filter(
        orderno__gte=orderno + 1).update(orderno=F('orderno') + 1)
    board.orderno = orderno + 1

    board.depth = 0 if request.POST['groupno'] == '0' else int(
        request.POST['depth']) + 1

    board.save()

    page = request.POST['page']
    kwd = request.POST['kwd']

    return HttpResponseRedirect(f'/board/list?page={page}&kwd={kwd}')
Ejemplo n.º 6
0
def write(request, page=1):
    # 인증
    authuser = request.session.get('authUser')
    if authuser is None:
        return HttpResponseRedirect('/board/list')
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User.objects.get(id=request.session['authUser']['id'])

    # 새글 작성
    if request.POST['no'] == '-1':
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        board.groupno = value["max_groupno"] + 1
        board.save()
    # 답글 작성
    else:
        board2 = Board.objects.get(id=request.POST['no'])
        Board.objects.filter(orderno__gte=board2.orderno +
                             1).update(orderno=F('orderno') + 1)
        board.groupno = board2.groupno
        board.orderno = board2.orderno + 1
        board.depth = board2.depth + 1
        board.save()
    data = {'page': 1}
    # 검색어
    kwd = request.GET.get('kwd')
    print(kwd, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
    if kwd is None:
        data['kwd'] = json.dumps(kwd)
    else:
        data['kwd'] = kwd
    return HttpResponseRedirect(f'/board/list/{page}?kwd={kwd}')
Ejemplo n.º 7
0
def add(request):
    board = Board()
    user = User.objects.get(id=request.session['authuser']['id'])

    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user_id = user

    #  만약 추가하는것이 첫 글쓰기일때
    if request.POST['add'] == 'write':
        g_no = Board.objects.aggregate(g_no=Max('g_no'))
        if g_no['g_no'] is None:
            g_no['g_no'] = 0
        board.g_no = g_no['g_no'] + 1
        board.o_no = 0
        board.depth = 0
    else:
        id = request.POST['id']
        p_board = Board.objects.get(id=id)
        board.g_no = p_board.g_no

        results = Board.objects.filter(o_no__gt=p_board.o_no,
                                       g_no=p_board.g_no)
        results.update(o_no=F('o_no') + 1)
        board.o_no = p_board.o_no + 1
        board.depth = p_board.depth + 1

    board.save()

    return HttpResponseRedirect('/board' + "?page=" +
                                str(request.session['session_page']))
Ejemplo n.º 8
0
def write_reply(request, parent_id):
    authuser = check_login_auth(request)
    if authuser is None:
        return HttpResponseRedirect('/user/loginform')

    board = Board()

    parent = Board.objects.get(id=parent_id)

    groupno = parent.groupno
    orderno = parent.orderno + 1
    depth = parent.depth + 1

    results = Board.objects.filter(groupno=groupno).filter(
        orderno__gte=orderno).update(orderno=F('orderno') + 1)

    title = request.POST['title']
    content = request.POST['content']
    userid = request.session['authuser']['id']

    board.title = title
    board.content = content
    board.user_id = userid
    board.groupno = groupno
    board.orderno = orderno
    board.depth = depth

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 9
0
def add(request):
    if request.session.get('authuser') == None:
        return HttpResponseRedirect('/user/loginform')

    authuser = request.session['authuser']
    paraentno = request.POST.get('parentno')

    if authuser is None:
        return HttpResponseRedirect('/board')

    board = Board()
    board.user_id = authuser['id']
    board.title = request.POST.get('title')
    board.content = request.POST.get('contents')

    if paraentno != '':
        parent = Board.objects.get(id=paraentno)
        board.groupno = parent.groupno
        board.orderno = parent.orderno + 1
        Board.objects.filter(groupno=board.groupno).filter(orderno__gte=board.orderno).update(orderno=F('orderno') + 1)
        board.depth = parent.depth + 1
    else:
        lastboard = Board.objects.order_by('id').last()
        if lastboard == None:
            board.groupno = 1
        else:
            board.groupno = lastboard.id +1


    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 10
0
def reply(request, id=0):
    # 로그인 체크
    if check_authuser(request) is None:
        return HttpResponseRedirect('/user/loginform')
    else:
        if request.method == 'GET':
            return render(request, 'board/write.html')
        elif request.method == 'POST':
            board = Board.objects.get(id=id)
            # query set 예제
            # groupno = 1이고 orderno >=1 의
            # 게시물의 order_no를 1씩 증가
            # __gt, __lt, __gte, __lte
            reply_board = Board()
            reply_board.title = request.POST['title']
            reply_board.content = request.POST['content']
            reply_board.user = User.objects.get(id=request.session['authuser']['id'])
            reply_board.groupno = board.groupno
            # value = Board.objects.filter(groupno=board.groupno).filter(depth=board.depth+1).aggregate(max_orderno=Max('orderno'))
            # max_orderno = 0 if value["max_orderno"] is None else value["max_orderno"]
            reply_board.orderno = board.orderno + 1
            reply_board.depth = board.depth + 1
            reply_board.save()
            # Board.objects.filter(groupno=board.groupno).filter(orderno=board.orderno).update(depth=F('depth') + 1)
            return HttpResponseRedirect('/board/1')
Ejemplo n.º 11
0
def write(request):
    user_id = get_session_user_id(request)
    if not user_id:
        return HttpResponseRedirect('/board/1')

    article = Board()
    article.user = User.objects.get(id=user_id)
    article.title = request.POST['title']
    article.content = request.POST['content']

    if request.POST["write_type"] == "new":
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        if value["max_groupno"] is not None:
            article.groupno = value["max_groupno"] + 1
            print("new")
    else:
        obj = Board.objects.get(id=request.POST["write_type"])
        article.groupno = obj.groupno
        article.orderno = obj.orderno + 1
        article.depth = obj.depth + 1
        Board.objects.filter(groupno=obj.groupno). \
            filter(orderno__gt=obj.orderno). \
            update(orderno=F('orderno') + 1)

    article.save()
    obj = Board.objects.latest('id')

    return HttpResponseRedirect('/board/view/' + str(obj.id))
Ejemplo n.º 12
0
def write(request):
    # user = models.ForeignKey(User, to_field='id', on_delete=models.CASCADE)
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    userid = request.session['authUser']['id']
    user = User.objects.get(id=userid)
    board.user = user

    if request.POST['groupno'] != '':
        print('request.POST[groupno] !=')
        board.groupno = request.POST['groupno']
        board.depth = int(request.POST['depth']) + 1
        board.orderno = int(request.POST['orderno']) + 1
    else:
        max_board = Board.objects.aggregate(max_groupno=Max('groupno'))
        if max_board is not None:
            max_groupno = 0 if max_board['max_groupno'] is None else max_board[
                "max_groupno"]
            board.groupno = max_groupno + 1
        else:
            board.groupno = 1

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 13
0
def write(request):
    user = User.objects.get(id=request.session['authuser']['id'])
    board = Board()
    board.user = user
    board.title = request.POST['title']
    board.content = request.POST['content']

    if int(request.POST['replyno']) != 0:
        # 답글인 경우
        originboard = Board.objects.get(id=request.POST['replyno'])
        Board.objects \
            .filter(groupno=originboard.groupno) \
            .filter(orderno__gte=originboard.orderno) \
            .update(orderno=F('orderno') + 1)
        board.groupno = originboard.groupno
        board.orderno = originboard.orderno
        board.depth = originboard.depth + 1

    else:
        insert_groupno = 1 if Board.objects.aggregate(groupno=Max(
            'groupno'))['groupno'] is None else Board.objects.aggregate(
                groupno=Max('groupno'))['groupno'] + 1
        board.groupno = insert_groupno

    board.save()
    response = HttpResponseRedirect('/board/list')
    cookie_name = f'view_user_{board.id}'
    set_cookie(response, cookie_name, '',
               1)  # 유효기간이 1일인 쿠키를 만든다. (게시물 카운트를 위해)
    return response
Ejemplo n.º 14
0
def write(request):
    user = User.objects.get(id=request.session['authuser']['id'])
    board = Board()
    board.user = user
    board.title = request.POST['title']
    board.content = request.POST['content']

    print('-------------',request.POST['replyno'])
    if int(request.POST['replyno']) != 0:
        # 답글인 경우
        originboard = Board.objects.get(id=request.POST['replyno'])
        Board.objects\
            .filter(groupno=originboard.groupno)\
            .filter(orderno__gte=originboard.orderno)\
            .update(orderno=F('orderno')+1)
        board.groupno = originboard.groupno
        board.orderno = originboard.orderno
        board.depth = originboard.depth + 1

    else:
        insert_groupno = Board.objects.aggregate(groupno=Max('groupno'))['groupno'] + 1
        print(insert_groupno,type(insert_groupno))
        board.groupno = insert_groupno

    board.save()

    return HttpResponseRedirect('/board/list')
Ejemplo n.º 15
0
def write(request):
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User.objects.get(id=request.session['authuser']['id'])
    board.groupno = counter_max()
    board.save()
    return HttpResponseRedirect('/board')
Ejemplo n.º 16
0
def write(request):
    board = Board()
    board.name = request.session['authuser']['name']
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.save()
    return HttpResponseRedirect("/board")
Ejemplo n.º 17
0
def add(request):
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user_id = request.session['authuser']['id']
    board.name = request.session['authuser']['name']

    board.save()
    return HttpResponseRedirect('/board')
Ejemplo n.º 18
0
def add(request):
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user_id = request.POST['user_id']

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 19
0
def write_post(request):
    pages = int(request.POST.get('pages', 1))  # 현재 페이지
    kwd = str(request.GET.get('kwd', ''))  # 검색어
    # 공통 파라미터 --------------------------------------------------------------

    # 로그인 확인
    authuser = request.session['authuser']
    if authuser is None:
        return HttpResponseRedirect('/board')

    board = Board()
    board.user_id = authuser['id']
    board.title = request.POST['title']
    board.content = request.POST['content']

    # 스크립트를 무시하고 잘못된 정보를 줬을 때
    if board.title == '':
        return HttpResponseRedirect('/board')
    if board.content == '':
        return HttpResponseRedirect('/board')

    # 부모id가 있으면 답글
    parentno = int(request.POST.get('parentno', -1))

    if parentno == -1:
        # groupno : 답글이 아니면 (Max+1)
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        max_groupno = 0 if value['max_groupno'] is None else value[
            'max_groupno']
        board.groupno = max_groupno + 1

        # orderno : 답글이 아니면 항상 1
        board.orderno = 1

        # depth : 답글이 아니면 항상 0
        board.depth = 0
    else:
        # 답글이면 일단 부모 객체를 가져온다
        parents = Board.objects.get(id=parentno)

        # groupno : 답글이면 부모것과 같게
        board.groupno = parents.groupno

        # orderno : 답글이면 (부모것+1) 보다 크거나 같은거 모두 (+1)해서 밀고 (부모것+1)
        board.orderno = parents.orderno + 1
        Board.objects.filter(groupno=board.groupno).filter(
            orderno__gte=board.orderno).update(orderno=F('orderno') + 1)

        # depth : 답글이면 (부모것+1)
        board.depth = parents.depth + 1

        # parentno : 답글이면 부모번호
        board.parentno = parentno

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 20
0
def write(request):
    newboard = Board()
    newboard.userid_id = request.GET['userid']
    newboard.title = request.POST['title']
    newboard.content = request.POST['content']
    newboard.save()

    pagenum = request.session['pagenum']

    return HttpResponseRedirect("/board/list?page={}".format(pagenum))
Ejemplo n.º 21
0
def writetest(request):

    for idx in range(999):
        board = Board()
        board.title = '테스트 제목' + str(idx)
        board.content = '테스트 내용' + str(idx)
        board.user = User.objects.get(id=1)

        board.save()
    return HttpResponseRedirect('/')
Ejemplo n.º 22
0
def modify(request):

    board = Board()
    board.id = request.POST['id']
    board.title = request.POST['title']
    board.content = request.POST['content']
    #board.user = (User.objects.filter(id=request.session.get('authuser')['id']).filter( password=request.session.get('authuser')['password']))
    board.save()

    return render(request, 'board/view?id =' + request.POST['id'])
Ejemplo n.º 23
0
def write(request):

    # authuser = request.session['authuser']
    #
    # if authuser is None:
    #     return HttpResponseRedirect('/board')

    board_id = request.POST['id']
    if board_id == '0':  # 그냥 글쓰기이면
        board = Board()
        board.title = request.POST['title']
        board.content = request.POST['content']

        value = Board.objects.aggregate(
            max_groupno=Max('groupno'))['max_groupno'] or 0

        if board.groupno == 0:
            board.groupno = value + 1

        user = User.objects.get(id=request.session['authuser']['id'])
        board.user = user
        board.save()

    else:  # 답글이면

        # 해당 board_id에 해당하는 객체 가져오기
        board_parent = Board.objects.get(id=board_id)
        board = Board()

        board.title = request.POST['title']
        board.content = request.POST['content']
        board.groupno = board_parent.groupno
        board.orderno = board_parent.orderno + 1

        Board.objects.filter(groupno=board.groupno).filter(
            orderno__gte=board.orderno).update(orderno=F('orderno') + 1)
        board.depth = board_parent.depth + 1
        board.user_id = request.session['authuser']['id']

        board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 24
0
def insert(request):
    board = Board()
    id = request.POST['user_id']
    result = User.objects.filter(id=id)
    board.user = result[0]
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.save()

    return HttpResponseRedirect('/board/')
Ejemplo n.º 25
0
def write(request):
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    groupno_value = Board.objects.aggregate(max_groupno=Max('groupno'))
    board.groupno = 0 if groupno_value["max_groupno"] is None else (
        groupno_value["max_groupno"] + 1)
    board.user = User.objects.get(id=request.session['authuser']['id'])
    board.save()

    return HttpResponseRedirect('/board/1')
Ejemplo n.º 26
0
def write(request):
    board = Board()
    user_id = request.POST.get('user_id')
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.user = (User.objects.filter(
        id=request.session.get('authuser')['id']).filter(
            password=request.session.get('authuser')['password']))[0]

    board.save()
    return HttpResponseRedirect('/board')
Ejemplo n.º 27
0
def boardWrite_Save(request):
    # 리스트에 담아버림, 없으면 오류

    writeSave = Board()
    writeSave.user_id = request.session['authuser'][
        'id']  # session 에서 authuser딕셔너리의 id 값을 받아옴
    writeSave.name = request.session['authuser']['name']
    writeSave.title = request.POST['title']
    writeSave.content = request.POST['content']
    writeSave.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 28
0
def write(request):
    board = Board()

    board.title = request.POST['title']
    board.content = request.POST['content']
    max = Board.objects.aggregate(max_groupno=Max('groupno'))
    board.groupno = (0
                     if max['max_groupno'] is None else max['max_groupno']) + 1
    board.user_id = request.session['authuser']['id']

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 29
0
def write(request):
    # 인증 체크
    if request.session.get('authuser') is None:
        return HttpResponseRedirect('/user/loginform')

    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user_id = request.session['authuser']['id']

    board.save()

    return HttpResponseRedirect('/board')
Ejemplo n.º 30
0
Archivo: views.py Proyecto: 2BSJ/pysite
def write(request):
    # update board set order_no = order_no + 1
    # where group_no = {groupNo} and order_no !=0 and depth = {depth}+1

    board = Board()
    if request.POST['new'] == 'True':  # 그냥 리스트에서 새 글 쓸떄
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        max_groupno = 0 if value["max_groupno"] is None else value[
            "max_groupno"]

        board.title = request.POST['title']
        board.content = request.POST['content']
        board.hit = 0
        board.groupno = max_groupno + 1
        board.orderno = 0
        board.depth = 0
        board.user_id = request.session['authuser']['id']

    else:  # 답글 쓸때
        value = Board.objects.filter(id=request.POST['id'])
        Board.objects.filter(orderno__gte=value[0].orderno +
                             1).update(orderno=F('orderno') + 1)

        board.groupno = value[0].groupno
        board.orderno = value[0].orderno + 1
        board.depth = value[0].depth + 1

        board.title = request.POST['title']
        board.content = request.POST['content']
        board.hit = 0
        board.groupno = request.POST['groupno']
        board.orderno = int(request.POST['orderno']) + 1
        board.depth = int(request.POST['depth']) + 1
        board.user_id = request.session['authuser']['id']

    board.save()

    return HttpResponseRedirect('/board/list')
Ejemplo n.º 31
0
def write(request):
    try:
        board = Board()
        board.title = request.POST['title']
        board.content = request.POST['content']
        # 아래부분은 수정해야 할 사항으로###############################################################################
        # 현재는 이메일과 패스워드로 비교하여 쿼리셋의 첫번째 user를 선택하도록 정하고 테스트 하였지만.
        # 실제로는 email을 primary 키로, 혹은 같은 이메일은 등록이 불가하도록 정의하는 로직이 필요하며,
        # 이는 user 객체의 VO 를 재정의 하던지, 유저 등록 시 action 을 재정의 하던지 하여 해결하도록 할 것!

        board.user = (User.objects.filter(email=request.session.get('authuser')['email']).filter(
            password=request.session.get('authuser')['password']))[0]
        ################################################################################################################
        board.save()
        return HttpResponseRedirect('/board')
    except DataError:
        return render(request, 'board/write.html', {'posts': board, 'data_error':True })