Exemplo n.º 1
0
    def roomassign():
        '''
        숙소 배정
        '''
        if request.method == 'POST':
            member_list = request.form.getlist('member_idx')
            room_idx = request.form.get('room_idx')

            for member_idx in member_list:
                member = db.session.query(Member).filter(
                    Member.idx == member_idx).one()
                member.room_idx = room_idx

            db.session.commit()

            next_url = request.args.get('next')
            if next_url is not None:
                return redirect(next_url)
            else:
                return redirect(url_for('.roomassign'))

        camp_idx = Camp.get_idx(campcode)
        query = db.session.query(Member)
        if campcode == 'cmc' or campcode == 'cbtj':
            cmc_idx = Camp.get_idx('cmc')
            cbtj_idx = Camp.get_idx('cbtj')
            room_stat = Room.get_stat(camp_idx=[cmc_idx, cbtj_idx])
            filtered_query = query.filter(
                or_(Member.camp_idx == cmc_idx, Member.camp_idx == cbtj_idx))
            room_list = db.session.query(Roomsetting).filter(
                Roomsetting.camp_idx == cmc_idx).all()
        else:
            filtered_query = query.filter(Member.camp_idx == camp_idx)
            room_stat = Room.get_stat(camp_idx=camp_idx)
            room_list = db.session.query(Roomsetting).filter(
                Roomsetting.camp_idx == camp_idx).all()

        filtered_query = get_member_list_query(
            filtered_query, request, orderby=['camp_idx', 'sex', 'area_idx'])

        page = int(request.args.get('page', 1))
        member_list = filtered_query.limit(50).offset((page - 1) * 50).all()
        count = filtered_query.count()

        area_list = Area.get_list(campcode)
        group_list = db.session.query(Group).filter(
            Group.camp_idx == camp_idx).all()
        return render_template('%s/room_assign.html' % campcode,
                               room_list=room_list,
                               members=member_list,
                               count=count - (page - 1) * 50,
                               nav=range(1,
                                         int(count / 50) + 2),
                               area_list=area_list,
                               group_list=group_list,
                               room_stat=room_stat)
Exemplo n.º 2
0
    def room():
        '''
        숙소 현황
        '''
        if request.method == 'POST':
            member_list = request.form.getlist('member_idx')
            for member_idx in member_list:
                member = db.session.query(Member).filter(Member.idx == member_idx).one()
                member.room_idx = None
                db.session.commit()

            next_url = request.args.get('next')
            if next_url is not None:
                return redirect(next_url)
            else:
                return redirect(url_for('.room'))
        else:
            camp_idx = Camp.get_idx(campcode)
            query = db.session.query(Member)
            if campcode == 'cmc' or campcode == 'cbtj':
                cmc_idx = Camp.get_idx('cmc')
                cbtj_idx = Camp.get_idx('cbtj')
                filtered_query = query.filter(or_(Member.camp_idx == cmc_idx, Member.camp_idx == cbtj_idx))
                room_stat = Room.get_stat(camp_idx=[cmc_idx, cbtj_idx])
                room_list = db.session.query(Roomsetting).filter(Roomsetting.camp_idx == cmc_idx).all()
            else:
                filtered_query = query.filter(Member.camp_idx == camp_idx)
                room_stat = Room.get_stat(camp_idx=camp_idx)
                room_list = db.session.query(Roomsetting).filter(Roomsetting.camp_idx == camp_idx).all()

            filtered_query = get_member_list_query(filtered_query, request, orderby=['camp_idx', 'sex', 'area_idx'])

            page = int(request.args.get('page', 1))
            # filtered_query = filtered_query.limit(50).offset((page - 1) * 50)

            if request.args.get('room_idx', None) is not None:
                # member_list = filtered_query.limit(50).offset((page - 1) * 50).all()
                member_list = filtered_query.all()
                count = filtered_query.count()
            else:
                member_list = []
                count = 0

            area_list = Area.get_list(campcode)
            group_list = db.session.query(Group).filter(Group.camp_idx == camp_idx).all()

            return render_template('%s/room.html' % campcode, room_list=room_list,
                                   members=member_list, count=count, area_list=area_list,
                                   group_list=group_list, room_stat=room_stat)